Dynamic Invocation of PLSQL Program with VARCHAR2 Parameter Length > 8K in Unicode DB Raises ORA-06502
(Doc ID 2822434.1)
Last updated on APRIL 17, 2023
Applies to:PL/SQL - Version 18.104.22.168 and later
Information in this document applies to any platform.
Dynamic invocation of PLSQL Procedure/Function with VARCHAR2 parameter(length > 8191) raises "ORA-06502: PL/SQL: numeric or value error: character string buffer too small" in an Unicode DB(each character consumes upto 4 bytes) where NLS_LENGTH_SEMANTICS is set to 'CHAR'. Static invocation of the same PLSQL program works fine.
The behavior can be demonstrated using the following sample code.
The error is not observed when the procedure is invoked statically or the parameter is passed by reference(i.e. using NOCOPY option).
It's a newly installed database. No specific change was done.
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document