-211        不能读取系统目录<目录表>。
数据库服务器在处理大多数语句时参照系统目录表。当不能读取这些重要的表时就产 生了严重的错误。检查伴随的ISAM错误代码以获得更多的信息。错误的影响取决于正 在执行的语句和特定的表,如下所示。
    *   CREATE TABLE语句,systabauth不能读取;该表可以被建立,但不能象正常         情况一样授权给PUBLIC。
    *   DROP TABLE语句,systables不能读取;不做任何动作。
    *   DROP TABLE语句,sysviews不能读取;该表将被取消,但任何依赖于该表的         视图将不能被自动取消。
    *   DROP VIEW语句,sysviews不能读取;不做任何动作。
    *   DROP INDEX语句,systables或sysindexs不能读取;不做任何动作。
    *   DROP SYNONYM语句,systables或syssynonyms不能读取;不做任何动作。
    *   DROP DATABASE语句,systables不能读取;不做任何动作。
    *   START DATABASE语句,systables不能读取;不做任何动作。
    *   DATABASE语句,systables或sysusers不能读取;该数据库不被选中         (没有当前数据库,后来的操作见错误-349)。
其它语句可能在错误被侦测出来之前已经部分完成了。滚回当前的事务并调查错误的 原因。使用实用工具bcheck或secheck(INFORMIX-OnLine的tbcheck或INFORMIX- OnLine动态服务器的oncheck)来检查或修复索引。如有必要,从备份和逻辑日志磁带 上恢复数据库。
-212        不能增加索引。
这个语句试图增加一个索引,可能是显式地通过CREATE INDEX,或是隐含地作为对多 个无索引表的SELECT的处理的一部分。不管在哪种情况下,某些错误阻止了索引的建 立。请检查伴随的ISAM错误代码以获得更多的信息。产生这个问题的一个常见的原因 是磁盘空间不足。
-213        语句被用户中断。
数据库服务器接收到用户发出的一个中断信号,可能是由于用户按下了中断键(通常是 Delete键或Control-C)。语句提前结束。程序应滚回当前的事务并友好地结束。如果 该语句可能修改表,交互式用户应该执行ROLLBACK WORK以取消任何不完全的修改。
-214        不能给表<表名>删除文件。
数据库服务器不能完全地删除该表。检查伴随的ISAM错误代码以获得更多的信息。 操作系统的文件访问权限问题,只读文件和硬件错误可能引发这个错误。
-215        不能为表<表名>打开文件。
数据库服务器不能打开操作系统文件或存储该表处的文件。请检查伴随的ISAM错误 代码以获得更多的信息。操作系统的文件访问权限问题,内存不足和硬件错误可能 引发这个错误。
-216        不能删除文件的ISAM索引。
数据库服务器不能完全地删除一个索引。检查伴随的ISAM错误代码以获得更多的 信息。操作系统的文件访问权限问题,只读文件和硬件错误可能引发这个错误。
-217        在查询中未在任何表内发现字段<字段名>。
该字段名出现在这个查询的选定列表或是WHERE子句中,但在表中未定义。检查选定 的表的名字是否拼写得与你所预期的相同。如果是这样的话,或是你正在使用不正确 的数据库,或是该数据库已被改变;可能是某个字段已被改名或清除。为了列出表内 全部字段,见对错误-328的讨论。
-218        同义字<同义字名>未找到。
同义字在这个数据库中未被定义。检查同义字名是否拼写得如你所预期的。检查你正 在使用你所希望用的数据库。如果是这样的话,该同义字可能被取消了。该同义字可 能是在它所在的表被取消时被自动取消了。为了显示所有被定义的同义字,查询 systables,如下所示:
SELECT tabname FROM systables WHERE tabtype = `s'
-219        通配符匹配不能用于非字符类型。
这个语句的WHERE子句中包含了对一非字符字段的测试,该测试使用了关键字LIKE 或MATCHES,并使用了代表多重字符的特殊字符,(例如在MATCHES中使用星号和问 号,或是在LIKE中使用百分号和下划线)。只对数据库中被定义为CHAR或VARCHAR 的字段才使用这类测试。不提供自动的数据转换。检查WHERE子句中的字段正是你所 希望的。如果是这样的话,表的定义可能被修改过了。
-220        查询中没有FROM子句。
每一个SELECT语句必须包括一个FROM子句来为表或将被查询的表命名。检查FROM 是否拼错,或有额外的分号意外插在语句尾端。即使只选择一个常数,或选择与任何 表格无关的函数值(例如USER或TODAY等),你也必须为表命名。你可以从系统目录 选择一已知的行,例如:
SELECT 'today is', TODAY,'and I am', USER FORM systables WHERE tabid= 100
数据库中,第一个用户定义的表格的 tabid值总是等於100,因此,如果有表格已 被定义,这个查询总会回复一行。(在4.1版及以后版本,若没FROM子句,会发出-201 语法错误。)
-220        不能开始保存点。
从版本4.1开始可以侦测到的内部错误。如果该错误再次出现,请记录下所有的环境并 与Informix 技术支持部联系。
-221        不能建立新表<表名>的临时文件。
数据库服务器不能建立一个临时磁盘文件。该文件应在环境变量DBTEMP指定的目录下 被创建。如果DBTEMP没有定义,在缺省情况下,数据库服务器在根目录下搜索名为tmp 的子目录,并在该目录下建立临时磁盘文件。检查伴随的ISAM错误代码,并查看操作 系统信息以获得更多的信息。可能是你的帐户没有在该目录下写的许可,也可能是磁 盘已满。从版本5.01开始,INFORMIX-SE数据库服务器就已使用环境变量DBTEMP,但 INFORMIX-Online动态服务器没有使用。
-222        不能写新表<表名>的临时文件。
数据库服务器建立了一个临时磁盘文件,但当试图写该文件时发生了一个错误。请检 查伴随的ISAM错误代码,并查看操作系统信息以获得更多的信息。在UNIX系统中, 该文件应在环境变量DBTEMP所指定的目录下被建立(缺省值为 /tmp);在DOS系统中, 该文件应位于当前目录下。可能是磁盘已满,或是发生了硬件错误。从版本5.01 开始,INFORMIX-SE数据库服务器就已使用环境变量DBTEMP,但INFORMIX-Online 动态服务器没有使用。
-223        在FROM子句中重复的表名<表名>。
表名在关键字FROM之后的列表中出现两次。检查语句看看你是否想第二次命名其它 一些表。如果你的意图是使表自连接,第二次和以后表的实例必须使用表的别名。 下例表明查找有相同名字的顾客的一种方法:
SELECT main.lname, main.customer_num, sub.customer_num FROM customer main, customer sub WHERE main.lname = sub.lname AND main.rowid != sub.rowid
在使用表的别名时(上例中的字main和sub),该表可以两次或多次选择。
-224        不能打开事务日志文件。
数据库服务器不能打开进行事务日志登录的文件。在这个文件修复之前,不能启动任 何事务处理。(在符合ANSI标准的数据库中,什么事情也不能做;在其它数据库中, 只能做查询。)对INFORMIX OnLine动态服务器,向OnLine管理员报告这种问题。对其 它数据库,检查伴随的ISAM错误代码,查看操作系统错误信息,它可能给出更多的信 息。START DATABASE语句指定了到日志文件的路径。如果文件已经删除,可以重新建 立它作为一个空文件。如果路径已经改变,可以发布新的START DATABASE语句来重新 定义它。
-225        不能为系统目录<表名>创建文件。
数据库服务器(不是OnLine)试图对系统目录创建表,可能作为CREATE  DATABASE语句的一部分。可能存在主机操作系统禁止的问题。更多的信息请检查伴随 的ISAM错误代码,查看操作系统错误信息。磁盘空间不足和操作系统文件访问权限的 问题可能产生这个问题。
-226        不能为系统目录<表名>创建索引。
数据库服务器(不是OnLine)试图对系统目录创建表,可能作为CREATE DATABASE语句 的一部分。它创建该表但存在主机操作系统禁止它建索引的问题。更多的信息请检查 伴随的ISAM错误代码,查看操作系统错误信息。磁盘空间不足可能产生这个问题。
-227        禁止对ROWID进行DDL操作。
这条语句试图改变名为ROWID的字段。该字段是每个表的一部分,除被分段存储的表 外。你可以用SELECT语句中选择它并在WHERE子句中比较,但不可以用DDL语句更改 它。
-228        禁止对ROWID进行UPDATE或INSERT。
这条语句命名字段列表中的字段ROWID用于插入或修改。rowid是不能修改的固有特 性。你可以在SELECT语句中选择它并在WHERE子句中比较,但不可以语句修改它的内 容。
-229        不能打开或创建临时文件。
数据库服务器不能创建一个临时磁盘文件。应该在由DBTEMP环境变量指定的目录(或 在UNIX系统上由缺省指定的/tmp)中创建临时文件。检查伴随的ISAM错误代码,查看 操作系统错误信息,它可能给出更多的信息。可能你的帐户已经没有在那个目录中写 的权限,可能磁盘已满。从版本5.01开始,INFORMIX-SE数据库服务器就已使用环境变 量DBTEMP,但INFORMIX-Online动态服务器没有使用。
-230        不能读取临时文件。
数据库服务器在由DBTEMP环境变量指定的目录(或在UNIX系统上由缺省指定的/tmp) 中创建临时文件,但是在试图把文件读回时发生错误。检查伴随的ISAM错误代码, 查看操作系统错误信息,它可能给出更多的信息。可能出现了硬件故障,可能另一个 用户意外地删去临时文件。从版本5.01开始,INFORMIX-SE数据库服务器就已使用 环境变量DBTEMP,但INFORMIX-Online动态服务器没有使用。
-231        不能用关于表达式的distinct执行聚集函数。
这条语句在聚集函数内选择DISTINCT (表达式)。这个动作是不支持的。选择 DISTINCT 值和其它字段进入一个临时表,然后从那个表选择ALL运用聚集函数。
-232        SERIAL字段<字段名>不能修改。
你不能用UPDATE语句中的数据类型SERIAL更改字段内容,即使修改的值是零。(在使 用INSERT语句时可以为序号字段指定零值;数据库服务器不理睬零而插入一个生成的 数。)修正语句以便只修改非序号字段。
-233        不能读取被其它用户锁定的记录。
其它用户已经锁定由这条语句选出的行。如果你交互地执行该语句,可以做两件事之 一。 可以等待一会儿再输入这条语句,或执行语句SET LOCK MODE TO WAIT, 之后你将很难再看见这条信息。
在一个程序中,你应该滚回当前事务处理,等待随机的间隔,再运行该事务。如果你 用WAIT的LOCK MODE运行事务,就能减少这种错误的频率,但它在某些情况下仍会出 现,例如当发现死锁时。该错误通常伴随一个ISAM错误代码,-107, -113, -134,  -143, -144或-154,程序可以对每种错误做出不同响应。
-234        不能插入虚拟字段<字段名>。
这条INSERT语句指向一个视图,而不是一个真正的表,在视图中定义的一个字段实际 上是一个表达式的值。不允许对有这种字段的视图进行插入和修改。对视图所依赖的 真正的表运用INSERT。
-235        字符字段的宽度太大。
这条语句对宽度大于32,767的字段或宽度超过255的VARCHAR字段指定了CHAR 数据类型。如果你需要这种大小的字段,就使用TEXT数据类型,它允许无限长。 否则,检查语句是否印刷错误。
-236        在INSERT中字段数与valueS的数目不匹配。
在INSERT语句中命名或采用的每个字段必须分别有值表达式。如果语句没有列出特定 的字段,检查表的定义,或字段的数量及其数据类型。也检查valueS子句中表达式的 列表是否没有多余的或遗漏的逗点,它们可能会导致错误的赋值数量。要特别小心长 字符串和带括号的表达式。
-237        不能进行开始工作。
数据库服务器不能执行BEGIN WORK语句。更多的信息请检查伴随的ISAM错误代码。 在访问事务日志时可能发生问题。
-238        不能进行提交工作。
数据库服务器不能执行COMMIT WORK语句。更多的信息请检查伴随的ISAM错误代码。 在访问事务日志时可能发生问题。
-239        不能插入新行 — 在UNIQUE INDEX字段中有重复值。
正在被插入(或修改具有新的主键)的行在限制必须有唯一值的字段中,包含已经存 在的某些行的重复值。该行不能被插入。滚回当前事务处理,没有任何重复行后再执 行它。
-240        不能删除行。
数据库服务器不能完成DELETE语句的执行。滚回当前的事务处理;然后,检查伴随的 ISAM错误代码,得到更多的信息。
(本文已被浏览 2893 次)
|
|