sql错误:ORA-01401:插入的值对于列太大 [英] SQL Error: ORA-01401: inserted value too large for column

查看:120
本文介绍了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)"其中LalitSCHEMATTABLEACOLUMN。为列A指定的大小为%2,而表创建为%2,但是实际插入的大小为%3。

更新关于ORA-01401ORA-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>

这篇关于sql错误:ORA-01401:插入的值对于列太大的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆