-341        不能从审计追踪文件中读一行。
在数据库服务器读取此表的审计追踪文件时,遇到了意外的错误。错误的原因可能是 文件权限问题、硬件错误。请查阅操作系统信息,以获得更多的信息。
-342        远程主机不能执行此语句。
本语句被送到别的系统上的数据库服务器上执行,但数据库服务器不支持所请求的函 数。也许是早期版本的原因。
-343        审计追踪中的行被加到了不同于期望的位置上。
当数据库服务器按审计追踪中重新构造表时,发现被插入的行现在的位置与审计追踪 中记录的该行第一次插入时的位置不同。要么审计追踪已经损坏;要么审计追踪不完 全,即丢失了一部分修改记录。表不能按审计追踪恢复。在确认已经使表完全地恢复 到审计追踪建立时的状态之后,再重新操作一次。如果错误再次发生,请按其它方式 重建表。
-344        不能删除行-表中的行与审计追踪中的行不匹配。
当数据库服务器按审计追踪重新构造表时,发现被删除的行现在的位置与审计追踪中 记录的该行第一次删除时的位置不同。要么审计追踪已经损坏;要么审计追踪不完 全,即丢失了一部分修改记录。表不能按审计追踪恢复。在确认已经使表完全恢复到 审计追踪建立时的同样状态之后,重新操作一次。如果错误再次发生,请按其它方式 重建表。
-345        不能变更记录-表中的记录与审计追踪中的记录不匹配。
当数据库服务器按审计追踪重新构造表时,发现更新后的的行现在的内容与审计追踪 中首次进行更新时记录的内容不同。或者审计追踪已经损坏;或者审计追踪不完全, 即丢失了一部分修改记录。表不能按审计追踪恢复。在确认表已经精确地恢复到它在 建立审计追踪时的状态之后,重新操作一次。如果错误再次发生,请用其它方式重建 表。
-346        不能修改表中的一行。
在数据库服务器处理UPDATE时,收到一个非期待的错误,为得到引起该错误原因的更 详细的信息,请查看伴随的ISAM错误代码。原因可能是硬件错误或者锁冲突。
-347        不能按排他存取方式打开表。
数据库服务器不能完成LOCK TABLE命令,或者隐含的LOCK TABLE作为其他命令(例如 ALTER TABLE,RENAME, CREATE INDEX这类改变表定义的语句)的一部分被执行。为得 到引起该错误原因的更详细的信息,请查看伴随的ISAM错误代码。可能的原因包括锁 冲突、锁表已满,或低层的主机操作系统的锁机制有问题。
-348        不能从表中读一行。
数据库服务器试图从表中取一行时,接到了一个意想不到的错误。为得到引起该错误 原因的更详细的信息,请查看伴随的ISAM错误代码。原因可能是硬件错或者锁冲突。
-349        未选择数据库。
因为没有当前的数据库,所以此语句不能执行。或许当前数据库没有建立,或许当前 数据库被CLOSE DATABASE语句关闭了。你可以执行DATABASE或者CREATE  DATABASE命令建立当前的数据库。
-350        该字段的索引已存在。
由于在同一字段或同一字段组合上已存在索引,所以CREATE INDEX不能执行。任意字 段组合最多可以有两个索引,一个为升序索引,一个为降序索引。可以通过联结 sysindexes和systables产生的特殊表来显示索引。在下述语句中给出表名即可:
SELECT * FROM sysindexes,systables WHERE sysindexes.tabid =systables.tabid AND systables.tabname =`table-name'
sysindexes 表不是普通的表(part字段是重复的组),所以没有简单的SELECT 语句可以返回索引的所有字段名。
-351        数据库中有属于其它用户的表。
DROP DATABASE/UPDATE STATISTICS语句不能运行,可能是由于以下的原因:可能 会破坏其它用户的数据。为了取消此数据库,先要取消全部属于其它用户的表。做此 事时你必须有DBA的权限。请参看-313号错误的讨论,那里给出了显示全部表和它们 的拥有者的方法。
-352        字段<字段名>没有找到。
CREATE INDEX语句中命名的字段或其中之一不存在。重新查看语句中所有字段的拼 法。请参看-328号错误的讨论,那里有列出表的所有字段名的方法。
-353        在赋予或撤消权限时,没有指定表或视图。
此语句指定表级别的权限(ALTER, DELETE,INDEX, INSERT, SELECT, UPDATE和 ALL) 中的一个;但没有指定权限所作用的表。在赋予或撤消数据库级别的权限(CONNECT, DBA,RESOURCE)时,你可以不命名表名。但在赋予或撤消表级别的权限时,你必须 指定表。
-354        数据库名或游标名的格式不正确。
此语句中含有不正确的数据库名或游标名格式。如果语句是程序的一部分,数据库名 可能已被传到一个主机的变量中。在OnLine中数据库名应该不多于18个字符,在 INFORMIX-SE中数据库名不多于10个字符(在某些操作系统中可能更少)。游标名必须 不超过18个字符。
数据库名和游标名必须以字母开始,包含字母、数字、下划线字符。6.0及以后版本数 据库名和游标名可以以下划线字符开始。
在DOS系统中,文件名最多只能是8个字符加3个字符的扩展名。
-355        不能重新命名表的文件名。
RENAME语句不能完成,因为数据库服务器得到一个非期待的错误。为得到该错误的 更详细的信息,请查看伴随的ISAM错误代码。可能的原因包括硬件错误和文件权限 问题。
-356        引用和被引用的字段的数据类型不匹配。
子约束中的字段的数据类型必须与父约束中的字段数据类型相同。
-357        视图<视图名>所依赖的表已被变更。
自从视图定义以来,视图所依赖的表的数据已被变更。此变更删除或者重新命名了视 图中用到的一个字段。视图不能再使用了。取消视图,按现在的模式重新定义视图。
-358        在对数据库执行CREATE、START或ROLLFORWARD操作之前必须关闭当前的 数据库。
此类语句要选择新的当前数据库。但当前数据库必须首先被关闭。请先用CLOSE  DATABASE关闭数据库。
-359        不能取消当前数据库。
当前打开的数据库不能取消。请先用CLOSE DATABASE语句关闭数据库,然后再取消 它。
-360        不能修改用于子查询中的表或视图。
UPDATE/INSERT语句使用的数据是从与子查询相同 的表中取出的。这种操作是不允许 的,因为它将导致无穷循环的危险。你可以先把输入数据选择到个临时表,然后再用 UPDATE/INSERT语句引用此临时表。
-361        字段太长。
这个内部错误反映了数据库服务器和应用程序之间通讯方面的问题。不应看到此错 误。如果此类错误再次发生,请记录下全部环境并与INFORMIX技术支持部联系。
-362        只能有一个SERIAL型字段。
表中最多可以有一个SERIAL型字段。该CREATE TABLE语句指定了两个或两个以上的 SERIAL型字段。重新检查语句,删除多余的的SERIAL型字段。如果你想在表中有一个 外码字段(即引用其它表中的SERIAL型字段),那么在本表中应使用INTEGER 数据类型字段。
-363        CURSOR不在SELECT语句中。
此语句(也许是OPEN语句)中的游标被联系到一个非SELECT语句的预备语句。重新查 看程序的逻辑,特别是游标定义的DECLARE语句、所指定的语句id、建立语句的 PREPARE。如果想在INSERT中使用游标,那么只能把INSERT写为DECLARE语句的一 部分。如果要执行一些SQL语句,可直接用EXECUTE语句而不要使用间接的游标方式。
当你试图将游标联系到一个SELECTINTO TEMP语句时,也会返回这个错误。由于 INTO TEMP子句的存在,SELECT语句不能返回任何记录,因此不能使用游标。
-364        没有说明UPDATE OF的字段<字段名>。
UPDATE...WHERE CURRENT OF <游标名>语句至少引用了一个字段:它未出现在定义游 标的DECLARE语句的FOR UPDATE OF子句中。将某些字段列在游标声明中,数据库服 务器将不允许其它字段被修改。重新查看此游标的定义和使用。也许消息提到的字段 和其它的字段应该加到定义中;或者应该删除OF子句,从而允许游标删除表中任意 字段。
-365        FOR UPDATE子句中的游标仅可用在简单SELECT中。
此语句(也许是OPEN语句)中命名的游标在FOR UPDATE子句中定义。然而,它所联系 的SELECT语句或者联结了两个以上的表的联合;用到了UNIQUE, DISTINCT, ORDER BY, GROUP BY或 UNION;或者选择了一个计算值。此类选择语句不能用于更 新,因无法把新数据分配回多个表中。重新查看游标定义,如果它被定义为FOR <语 句id>,还要重新查看建立该语句的PREPARE语句。也许需要两个游标,一个游标用于 一般查询,另一个用于更新。
-366        小数位数超过了指定的最大精度。
此语句中DECIMAL/ MONEY数据类型的精度或小数位数有问题。重新查看这些类型的用 法。首先,DECIMAL应该定义为DECIMAL(p)或DECIMAL(p,s)。此处的p代表1到32之间的 精度(数字的总共位数),s代表小数位数(数字小数点右边的数字个数),并且S不 大于P。MONEY型遵循同样规则。
-367        不能计算字符型字段的总和或平均值。
此语句用 SUM /AVG函数对字符型字段(即CHAR或VARCHAR数据类型)进行计算。 如果你不想计算字符型字段的总和或平均值 ,请重新检查表定义时字段名的拼法。 如果字符型字段中存的是字符形式的数值,有个方法可以巧妙地实现数据库服务器 (4.0及以后版本)的自动转换。在表达式中用圆括号的表达式 (<字段名>+0) 代替函数中的字段名。
-368        不兼容的sqlexec模块。
数据库服务器版本与数据库应用程序例行函数库版本不匹配。这个不兼容性在应用程 序能够执行之前必须解决。数据库服务器通过SQLEXEC环境变量被选中(专指6.0以前 版本的数据库服务器),此变量含有数据库服务器代码的全路径,它常用的名字是 sqlexec或sqlturbo(专指6.0以前的数据库服务器版本)。连接到程序中的存取例行 程序是在编译时选择的。如果你正在执行的程序是由Informix提供的,那么可能是此 Informix产品或其它Informix产品安装不正确。
-369        非法的序列号。请参阅你的安装指南。
在安装你的INFORMIX产品时产生一些错误。请查看SQLEXEC环境变量的值(对6.0之前 的数据库服务器版本而言)和 INFORMIXDIR环境变量,然后向软件安装人员咨询并请 重新查看安装指南。
-370        不能删除最后一个字段。
ALTER TABLE DROP语句要删除表中的每个字段。至少要留一个字段。改正语句,至少 保留一个字段。如果你不想要整个表,可用DROP TABLE语句删除该表。
-371        不能在含有重复值的字段上创建唯一索引。
CREATE UNIQUE INDEX语句不能完成,因为此字段(或一些字段)有一条以上重复的 行。你可以建一个普通索引以接受重复值,或者删除掉重复的值。要得到一列字段中 的重复值,可先建立一个普通索引,在下述SELECT语句中填入表名和字段名,然后执 行之:
SELECT column FROM table main WHERE  1  <         (        SELECT  COUNT(*)  FROM  table  sub                 WHERE  main.column  =  sub.column )
这种语句可扩展到使用了AND的多个字段的情况。
(本文已被浏览 2681 次)
|
|