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

全部博文(19285)

文章存档

2012年(1)

2011年(1)

2009年(125)

2008年(19095)

2007年(63)

分类: DB2/Informix

2008-03-21 00:05:32

作者:oldbank  出处:www.hhnxs.com   
-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 语句给出一个字段名的列表,并且其中至少有一个字段在列表中出
现两次。重新审查字段名列表并确认每个字段只出现一次。
阅读(684) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~