为什么我得到ORA-01401:插入的值对于列太大 - 当我没有插入?

Jon*_*kes 7 sql oracle

这是一些使用非常简单的表设置的SQL.

CREATE TABLE CC_TEST2 
  ("CURRENCYID" NUMBER NOT NULL ENABLE, 
"NAME" NVARCHAR2(255)) ;


insert into CC_TEST2 (select 1,'Testing issue'from dual);
commit;
Run Code Online (Sandbox Code Playgroud)

然后重新创建问题

    SELECT (step.Name ||
    'Commentary of 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890            1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 12')
 as thing  FROM CC_TEST2 step
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

我认为nVarchar2有点奇怪吗?如果我将列类型更改为varChar2,那么就可以了.遗憾的是,我无法更改我遇到问题的实际生产数据库的列类型

use*_*436 2

如果将“NAME”NVARCHAR2(255) 更改为“NAME”VARCHAR2(255)(即通过使用varchar2),您将不会遇到任何问题。您可以在http://sqlfiddle.com/#!4/cefd8/2进行相同的测试