SQL Error: ORA-01401: inserted value too large for column
SQL Error: ORA-01401: inserted value too large for column
我在向 Oracle 数据库中的 table 插入新记录时遇到问题。错误描述说-
SQL Error: ORA-01401: inserted value too large for column
table.
中有 60 列,我怎么知道哪一列具有较大的价值?
SQL Error: ORA-01401: inserted value too large for column
您正在尝试为列插入大于指定大小的值。
How would I come to know that which column is having large value as I am having 60 columns in the table.
错误肯定会有 table 和列名以及插入的实际大小和允许的最大大小。
例如,
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"(实际:3,最大值:2)" 其中 LALIT 是 SCHEMA
,T 是 TABLE
和 A 是 COLUMN
。 table 创建时为 A 列指定的大小为 2,但实际插入有 3。
更新 关于 ORA-01401
和 ORA-12899
之间的混淆。
从 Oracle 10g 及更高版本开始,ORA-01401
被修改为 ORA-12899
,后者更明确并且包含有关导致错误的 SCHEMA、TABLE 和 COLUMN 的详细信息。
附加信息以防万一有人感兴趣:
有ORA-01401
的对应,即ORA-01438
,适用于NUMBER的情况。这个好像没变。
例如,
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>
我在向 Oracle 数据库中的 table 插入新记录时遇到问题。错误描述说-
SQL Error: ORA-01401: inserted value too large for column
table.
中有 60 列,我怎么知道哪一列具有较大的价值?SQL Error: ORA-01401: inserted value too large for column
您正在尝试为列插入大于指定大小的值。
How would I come to know that which column is having large value as I am having 60 columns in the table.
错误肯定会有 table 和列名以及插入的实际大小和允许的最大大小。
例如,
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"(实际:3,最大值:2)" 其中 LALIT 是 SCHEMA
,T 是 TABLE
和 A 是 COLUMN
。 table 创建时为 A 列指定的大小为 2,但实际插入有 3。
更新 关于 ORA-01401
和 ORA-12899
之间的混淆。
从 Oracle 10g 及更高版本开始,ORA-01401
被修改为 ORA-12899
,后者更明确并且包含有关导致错误的 SCHEMA、TABLE 和 COLUMN 的详细信息。
附加信息以防万一有人感兴趣:
有ORA-01401
的对应,即ORA-01438
,适用于NUMBER的情况。这个好像没变。
例如,
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>