发一篇在维护中总结的informix错误说明

1.        

问题描述:不能向表中插入数据

报错信息:

271: Could not insert new row into the table.
136: ISAM error: no more extents

问题原因:如果建表的时候不手工修改表的next size值,则默认为16next size太小,表的扩展很容易达到极限,因此需要删除一部分数据然后修改参数

处理步骤:

1.先删除表的一部分数据

2.alter table table_name next size 1024010240只是个参考值,感觉实际需要修改)

2

问题描述:系统表锁,不能利用dbschema查看表结构

报错信息:

问题原因:数据库中有异常sql导致系统锁表

处理步骤:

1)。利用onstat –g sql查看所有数据库正在执行的sql

2)。onstat –g sql id查看sql语句,得到异常sqlid

3)。利用onmode –z id 来杀掉异常sql

3

问题描述:数值超出字段类型的范围

报错信息:

1215: Value exceeds limit of INTEGER precision

问题原因:由于字段类型为整形,最大为2147483647,但是插入的数超过这个值

处理步骤:

1)。检查这个值是否正常

2)。如果插入的数正常,则修改字段类型,比如改为int8或者float

   修改方法为alter table table_name modify column_name int8(float)

4.

问题描述:不能向表中插入数据

报错信息:

268: Unique constraint (informix.u151_54) violated. 

   100: ISAM error:  duplicate value for a record with unique key. 

问题原因:

表创建了主键,主键所包含的字段不能重复,而表中已经存在了正在入的数据,导致出错

处理步骤:

检查表中已经存在的数据是否是需要的数据,如果不是,则删除此数据,在插入新的数据,如果存在的数据和需要入的数据一致,则不需再入。

5

问题描述:向表中增加字段是报错alter table test add(type char)

报错信息:

  9992: Named row type (char) not found.

问题原因:由于type为类型关键字,在此系统认为你增加类型而不是字段

处理步骤:

可以修改字段type为其它的字段名,或者按照如下更改:

alter table test add(type char)

备注:

在建表或者修改表字段时需要注意防止字段名为数据库关键字

6

问题描述:insert数据时报错

报错信息:

-292    An implied insert column column-name does not accept NULLs.

问题原因:指定的INSERT字段不接收NULL.

处理步骤:RDSQL不允许在非空字段中插入一个NULL.检查在INSERT语句的字段列表中是否有非空字段.

7

问题描述:分组sql报错

报错信息:

-294 The column column-name must be in the GROUP BY list.

问题原因:字段不在GROUP BY列表中.

处理步骤:SELECT 列表中的非聚合必须包含在GROUP BY列表中.重新构造语句.将所有非聚合功能的字段包含在内.

8

问题描述:分组sql报错

报错信息:

-295    Referenced and referencing tables have to be in the same database.

问题原因:GROUP BY 字段的个数太多.

处理步骤:ORDER BY GROUP BY语句中引用到的字段个数超过SELECT语句中的字段总数.

9

问题描述:分组sql报错

报错信息:

-300    There are too many GROUP BY columns.

问题原因:GROUP BY 字段太多(最大为8)

处理步骤:减少语句中的字段个数.使之小于或等于8.

 

另外,varcharnumber)型字段,number不得超过255

CHAR型字段不得超过32767个字符

UNIX系统上数据库名不得超过10个字符;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值