Re: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
- From: Steve Baldwin <stbaldwin@xxxxxxxxxxxxxxxx>
- To: oracle_l <oracle-l@xxxxxxxxxxxxx>
- Date: Thu, 30 Jul 2009 12:54:23 -0500
So far (after trying it several hundred times), after the recompile,
all is good. As far as I'm aware, no code we have does any explicit
mucking with NLS params. I guess it is possible someone has a funky
GUI tool or some such thing. That's a good suggestion. I'll look
into it.
Cheers,
Steve
On 30/07/2009, at 12:49 PM, David Barbour wrote:
Does it fail again after you run it? At what point is it breaking?
I wonder if there is a session somewhere running the package with
settings that override the defaults and the package gets cached with
those settings?
On Thu, Jul 30, 2009 at 1:06 PM, Steve Baldwin <stbaldwin@xxxxxxxxxxxxxxxx
> wrote:
Thanks for the reply Rich. I should have mentioned that the DB char
set is AMERICAN_AMERICA.AL32UTF8.
By setting NLS_LENGTH_SEMANTICS, we're telling Oracle that a
declaration such as CHAR(1) is to be interpreted as CHAR(1 CHAR) nor
CHAR(1 BYTE). However, for some reason, the package seems to be
confused as it fails assigning a wide character to a CHAR(1). The
package is not marked as invalid (or I would have got a different
error the first time I ran it) so recompiling should do nothing, but
lo and behold after recompiling the body, it works as expected.
That's what I find weird.
Steve
On 30/07/2009, at 11:38 AM, Rich Jesse wrote:
Hey Steve,
If you're worried about CHAR vs BYTE, is there a reason you're not
using
NCHAR/NVARCHAR2? Also, I'd think passing your static parameter as
(N'Über')
would also be ideal to help prevent casting.
Just a thought...
Rich
We have NLS_LENGTH_SEMANTICS set to CHAR at the DB level.
It seems that it is somehow losing the nls_char_semantics setting of
the package. The statement it was failing on is :
--
http://www.freelists.org/webpage/oracle-l
------------------------
This email is intended solely for the use of the addressee and may
contain information that is confidential, proprietary, or both.
If you receive this email in error please immediately notify the
sender and delete the email.
--
http://www.freelists.org/webpage/oracle-l
------------------------
This email is intended solely for the use of the addressee and may
contain information that is confidential, proprietary, or both.
If you receive this email in error please immediately notify the
sender and delete the email.
Other related posts: