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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-21 00:09:30

作者:oldbank  出处:
-261        无法建立表<表名>的文件。

通常,数据库服务器无法建立描述这个表的文件。检查附带的ISAM错误代码以获得更
多信息。此文件将用INFORMIX-SE建立在数据库dbs 目录下(除非你已提供了IN<路径
名>语句)。它的文件名将以<表名>的前几个字母开头,后面是三位数字和后缀.dat或
.idx。对于INFORMIX-SE,问题可能出在文件权限方面,或可能是磁盘满了。

INFORMIX-OnLine动态服务器允许分段存储,这会引起dbspaces的扩展使用。你需要检
查为该表指定的dbspace。如果没有指定的dbspace,那么建立数据库的dbspace将被使
用。为建立数据库,如果没有指定的dbspace,那么使用rootdbs。对于OnLine,指定
的dbspace可能不存在,或磁盘满了。

-262        没有当前游标。

这个内部错误不应该发生。记录使用中的网络软件的所有细节以及本台或其它主机系
统中的数据库服务器版本号。如果重复发生错误,请记录详细情况并与Informix技术
支持部联系。

-263        不能锁定行用于UPDATE。

这条语句失败,可能是命名游标的FETCH语句说明了FOR UPDATE,因为该语句取得的行
不能被锁定。请检查伴随的ISAM错误代码(通常是错误 -107, -113, -134, -143,
-144或-154)可获得更多的信息。有可能另一程序正在用该行(-107)或表(-113)。可
使用 SET LOCK MODE TO WAIT将消除这些错误,但检测死锁 (-143或-154)和锁定的表
满(-134) 仍会发生。

-264        不能写入临时文件。

数据库服务器在由DBTEMP环境变量指定的目录(或在UNIX系统上由缺省指定的/tmp)
中创建临时文件,但在试图向文件写入数据时会发生错误。检查伴随的ISAM错误代
码,查看操作系统错误信息,它可能给出更多的信息。可能已经有硬件故障,也可能
磁盘已满。从版本5.01开始,INFORMIX-SE数据库服务器使用DBTEMP环境变量,但
INFORMIX OnLine动态服务器不使用。

-265        装入或插入游标必须在一个事务内运行。

试图打开一个insert游标。这个数据库有一个事务日志。在这样的数据库中,在打开
用INSERT语句或用FOR UPDATE子句说明的游标之前,必须执行BEGIN WORK语句。
修正程序的逻辑,以便在打开游标之前程序开始一个事务。

在没有事务日志的数据库中也可确保程序工作,把程序按如下办法修改。紧接在执行
DATABASE语句之后,把SQLAWARN警告标志数组的第二单元的内容保存在SQL通信区中。

如果数据库没有使用事务,该单元将是空,而如使用事务,将包含字母W。在每一事务
逻辑上开始和结束点,测试保存的值。如果含有W,执行事务语句开始或结束一个事
务。

-266        UPDATE/DELETE游标没有当前行。

当前语句使用WHERE CURRENT OF <游标名>子句,但该游标还没有与当前行发生联系。
要么从它被打开开始还没有执行FETCH语句,要么是最近的fetch发生错误,这样就没
有行返回。修正程序的逻辑,以便在执行这条语句之前总能成功地取得数据行。

-267        游标已经先释放,不能用。

FREE语句已释放在这条语句中命名的游标所连接的资源。在能够使游标之前,必须再
次准备与它相关联的SQL语句。如果游标用FOR语句说明,它的DECLARE必须被重新
执行。如果它用FOR一个语句的id说明,必须重新执行PREPARE语句。

-268        唯一限制<限制名>违法。

在执行这条语句期间,重复的值引入受唯一性限制保护的字段。不允许有重复值的行
进入表中(不能插入或修改)。对于OnLine数据库服务器,在发现重复值之前由这条
语句做的任何改动已被滚回。(然而,在事务中先于语句的影响,如果有的话,仍然
起作用,必须明确地滚回或提交。)

-269        不能增加不接收null的字段<字段名>。

这条语句申请有NOT NULL限制的新字段,然而,当某字段加到已有的表中时,null 
值正好要被装入已存在的行中。必须定义包括这个字段的新表,然后从旧表把数据
INSERT这个表以便为这个字段提供合适的非null值。

-270        不能放在临时文件内。

数据库服务器在由DBTEMP环境变量指定的目录(或在UNIX系统上缺省指定的/tmp )
中创建文件,要在文件中定位(寻找)时碰到一个错误。检查伴随的ISAM错误代码,
查看操作系统错误信息以便获得更多的信息。可能是硬件故障,或另一个用户已经
截断文件。从版本5.01开始,INFORMIX-SE数据库服务器使用DBTEMP环境变量,
INFORMIX OnLine动态服务器不使用。

-271        不能把新行插入这个表。

这个问题可能有许多原因,包括锁定的表或满磁盘。更多的信息请查看伴随的ISAM
错误代码。

-272        没有SELECT权限。

创建这个表的人没有授予Select权限给你的帐户名或public。必须在表的所有者或DBA
授予这个权限后,你才能从该表选择数据。

-273        没有UPDATE权限。

创建这个表的人没有授予Update权限给你的帐户名或public。必须在表的所有者或DBA
授予这个权限后,你才能修改该表的数据行。

-274        没有 DELETE权限。

创建这个表的人没有授予Delete权限给你的帐户名或public。必须在表的所有者或DBA
授予这个权限后,你才能删除该表的数据行。

-275        没有INSERT权限。

创建这个表的人没有授予Insert权限给你的帐户名或public。必须在表的所有者或DBA
授予这个权限后,你才能向该表插入数据行。

-276        没有发现游标。

在这个语句中命名的游标没有在当前会话期中说明。当前会话期从一个DATABASE
语句到下一个DATABASE或CLOSE DATABASE语句之间运行。检查程序的逻辑保证它
在DATABASE语句之后执行这个游标的DECLARE语句。

版本5.01以后的数据库服务器不使用这条错误信息。

-277        UPDATE表<表名>和游标的表不相同。

UPDATE WHERE CURRENT OF<游标名>语句参考的表不同于用游标说明的SELECT语句
参考的表。请检查程序逻辑确保这一点:在通过游标进行修改时,它只修改游标正在
读的表。

-278        ORDER BY的字段太多。

此SELECT语句要求的字段超过数据库服务器所能支持的。这个限制视所用的数据库服
务器而定,但处理分类上都最多只到8个字段。更新这个语句以便要求较少的字段。

4.0及以後的版本对ORDER BY的字段数没有特别的限制。当执行排序操作时复杂的排
序工作会使数据库服务器用尽内存或磁盘空间。

-278        不能滚回保存点。

4.1及以后版本的产品能检测这一内部错误。如果反复发生错误,请记录详细情况并与
Informix技术支持部联系。

-279        不能授予或取消表或视图的数据库权限。

这条语句命名一个或多个数据库级权限 (CONNECT, RESOURCE和 DBA),但是它也使用
ON <表名>子句。没有描述具体表的语句(不包含ON子句)必须授予或取消数据库级的
权限。表级权限如INSERT需要ON子句。这两种不能混合在同一语句中。

-280        带引号的字符串超过256个字节。

这个语句中有字符文字超过允许的最大值。审查该语句,检查其中所有带引号字符串
的长度和标点。可能遗漏两个引号,使两个短字符串成为一个长串。必须修改语句使
用更短一些的字符串。

-281        不能把索引加到临时表中。

检查伴随的ISAM错误代码,找出具体问题,然后查看操作系统错误信息以求得到更多
信息。可能是磁盘满了。

-282        发现一个引号没有相匹配的引号。

审查当前语句,检查带引号的所有字符串的标点。为了将引号放在文字字符串中,用
一些单撇号作为字符串的分隔符。如下例所示:

SELECT ' " ', fname, ' " '," ' ' ", lname, " ' ' " FROM customer

-283        发现没有终结的注释("{""}"不匹配)。

审查当前语句并查注释及带引号字符串的标点。可以使用大括号将注释插入SQL语句,
但大括号必须成对出现。或者,可以用双连字符附注释于行后。

-284        子查询实际不是返回一行。

用于表达式的子查询在文字值的位置上必须只返回单行和单个字段。在这条语句中,
一条子查询的返回超过一行,数据库服务器不能选择哪个返回值用于表达式。可使子
查询总是只返回一行。使用WHERE子句,对有唯一索引的字段测试相等性。或是只选择
统计函数。检查子查询并检查它们只返回一行。

这个错误在使用单一SELECT语句来检索多行时也可能发生。必须使用
ECLARE/OPEN/FETCH语句系列,或EXECUTE INTO语句来检索多行。

-285        无效的游标被sqlexec接收。

在这条语句中使用的游标没有适当地说明或准备,否则就是FREE语句已经释放它。
检查程序逻辑,保证游标已经说明。如果是,并且该DECLARE语句参考一个语句id,
检查被参考的语句已经准备。
 
阅读(661) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~