sql错误:ORA-01401:插入的值对于列太大
将新记录插入Oracle数据库中的表时出现问题。错误描述显示-
sql错误:ORA-01401:插入的值对于列太大
由于表中有60列,我如何知道哪一列具有较大的值。
解决方案
sql错误:ORA-01401:插入的值对于列太大
您正在尝试插入大于列的指定大小的值。
由于表中有60列,我如何知道哪一列具有较大的值。
错误肯定会使表名和列名具有插入的实际大小和允许的最大大小。
例如
SQL> CREATE TABLE t(A VARCHAR2(2));
Table created.
SQL>
SQL> INSERT INTO t VALUES ('123');
INSERT INTO t VALUES ('123')
*
ERROR at line 1:
ORA-12899: value too large for column "LALIT"."T"."A" (actual: 3, maximum: 2)
SQL>
在上面的示例中,错误清楚地指出"column"Lalit"."T"."A"(Actual:3,Maximum:2)"其中Lalit是SCHEMA
,T是TABLE
,A是COLUMN
。为列A指定的大小为%2,而表创建为%2,但是实际插入的大小为%3。
更新关于ORA-01401
和ORA-12899
之间的念力。
从Oracle 10g和更高版本开始,ORA-01401
已修改为ORA-12899
,它更明确,并且包含有关导致错误的架构、表和列的详细信息。
其他信息以防万一有人感兴趣:
有一个ORA-01401
的对应物,即ORA-01438
,适用于数字的情况。这似乎没有变化。
例如
SQL> CREATE TABLE t(A number(2));
Table created.
SQL>
SQL> INSERT INTO t VALUES (123);
INSERT INTO t VALUES (123)
*
ERROR at line 1:
ORA-01438: value larger than specified precision allowed for this column
SQL>
相关文章