#1 2022-11-11 19:37:45

From: Poland
Registered: 2015-01-30
Posts: 82

Db Oracle - error while calling stored procedure


I found small problem in my code which calls stored procedure in the Oracle database. I know that direct calling stored procedures is not the recommended approach, but for now I have no other choice. The procedure has varchar output parameter. When this procedure is called I receive Oracle error: ORA-06502: character string buffer too small. For output param in my code there is a binding like in the documentation:

stmt.BindTextU(2, '', paramOut);

and then I found in the documentation information about exception for the TSQLDBOracleStatement class. The param should be prealocated with code like:

stmt.BindTextU(2, StringOfChar(3000),paramOut);

I'm a little bit confused because it would be nice to have the same calling code which is independent from used database. I wrote some correction to the TSQLDBOracleStatement which allows automatic prealocation for varchar type output parameters. Could you consider to add these changes to the mORMot source code? I could add my corrections as pull request on GitHub.

Last edited by ASiwon (2022-11-11 19:38:06)

best regards
Adam Siwon


Board footer

Powered by FluxBB