Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103639601
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-21 00:10:40

作者:oldbank  出处:
-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错误代码,得到更多的信息。
 
阅读(668) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~