我在ORACLE中定义了一个类型。让我们把它命名为HEADER。
create or replace TYPE "HEADER_OT" as object ("FIELD1" VARCHAR2(25));
我现在在PL / SQL块中使用此对象,并为此FIELD1分配值,如下所示。
HEADER_OT(some input value of length 24)
长度为24 的某些输入值中包含空格, - 。当我执行我的PL / SQL块时,我得到以下错误
Error Occured:ORA-06502: PL/SQL: numeric or value error: character string buffer too small
如果我将它设置为null它可以正常工作。如果我设置为值 123456789012345678901234 它再次正常工作。但如果我在上面添加两个数字就会失败。
我使用length和lengthb函数来查找原始输入的大小,但两者都给出了24的值。
项目经理 - Wfd FO 是我的原始值
答案 0 :(得分:0)
好吧,我仍然没有弄清楚为什么是那种行为,但我只是从VARCHAR2(25)将类型更改为VARCHAR2(50),这可以解决问题,但仍然是为什么挂起的问题在那里。