-501 索引<索引名>;已经未被聚类。
表不再在(如果曾经在)本索引上被聚类。确认本索引是用户意指的索引;如果这
样,则不必变更本索引。查看哪一个表已被聚类的方法,参见出错号 -500的讨论。
-502 不能聚类索引。
当数据库服务器以行的聚集顺序建立表的新拷贝时,得到一个不期望的错误。检查
ISAM 出错代码以获取更多的信息。典型的原因包括磁盘空间的短缺。
-503 锁定的表太多。
在本主机操作系统的数据库服务器中,有一个关于一次可锁定的表的数量的限制。它
不能锁定用户请求的表。滚回当前的事务,然后重新设计操作以锁定较少的表,或者
代之以行级的锁定,或者以互斥方式打开数据库。
-504 不能锁定视图。
本 LOCK TABLE 命令不能被执行,因为指定的表实际是一个视图。只有实际的表可以 被锁定。滚回当前的事务。然后重新设计操作针对视图所基于的实际的表进行工作,
或者以互斥方式打开数据库。
-505 在 UPDATE 中的字段数与 VALUES 的数目不匹配。
本 UPDATE 语句使用一个 SET 子句,在其中一个字段名字的列表设置为等于表达式
的列表,或者等于SELECT语句。等式左边的字段数并不等同于右边产生的数据值。滚
回当前的事务,然后重写语句。如果表达式的列表被使用,检查标点以确认每个表达
式是不同的。如果SELECT 语句被使用,检查看有多少字段返回。
-506 没有更新所有字段的许可。
用户的账户已经被授予更新特别字段的权限,但是本 UPDATE 语句更新所有的字段,
或者更新用户没有权限的字段。与表的拥有者联系或与本数据库中某个有数据库管理
员权限的人员联系,并要求授予完全的UPDATE 权限。列出表的拥有者的方法,参见
出错号 -313的讨论。
-507 游标 <游标名>; 没有找到。
在本 UPDATE 或 DELETE 语句中 WHERE CURRENT OF子句命名的游标不存在。重新审
查名字的拼法。如果是用户所要的名字,则检查 DECLARE 语句并确认该语句已被执
行。同时还要确认游标没有用 FREE 语句释放。
-508 不能改名临时表。
本 RENAME TABLE 语句不能被执行,因为指定的表是临时的。不能改名一个临时表。
重新审查表名的拼法。如果是用户所要的名字,取消它,用不同的名字再建立一次。
-509 不能改名临时表中的字段。
本 RENAME COLUMN 语句不能被执行,因为指定的表是临时的。不能在临时表中重命
名字段。重新审查表名的拼法。如果是用户所要的名字,取消它,用不同的字段再建
立一次。
-510 不能为临时表 <表名>; 建立同义词。
本 CREATE SYNONYM 语句不能被执行,因为指定的表是临时的。重新审查表名的拼
法。如果是用户所要的名字,则必须重新设计应用程序:或者使表变为永久的,或者
不使用同义词。
-511 不能修改系统目录 <表名>;。
不允许用户更新、插入或删除本表中的行。如果用户有把握必须这样做,则必须作为
用户 informix 签字。那个用户账户可以修改多数的系统目录表;然而,这是一
个有
很大风险的不被推荐的作法,除非得到Informix技术支持部的特别通知。
-512 对参考的字段没有参考权限。
用户对参考的字段没有参考权限。参考表的拥有者,或者有参考权限的用户带有那个
表的授权选项,可以使用 GRANT 语句授权用户这一权限。
-513 语句不可与本数据库服务器一起使用。
本语句(或其中的子句)被某些数据库服务器支持,但是不被用户当前正使用的数据
库服务器支持。数据库服务器的选择(当有一个选择时) 由 SQLEXEC 环境变量(对
于6.0以前的版本的数据库服务器)的设置决定。如果本语句在以前而不是现在工
作,查看在 SQLEXEC中的变化。
-514 只有 DBA 可以建立、取消或授权其它用户。
本数据定义语句指定由其它用户拥有或作为其它用户授权的表、视图、索引或同义 词。任何这些事情都要求有数据库管理员的权限,而用户在本数据库中没有这一权
限。如果用户意欲在自己拥有的对象上工作,重新审查语句的标点;在某处你已限定
具有另一帐户的user-id的名字。否则,要求DBA为你授权DBA权限,或者直接为你做
这些操作。
-515 约束<约束名>;已经被取消。
试图在同一个 ALTER TABLE 语句中取消一个已经被取消的约束。
-516 系统错误 - 临时输出文件还未建立。
这个内部错误表示在数据库服务器和调用它的库函数之间的通信中出了问题。检查用
户程序与数据库服务器在同一软件级。如果错误再次发生,则请记录所有的情况并和
Informix技术支持部联系。
-517 索引的总大小太大或者索引中有太多的部分。
所有的数据库服务器有关于可以在索引中包含的字段数的限制,及关于键(字段宽度
之和)的字节总数的限制。本CREATE INDEX 语句对于本数据库服务器将超过那个限
制。所有的数据库服务器支持至少8个字段及126字节的宽度。OnLine分别允许16和 255。
-518 子约束<约束名>;未找到。
如果这个内部错误再次发生,则请记录所有的情况并和Informix 技术支持部联系。
-519 不能修改字段成不合法的值。
本 UPDATE 语句的值中的一个是基于一个错误的表达式。检查每个 SET 语句中表达式
的正确性,特别注意内置函数如 LENGTH 及 DATE 的用法。
-520 不能打开数据库tblspace。
OnLine数据库服务器不能定位在存储有本命令要参考的表的磁盘分区。与OnLine管理
员联系以找出问题之所在。可能包含该tblspace的大块已经脱机。
-521 不能锁定系统目录<表名>;。
不允许锁定任何一个包含系统目录的表。这些表是所有用户在任何时间都需要的。数
据库服务器正确地处理对它们的并行访问,所以,用户可以从程序中直接删除这些语 句。
-522 表<表名>;在查询时不被选择。
使用一个相关的名字使字段名在 GROUP BY 子句或在 SET 子句合格。考虑在作为触发
动作的存储过程中重写语句,传递作为参数的字段值。在任何情形下,必须重写语句
且在GROUP BY子句或 SET 子句中没有使用相关的名字。
-523 只能恢复、修补或取消表。
本语句(RECOVER、REPAIR或DROP)指定一个视图。然而,这些语句只支持真实表而不
支持视图。在DROP的情形下,如果要取消视图中使用的表中的任何一个表,则视图也
同时被取消。要恢复或修补这种表,必须恢复或修复这些表在其上已有视图定义。列
出是视图的表的名字的方法,参见出错号-394的讨论。
-524 锁定表只能在事务内使用。
因为本数据库有一个事务日志,所以表只能在事务内锁定。重新审查程序并确保本语
句之前已发出一个 BEGIN WORK 语句启动事务。
-525 不能满足参考的约束<约束名>;。
在ALTER TABLE 或SET语句期间,你增加或激活了一个由表中损坏的数据的参考约束。
检查正参考字段的数据(子键)在被参考字段(父键)中存在。
-526 不允许修改滚动游标。
对一 DECLARE 子句,则子句 FOR UPDATE不允许和 SCROLL 关键字在一起。对一符合
ANSI标准的数据库(在其中,当说明游标要修改时,FOR UPDATE 子句是不需要的)中
的 UPDATE语句:则本语句命名的游标用 SCROLL 关键字说明,并且不能用于更新。滚
动游标的实现方法使对表的更新不安全,因为它有时不反应选定行的当前状态。如果
用户要使用滚动游标来检查行,然后更新它们,可以重新用下面的方法设计应用程序
(其中之一) :使用滚动游标同时选择每行的ROWID。再次说明非滚动游标选择进行
更新的行是基于其ROWID。当更新一选定行时:
* 使用由滚动游标找到的 ROWID 值打开更新游标。
* 取出该行并检查出错代码 (行可能已被删除)。
* 如果fetch成功,检验行的内容未从滚动游标(游标现在是锁定的,因此不 能被进一步修改,但是在两个fetch之间它可能已经被修改) 的选定中改变。
* 如果游标未改变,则使用非滚动游标修改。
* 关闭非滚动游标。
* 本过程确保修改反应当前表的状态而保持了滚动游标的方便。一个由新近取 出的行的ROWID 的fetch常常没有磁盘活动并且不会花费很多时间。
-527 本系统中加锁方式不可用。
用户试图使用 SET LOCK MODE TO WAIT 语句于INFORMIX-SE,而 INFORMIX-SE数据库
服务器使用CREATE LOCKING而不是System V的锁定。如果错误再次发生,则请记录
所有的情况并和Informix 技术支持部联系。
数据库服务器不能执行SET LOCK MODE TO WAIT 语句,因为主机操作系统对于锁定并
允许等待锁的释放没有适当地支持。本系统中,用户的程序在表或行被锁定(有出错
号如-233或-378)时将被通知;程序决定在下一步要做什么,例如,回滚事务并再 试。
-528 最大的输出行大小<最大大小>;被超过。
本语句选择的总字节数超过数据库服务器和程序间可以传递的最大值。确认选择的字
段是所需要的字段;检查例如没有由于错误而命名了很宽的字符字段,或者忘记指定
一个子字符串,或者指定了过长的子字符串。如果选择是所需求的,把SELECT 重写
成两个或更多的语句,每个语句只选定字段中的某一个。如果这是几个表的联结,则
最好选择所有想要的数据 INTO TEMP;然后选择临时表的专用字段。如果这是一个
借助程序中游标的fetch,则可以修改程序如下。首先,改变游标以便只选择想要的
行 ROWID,第二,用一组 SELECT 语句扩大 FETCH 语句,每个语句选择一个或几个
字段 WHERE ROWID= 保存的row-id。
-529 不能连到共享内存。
本出错信息在6.0版以前的版本中出现。用户的应用程序不能初始化其对数据库服务器
的连接,因为用户正使用一个共享内存工具。要么数据库共享内存还未被初始化, 要么最大个数的用户已经启动使用系统。检查伴随的 ISAM 出错代码以获取更多的 信息。
-529 不能连到事务。
本出错信息在6.0版以前的版本中出现。用户的应用程序不能初始化其对数据库服务
器的连接,因为用户正使用一个共享内存工具。要么数据库共享内存还未被初始化,
要么最大个数的用户已经启动使用系统。检查伴随的ISAM 出错代码以获取更多的 信息。
-530 检查约束<约束名>;失败。
放置在表字段的检查约束已经被扰乱。要找与字段相联系的检查约束,可以查询 syschecks系统目录表。然而,用户在查询syschecks之前必须知道检查约束的 constrid。(constrid在sysconstrains系统目录表中赋值。)使用下面的子查询以显
示<约束名>;的检查约束。
SELECT * FROM syschecks WHERE constrid =
(SELECT constrid FROM sysconstraints WHERE constrname = constraint-name)
-531 在视图中存在有重复的字段<字段名>;。
本 CREATE VIEW 语句给出一个字段名的列表,并且其中至少有一个字段在列表中出
现两次。重新审查字段名列表并确认每个字段只出现一次。
-532 不能变更临时表<表名>;。
所示的表只是一个临时表,它将在会话期结束时消失。这样的表不能被改变。要改变
表的形式,直接取消并重新建立之。
-533 范围大小太小,最小值为数字k。
为磁盘范围(无论EXTENT SIZE子句或NEXT SIZE子句)指定的大小必须至少四倍于磁
盘页大小,如所示。通常,把 EXTENT SIZE 设置得足够大,以容纳在最初估计
的所
有的行,而设置 NEXT SIZE为其八分之一或四分之一。
-534 表被锁住,不能在表中插入新行。
4.0及以后版本的数据库服务器不返回本错误。在较早的版本中,其意义与错误号-271
(带ISAM出错代码-113)相同。滚回当前事务,并在表被解锁以后重新运行。
-534 不能开启 EXPLAIN 输出文件。
SET EXPLAIN ON语句已被执行,且数据库服务器正试着开启目前工作目录下的 sqexplain.out文件。有某种操作系统的错误阻止了它。详情参见ISAM错误码。更详
细部份可查看操作系统错误信息。可能的原因有:缺少对目前目录的应有权限;磁盘
空间满。4.1版开始有这条出错信息。
-535 已在事务中。
本 BEGIN WORK 语句是多余的;事务已经在处理。如果这是一个程序,重新审查其逻
辑以确认没有意外的失败结束先前的事务。
-536 子约束中的字段数与父约束中的字段数不匹配。
正参考的字段(子键)数与参考约束中被参考的字段(父键)数不匹配。检查在被参
考和正参考字段间的一对一对应关系。
-537 约束字段<字段名>;在表中没有找到。
在约束定义中指定的字段不存在。
-538 游标<游标名>;已经被说明。
在 DECLARE 语句中命名的游标已经在较早执行的DECLARE 语句中命名。可能同一个
DECLARE 语句正在一个循环中被执行;也可能程序要为此游标执行一个 FREE 语句,但没有执行。重新审查程序逻辑以确认对每一个游标只执行一次 DECLARE (释放的游标除外)。
-539 DBTEMP太长
在DBTEMP环境变量中的路径名超过关于路径名长度为80个字符的限制。用户必须把临
时目录定位在目录结构的较高层次上。从版本5.01开始,INFORMIX-SE
数据库服务器使用DBTEMP环境变量,而 INFORMIX-OnLine 动态服务器不使用。
-540 在约束上写失败
定义约束时发生错误。可能用户已经定义了一个约束,其名字与另一个约束、表、或
索引重复。如果是这种情形,指定一个唯一的名字重复此语句。否则,核查 伴随的
ISAM 出错代码以获取更多的信息。
-541 用户没有 ALTER权限
用户在变更表、名称、类型、或字段数以前,必须有正确的权限。用户必须是表的拥
有者或者在数据库中有数据库管理员的权限,或者必须有表的拥有者或 DBA 批准的
ALTER权限。见出错号-313关于用DBA权限列出表的拥有者的方法的讨论。
-542 在约束、触发器或索引中不能多次指定同一字段。
在更新触发器的触发字段表中多次命名同一字段。删除重复出现的字段名并重试。在
索引表中如果有重复的字段名,也会出现本错误。
-543 ESCAPE 字符必须是一个单字符。
在 WHERE 子句中,ESCAPE微子句包含多个字符作为一个字符。重新审查子句的标点
并加以修改使其只指定一个字符。
-544 统计内不能有统计。
语句包含参数表内对于另一个统计函数的统计函数调用,例如SUM(MAX(COLUMN))。这 种操作是不被支持的,因为所有的统计函数是在行的同一组进行计算的。如果这种表
达式不是想要的表达式,查找遗漏的或放错地方的圆括号。如果这种表达式是想要的
表达式,就必须重新想办法。例如,可以选择 MAX 值放入临时表中,然后取其 SUM。
-545 对于表<表名>;没有写许可。
检查伴随的 ISAM 出错代码以获取更多的信息。对于数据库服务器,一个数据库是一
个具有名字<数据库名>;.dbs的目录,而表和索引是目录内的文件。用户必须具有所有
这些文件的读写访问权限,以便正常地运用数据库函数。
-546 当建立视图<视图名>;时,不能有宿主变量。
本语句或者准备、 或者执行一个 CREATE VIEW 语句,在此语句中 SELECT 语句访问
宿主变量。这种操作是不被支持的。SELECT语句在视图中可以从任何程序中被执行,
并且可以不依赖于程序的变量。重新审查 CREATE VIEW语句,并确认该语句不包含
任何宿主变量的名字、INTO子句,也不包含?通配符。5.01版以后的数据库服务器不使
用本错误信息。
-547 必须在数据库所在目录前滚数据库。
在执行 ROLLFORWARD 语句之前,使当前目录成为为数据库包含<数据库名>;.dbs 目录的目录。然后再次执行语句。
-548 在 TEMP 表中不允许参考约束和触发器。
用户不能在一个临时(TEMP)表中建立约束或触发器。考虑建立临时表作为数据库中
的参数表。如果选项可行,则建立该表,然后在其上建立触发器。
-549 在 UNIQUE 约束中,字段<字段名>;不是表中的字段。
出现在为 UNIQUE 子句列表的字段中显示的字段,不是在表中定义的字段之一。检查
在本语句中所有字段名字的拼法。如果所有字段的拼法正确,则检查表的定义。见出
错号 -328 关于在表中列出所有字段名的方法的讨论。
5.01版本以后的数据库服务器不使用本出错信息。
-550 在约束中的字段总长太长。
列在 UNIQUE、PRIMARY KEY 或者FOREIGN KEY 子句中的所有字段的总长是有限
的。这个限制取决于使用的数据库服务器,而所有的服务器支持 120 字节的总长。
这个限制,和复合索引中的所有字段总长的限制是一样的。更详细的信息,请参阅
《Informix SQL 指南:语法》中CREATE TABLE 语句。
-551 约束包含太多的字段
在 UNIQUE、PRIMARY KEY 或 FOREIGN KEY 子句列出的字段是有限制的。限制 (limit)取决于使用中的数据库服务器,但所有的数据库服务器都支持8个字段。
在复合索引中的字段数,limit和restriction是一样的。要获取附加的信息, 请参考 Informix Guide to SQL: Syntax 中的CREATE TABLE 语句。
-552 在多语句准备中,Blob 主机变量不被允许。
本 EXECUTE 命令执行一个有准备的多重语句列表。在列表中,通配符? 提供的一个
或多个主机变量是对于TEXT 或 BYTE 的定位器结构。这种操作是不被允许的。访问
TEXT 或 BYTE变量的语句可能已准备好并被执行,但它们必须是单个语句,而不是多
语句列表的一部分。
-553 在$INFORMIXDIR/bin中未找到mkdbsdir。参考安装说明。
可执行程序 mkdbsdir 在 CREATE DATABASE 语句期间,用于建立数据库目录的初始
内容。它由数据库服务器分配并且应该在 INFORMIXDIR 环境变量命名的目录的子目
录bin 中找到,但是没有找到。检查INFORMIXDIR 环境变量的设置,然后咨询软件
安装人员。
-554 在本数据库服务器中不允许的句法。
使用的数据库服务器不支持本语句或某些子句。程序启动时,由SQLEXEC环境变量(对
6.0及以前版本的数据库服务器而言)决定选择所使用的数据库服务器。在Informix
数据库服务器之间,语句的句法方面有几个小的区别。例如,使用OnLine的CREATE
TABLE 语句支持子句 IN <数据库空间名>;(不使用引号字符)而其它的数据库服务器
支持子句IN '<路径名>;'(要求有单引号)。
-555 在多重查询准备中,不能使用选择或任何数据库语句。
由 PREPARE 提供的语句文本有由分号分开的多重语句,其语句之一是 SELECT、 DATABASE、CREATE DATABASE或CLOSE DATABASE。这些语句必须总是准备成单语句文 本。核查语句文本字符串并确认想要多重语句;然后修改程序单独执行这四种类型的 语句。
-556 在另一个数据库服务器上不能建立、取消或修改对象。
本语句试图建立、取消或修改不是当前数据库的外部数据库中的对象。用户只可以读
外部数据库的内容。如果使数据库成为当前的数据库,可以修改其内容。重新审查在
外部数据库<数据库名>;访问目标,开始<数据库名>;时名字的所有用法。
-557 在<级别数>;级同义词映射后,不能定位另一个服务器表。
本问题中命名的表之一事实上是一个同义词,指向当前数据库的外面。其命名指向数
据库外面的另一同义词,并且没有发现一个实际的表来计数同义词。数据库服务器已
经放弃一个无结束的同义词链情况的查询。可以通过询问systables 和 syssyntable访问外部数据库,重新审查在当前数据库中的同义词如下:
SELECT T.tabname synonym, servername, dbname, user, S.tabname FROM systables T, syssyntable S WHERE T.tabtype = 'S' AND T.tabid = S.tabid AND S.btabid IS NULL
通过外部数据库追踪一个同义词链,在外部数据库中使用一个类似的询问,代替每次
前一个询问返回的servername、dbname和tabname的值。
SELECT T.tabname synonym, servername, dbname, user, S.tabname FROM dbname@servername:systables T,
dbname@servername:syssyntable S WHERE T.tabtype = 'S' AND T.tabname = 'tabname' AND T.tabid = S.tabid
当本查询没有返回行时,请求的<表名>;没有作为一个同义词在那个数据库中定义(它
是一个表或视图,或没有定义)。
-558 在 $INFORMIXDIR/bin 中未找到 changrp。请参考安装说明。
本命令要求有名字为 changrp 的可执行程序。该程序通常作为数据库服务器的一部
分被安装,并应在由环境变量 INFORMIXDIR 命名的目录的子目录bin之下。 检查该变量的值,然后咨询安装软件的人员。
-559 在同义词的上面不能创建同义词。
本 CREATE SYNONYM 命令命名另一同义词。产生一个同义词链是不被允许的。 见出错号-218关于列出所有同义词的方法的讨论。为使具有同样意义的第二个同义词
放在第一位,找出另一同义词的意义,然后造一个新的同义词去访问一个基表。对一
个给定的同义词,要看到基表,按如下方法询问systables和syssyntable,代替同义
词的名字:
SELECT T.tabname synonym, S.* FROM systables T, syssyntable S
WHERE T.tabname = name AND T.tabid = S.tabid
如果btabid在结果显示中定义,则该同义词是指tabid的当前数据库,否则指一外部数 据库。
-560 有tabid<号码>;的同义词在systables中未找到。
systables或syssyntable系统目录,或它们中之一的索引已经被损坏。运行bcheck
或secheck实用程序。准备重建所有的同义词。
-561 对日期时间值不能进行求和及平均值计算。
本语句应用一个统计函数(如 SUM)于一个具有类型DATETIME 的字段。该函数不是
对这种数据类型定义的,因为不是算术类型。重新审查统计函数的用法,并必须修改
原查询。
-562 数据库转换失败。
用户正运行一个数据库服务器的新的版本,并且第一次已用这一级的软件打开了一个
数据库。数据库服务器试图通过定义一个附加的系统目录表自动地更新数据库。发生
一个意外的错误。检查 伴随的ISAM 出错码以得到更多的信息。如果错误再次发生,
则请记录所有的情况并和 Informix技术支持部联系。
5.01及以后版本的数据库服务器不使用该错误信息。
-563 不能为数据库转换获取排他锁定。
正在运行数据库服务器的新版本,并且刚好首次以这个软件级别打开了一个数据库。
该数据库服务器已经试图通过定义附加的系统目录表来自动地升级数据库。然而,
这需要锁定数据库,以便独占使用,来完成这次转换,但其它用户已将该数据库打开 了。请稍候,然后再重新试一下这个语句。到那时,这个数据库可能被释放了(或 者其它用户的操作已将它更新了)。
-564 不能排序行。
这个内部错误反映执行排序时的意外情况。检查ISAM 出错码以得到更多的信息。如果
错误再次发生,则请记录所有的情况并和 Informix 技术支持部联系。
-565 不能读已排序的行。
这个内部错误反映执行排序时的意外情况。检查ISAM 出错码以得到更多的信息。如果
错误再次发生,则请记录所有的情况并和 Informix 技术支持部联系。
-566 不能开始排序。
这个内部错误反映执行排序时的意外情况。检查ISAM 出错码以得到更多的信息。如果
错误再次发生,则请记录所有的情况并和 Informix 技术支持部联系。
-567 不能写已排序的行。
这个内部错误反映执行排序时的意外情况。检查ISAM 出错码以得到更多的信息。如果
错误再次发生,则请记录所有的情况并和 Informix 技术支持部联系。
-568 不能访问不带日志的外部数据库。
本语句访问一个当前数据库以外的数据库。然而,当前数据库使用事务日志,而外部
的数据库不使用。这种操作是不被支持的。在单个事务中使用的数据库必须全都使用
日志或者全都不使用日志。
-569 不能访问带日志的外部数据库。
本语句访问一个当前数据库以外的数据库。然而,当前数据库不使用事务日志,而外
部的数据库使用。这种操作是不被支持的。在单个事务中使用的数据库必须全都使用
日志或者全都不使用日志。
-570 不能访问外部的 ANSI 数据库。
本语句访问一个当前数据库以外的数据库。然而,当前数据库是不符合ANSI标准的,
而外部的数据库符合。这种操作是不被支持的。在单个事务中使用的数据库必须全
都是符合ANSI标准或者全都不符合ANSI标准。
-571 不能访问外部的非 ANSI 数据库。
本语句访问一个当前数据库以外的数据库。然而,当前数据库是符合ANSI标准的,而
外部的数据库不符合。这种操作是不被支持的。在单个事务中使用的数据库必须全
都是符合ANSI标准或者全都不符合ANSI标准。
-572 指定的等待持续时间太长。
用户在 SET LOCK MODE 中作为 WAIT 时间可以指定的最大时间是 32767 秒。重新
审查本语句并确认指定的正是所需的以秒计的持续时间。如果是这样,则或者使用一
个较短的持续时间,或者(因为32767 秒大于9个小时)省去持续时间直接指定一个
无限的等待。
-573 在模式 ANSI 数据库中不能使日志设置为缓冲方式。
本语句试图应用 BUFFERED LOG 方式,但数据库是符合ANSI标准的;亦即,数据库由
子句 MODE ANSI建立。遵循 ANSI 的一个方面是,所有的事务在COMMIT WORK 语句执行期间立即记入日志。使用缓冲日志方式必然伴有日志记录的延迟写入,这样
在某些较小丢失事务日志的风险时会改善性能。在标准下不允许这样的风险;符合
ANSI标准的数据库必须使用非缓冲日志方式。
-574 一个子查询返回的不是严格的只有一个字段。
本语句包含一个作为单值使用的子查询(在圆括号内的SELECT语句)。(例如,在相
关操作符如相等的一边)。这样的子查询必须严格的只在一行和一个字段返回;否 则,就会对返回值中哪一个是所需要的这一问题发生疑问。本子查询返回不止一个
值。重新审查所有的子查询并确认它们都最多只返回一个字段(在SELECT 后只列出
一个表达式)而且最多只有一行(在WHERE 子句中测试唯一键)。
-575 LENGTH()要求字符串类型值。
本语句包含应用于不是字符类型(不是 CHAR或VARCHAR)的字段或表达式的LENGTH 的用法。这种操作是不被支持的。重新审查 LENGTH 的用法并确认它们只应用于字符 值。
-576 不能为 TEMP 表指定 CONSTRAINT名。
用户不能为安排在临时表的约束指定约束名(无论是UNIQUE、 PRIMARY KEY、 FOREIGN KEY、或CHECK),这种操作对于临时表是不支持的。然而可以指定一个字段
接收约束中的一个约束,而且当已有一个约束时指定一个字段列表。但是不能使用
CONSTRAINT <约束名>;子句。临时表及它们的索引没有记录在通常的系统目录表中。
-577 字段集中已有同一类型的限制。
用户已安排字段集的约束(可以是 UNIQUE、PRIMARY KEY、FOREIGN KEY、或CHECK
)但是关于那些字段的同一类型的约束已经存在。在 FOREIGN KEY 的情况下,这种
错误只在同一个外码字段集访问同一个已经存在的父码字段集时才会发生。无论约束
在表格创建时发生,还是已经被加入,自从字段存在以后就不能再次加入。
-578 所有者的名字太长。
本语句包含一个限制表、视图、索引及同义词名的所有者的名字,并且所有者的名字
比8个字符的最大值更长。例如 overly_long.tablename。重新审查所有标识符的标点 和拼法;可能遗漏一个空格或逗号使两个名字合成一个名字。选择相关系统目录的拥
有者字段:systables、sysindexes、或syssynonyms,可以检查所有已知拥有者的 名字。
-579 不是同义词的拥有者。
不拥有在 DROP SYNONYM 语句中规定的同义词。要取消一个自己不拥有的对象, 必须要有数据库管理员的权限。
-580 不能取消许可。
REVOKE 语句不能被执行,或者本语句取消一个数据库级的权限而用户不是这一数据
库的数据库管理员,或者本语句取消一个用户帐户名无权取消的表级的权限。重新审
查权限和用户名确认其正确。用如下方法通过询问systabauth从而列出已获准的表级 权限。
SELECT A.grantee, T.tabname FROM systabauth A, systables T WHERE A.grantor = USER AND A.tabid = T.tabid
-581 装入信息文件错。 SET EXPLAIN 语句不能被完成,因为数据库服务器准备解释输出时,不能找到所使用
的信息样板文件。询问 Informix 软件的安装人员。
-582 数据库没有日志。
本 ROLLFORWARD 语句不能被执行,因为数据库没有事务日志。前滚操作用事务日志
作为其输入,由于没有对任何事务进行日志,所以数据库不能被前滚。
-583 察看许可不再有效 -- 远程目标许可被收回。
本语句需要一个基于外部数据库表的视图(当前数据库以外的其它数据库)。然而在
一个或多个这样的数据库中,用户的账号没有拥有视图使用的表的表级权限;或者用
户对外部数据库的CONNECT 权限已经被取消。关于显示视图定义的方法,参见出错号
-385 的讨论。在视图定义中寻找用数据库名及可能的场地名限定的表的名字。
-584 不能改名系统目录。
RENAME TABLE 语句不能被执行,因为它将改名组成系统目录表中的一个表。这些表
的名字不可以被改变;数据库服务器使用它们。
-585 不能改名系统目录中的字段。
RENAME COLUMN 语句不能被执行,因为它将改名组成系统目录的表中的一个字段。数
据库服务器依赖于这些字段名字供内部需要,并且不能改变这些名字。
-586 游标已经是打开的。
本数据库以与 ANSI 相一致的方式运行 (以 MODE ANSI创建或启动)。按照 ANSI SQL 的规则,一个游标必须总是在关闭以后才能再一次被打开。重新审查程序的逻
辑。可能最初是要利用Informix 对SQL的扩展:如果游标被重新打开,它就自动地
被关闭和打开。在当前的数据库中这种操作是不被支持的。
-587 不能删除文件<文件名>;。
4.0 及其以上版本不使用本信息。对先前的版本,检查伴随的 ISAM 出错代码以获取
更多的信息。
-588 无效的主机变量号。
用4.1版本启动的数据库服务器检测此内部错误。如果错误再次发生,则请记录
所有
的情况并和Informix 技术支持部联系。
-589 在单个事务内不能修改多个场所。
本数据库服务器只支持单场所修改,一个事务内的操作只可以修改网络中一个节点的 数据;事务内前面的某个语句已经修改了一个节点中的数据;当前语句将修改第二个
节点的数据。此语句不被执行。滚回当前事务,根据这一限制检查应用程序,检查
受UPDATE、INSERT、和 DELETE 影响的所有表格的名字,以确认它们都在同一个数据
库中,或者在同一个数据库服务器保持的数据库中。(检查任何同义词的定义。因为
同义词可以使外部数据库中的表格看起来就象在当前的数据库中一样。)
5.01以后版本的数据库服务器不使用本出错信息。
-590 过程高速缓存已经毁损。
如果这个内部错误再次发生,请注意所有的环境状况,并与 Informix 技术支持部门 联系。
-591 字段/变量 <字段名>;/<变量名>;的无效缺省值。
指定的缺省值对于字段或存储的过程变量是错误的类型。字段的缺省值用 CREATE
语句中的DEFAULT子句规定。存储过程中变量的缺省值用过程中DEFINE 语句的 DEFAULT子句规定。
-592 当缺省值为空时,不能指定字段为非空。
本 CREATE 或 ALTER TABLE 语句规定字段不能包含空(NOT NULL 子句),但是也有
一个DEFAULT 子句为新行给出为 NULL 的缺省值。这种不一致是不允许的。
-593 不能为 SERIAL 字段指定缺省值。
本 CREATE 或 ALTER TABLE 语句规定字段的数据类型为SERIAL,但也有一个对于字
段的 DEFAULT 子句。数据库服务器在每次建立一行时为SERIAL字段生成值,所以
DEFAULT 子句是无意义的。
-594 不能为 blob 字段指定非空缺省值。
本 CREATE 或 ALTER TABLE 语句规定字段的数据类型为 BYTE 或 TEXT。而且有一
个DEFAULT 子句为字段规定除 NULL 以外的内容。用户只可以为 TEXT 或 BYTE 数据类型的字段指定缺省值 NULL。
-595 在上下文中不恰当的统计用法。
统计函数在存储过程表达式内的 SQL 语句之外使用或在检查限制之内使用。 下面是这个错误的一个例子:
LET var = MAX(another_var) + 10; -- error
存储过程表达式或检查限制内的表达式,只可以访问一个单值,所以使用统计函数是
无意义的。
-596 不好的 EXIT/CONTINUE 语句。未在<语句名>;循环内部。
存储过程 EXIT 和 CONTINUE 语句必须放在FOREACH,WHILE,或 FOR 循环之内。
-597 [内部的]过早的 End Of Buffer。
如果这个内部错误再次发生,则请记录所有的情况并和Informix 技术支持部联系。
-598 不好的游标名字<游标名>;。
在一个存储过程内部,在 UPDATE/DELETE. . .WHERE CURRENT OF 语句中指定了一个
不存在的游标名字。
FOREACH cur1 FOR SELECT col INTO var FROM tab UPDATE tab SET col = proc(var)
WHERE CURRENT OF bad_cur_name; -- error END FOREACH
-599 不能把 INFORMIX-OnLine 句法和 INFORMIX-SE 句法混和在一起。
对 INFORMIX-OnLine Dynamic Server 特定的句法和对INFORMIX-SE 数据库特定的句
法已混淆在同一语句中。使用对你的数据库服务器来说合适的句法。
-600 不能建立 blob。
本语句建立一个BYTE或TEXT值,但某些意外的错误阻止值的建立。滚回当前的事务,
检查 伴随的ISAM出错码以得到更多的信息。可能blobspace或tblspace数据已满。或
者你没有指定一个合法的blobspace。如果错误再次发生,则请记录所有的情况并和
Informix技术支持部联系。
因篇幅问题不能全部显示,请点此查看更多更全内容