Consultor Eletrônico



Kbase 20169: Error 2306 Passing Large Values to Stored-procedure Oracle
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   5/29/2002
Status: Unverified

FACT(s) (Environment):

Oracle DataServer

SYMPTOM(s):

Buffer's field types mismatch those selected (2306)

orafldx: file number mismatch icb: <file number> ci: <file number> (4570)

Errors are seen when passing a return character string argument from an Oracle stored-procedure, where the string is equal to or larger than 255 characters

CAUSE:

The default Oracle DataServer maximum size value for a character parameter of a stored-procedure is 255. The error occurs when a larger expression is being passed.

FIX:

To change the default maximum size, run the following program. It changes the maximum size in the schema holder. After running the program, disconnect the schema-holder and reconnect it so the new value will take effect.
FOR EACH _file WHERE _file-name = 'procedure-name'.
FOR EACH _field OF _file:
DISPLAY _field-name.
UPDATE _for-maxsize. /*the maximum size */
END.
END.

Remember to change the procedure name to the correct defined name. The maximum size must follow the rules described in the DataServer Oracle manual, depending on which Oracle version and which data type your parameter is (char or varchar2).