欢迎 seiya700 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心

加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 网站留言 论坛 站内搜索 卓越资源 源代码

域名查询 网站空间 域名主机 数据库空间

 
今天是:2012年02月05日 星期日  您现在位于: 首页 → 技术文章 → Informix出错信...
   Informix出错信息中文版(26)
作者:oldbank  出处:www.hhnxs.com  更新时间: 2007年03月20日 
-651        保留的字段大小>最大字段大小(varchar)。

这个语句指定了一个VARCHAR(m, r)带有一个大于最大宽度m的保留宽度r。检查字段定
义的标点。如果它是所要的,修改那个语句使得m >= r。

-652        局部变量不允许缺省值。

试图用一个缺省值定义一个局部变量。只有全局变量和参数能有缺省值。

下面是一个错误的例子:

DEFINE var INT DEFAULT 10; -- 错误

更正如下:

DEFINE var INT; LET var = 10;

-653        声明为LIKE的变量不能是全局的。

一个全局变量定义为LIKE。LIKE变量必须是局部变量。

下面是一个错误的例子:

DEFINE GLOBAL var LIKE tab.col; -- 错误

更正:不要对全局变量使用LIKE关键字。换句话说,显式地指定数据类型。

-654        错误使用PROCEDURE声明类型。

过程声明用在参数或RETURNING子句中。存储过程不能接受或返回过程。

下面是一个错误的例子:

CREATE PROCEDURE testproc (proc1 procedure) -- 错误 RETURNING 
        procedure; -- 错误
        ...
        END PROCEDURE

更正:不要试图在一个参数或RETURNING子句中使用过程说明。

-655        RETURN值计数与过程说明不匹配。

一个过程在RETURNING子句中声明的返回值的个数与在一个RETURN子句中的值的个数
不匹配。

下面是一个错误的例子:

CREATE PROCEDURE testproc () RETURNING INT, INT;
        ...
        RETURN 1,2,3; -- 错误
        ...
        RETURN 1; -- error END PROCEDURE

更正:在这个实例中,严格地返回两个参数。

-656        过程没有说明为有返回值。

当过程说明时,它没有包含一个RETURNING子句指定这个过程将有任何返回值,但随后
一个RETURN语句在过程体中被发现。

下面是一个错误的例子:

CREATE PROCEDURE testproc() DEFINE a INT; LET a = 10; RETURN a + 1; --
        错误 END PROCEDURE

更正:在DEFINE前增加一个RETURNING子句或移去RETURN语句。

-657        不能在过程内建立过程。

不能在一个CREATE PROCEDURE语句中有CREATE PROCEDURE语句。

-658        说明成GLOBAL的变量要求一个缺省值。

一个全局变量没有给缺省值。全局变量要求一个缺省值。

错误的例子:

DEFINE GLOBAL glob INT; -- 错误。

更正:

DEFINE GLOBAL glob INT DEFAULT 10;

-659        SELECT语句要求INTO TEMP表。

一个SELECT语句没有指定在哪里放返回值。一个过程中的SELECT语句要求一个INTO
TEMP子句或一个引用适当过程变量的INTO子句。

错误的例子:

CREATE PROCEDURE testproc()
        ...
        SELECT col1, col2 FROM tab; -- 错误END PROCEDURE

更正:

CREATE PROCEDURE testproc()
        ...
        SELECT col1, col2 INTO var1, var2 FROM tab; SELECT col1, col2
        FROM tab INTO TEMP another_table; END PROCEDURE

-660        循环变量<变量名>不能被修改。

试图修改一个FOR 语句中的循环变量。循环变量不能在循环内部被修改。

错误的例子:

FOR i IN (1,2,3,4) LET i = i + 1; -- 错误END FOR

更正:在LET语句中使用另一个变量。

-661        变量数和返回值数不匹配。

一个LET语句左边的变量的个数和右边的值数不匹配。

错误的例子:

LET a,b = 10,20,39; LET i,j = proc1()+proc2(); LET a,b = (SELECT c1
FROM tab)

更正:匹配LET语句两边表达式的个数。

-662        指定的循环变量<变量名>超过一个。

在一个FOREACH语句中使用一个循环变量超过一次。

错误的例子:

FOREACH SELECT col1, col2 INTO var, var FROM tab -- 错误
        ...
        END FOREACH

更正:

FOREACH SELECT col1, col2 INTO var1, var2 FROM tab
        ...
        END FOREACH

-663        对过程<过程名>使用了多于一次的过程调用句法。

调用一个过程时,一些参数命名了而其它的没命名。

错误的例子:

LET var = proc (arg1 = 10, 20, arg3 = 30); -- 错误

更正:

LET var = proc (arg1 = 10, arg2 = 20, arg3 = 30); --正确LET var =
proc (10,20,30);--正确

-664        系统函数<函数名>的参数个数错误。

对一个函数指定了一个非法的参数个数。检查对函数传递了正确的参数个数。

-665        语意上的内部错误-<代码号>。

如果这个内部错误再次发生,请记录全部的环境并和Informix 技术支持部联系。

-666        变量<变量名>必须被说明为INTEGER或SMALLINT。

在一个FOR语句中,包含范围的循环变量必须被说明为INT或SMALLINT。

错误的例子:

DEFINE var CHAR(10);         FOR var IN (e1, e2 TO e3, e4) -- 错误
        ...
        END FOR;

更正:因为FOR语句包含一个范围操作符(TO子句),"var"必须被说明为INT或
SMALLINT。

-667        变量<变量名>没有被说明。

指定的变量没有说明。检查未定义变量的拼写以确定其不导致错误。

-668        系统命令不能被执行。

一个系统调用在操作系统中失败。下面的语句显示一个可能导致一个错误的例子。
SYSTEM `hello';

-669        变量<变量名>重复说明。

一个变量在同一个作用域中被说明两次。参照Informix Guide to SQL: -Tutorial,
第12章,过程变量的作用域的一个解释。

-670        变量<变量名>说明为SERIAL类型。

SERIAL类型不是一个合法的过程类型。使用整数类型去匹配SQL SERIAL类型。
 (本文已被浏览 2548 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:Informix出错信息中文版(25)
下篇文章:Informix出错信息中文版(27)
 相关文章:
Informix的历史沿革 Informix case语句的妙用
Informix在一台机器上起两个实例的思路 informix 锁表处理步骤
informix审计功能的配置 informix临时表的存放位置
Informix数据库一致性检查 Informix中求时间间隔的函数
Informix表空间计算 Informix如何更加有效的创建主键和外键
SCO UnixWare 7.1.4下安装Informix 基于Informix的ESQL/C(2)
基于Informix的ESQL/C(1) 在 IDS 9.x 中使用 GUID
如何综合掌握 DB2 和 Informix 使用Informix系统目录
Informix数据库优化 Windows XP下也玩Informix
Informix-4GL/FORM的使用(3) Informix-4GL/FORM的使用(2)

相关搜索
查看百度中关于Informix出错信息中文版(26)的更多内容
查看google中关于Informix出错信息中文版(26)的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    Copyright (c) 2001-2011 Unix-cd.com. All Rights Reserved.