oracle中的byte / char分配

时间:2017-03-14 07:02:32

标签: oracle plsql

我在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 是我的原始值

1 个答案:

答案 0 :(得分:0)

好吧,我仍然没有弄清楚为什么是那种行为,但我只是从VARCHAR2(25)将类型更改为VARCHAR2(50),这可以解决问题,但仍然是为什么挂起的问题在那里。