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).