oracle - SQL 错误 : ORA-01401: inserted value too large for column

标签 oracle oracle10g

我在向 Oracle 数据库中的表插入新记录时遇到问题。错误描述说-

SQL Error: ORA-01401: inserted value too large for column

我如何知道哪一列具有较大的值(value),因为我在表中有 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.

错误肯定会有表名和列名加上实际插入的大小和允许的最大大小。

例如,

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)"where LALITSCHEMATTABLEACOLUMN。建表时A列指定的大小为2,实际插入时为3。

更新 关于 ORA-01401ORA-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 - SQL 错误 : ORA-01401: inserted value too large for column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29228898/

相关文章:

oracle - 在oracle中维护计划表

mysql - MySQL中如何选择记录类型

java - 如何在 Java 调用 Oracle DB 中运行多个顺序语句?

java - 关于oracle sql group by 'not a group by expression'

oracle - 与 Java 6 一起使用的 Oracle 瘦驱动程序版本

sql - ORA-12801 : error signaled in parallel query server P004 and ORA-01555: snapshot too old

Java 将值传递到 SQL WHERE 子句中的 IN

oracle - Hibernate @OrderBy 与引用的类

java - 我可以在 Oracle 10g 数据库上使用 Oracle JDBC 12.1.0.1(用于 12c 数据库)吗?

c - Ora*C PCC-S-02201,在期望以下 : 之一时遇到符号 "L"