DB2存储过程中有回车换行符就报错?

中泽三郎 2010-01-30 04:32:09
create procedure b_test(out ret varchar(20)) language sql begin set ret = 'help'; end ;

这种写法在图形界面和db2 -tvf D:\liuguanju\sp.sql都能成功创建。




create procedure b_test(out ret varchar(20))
language sql
begin
set ret = 'help';
end ;

这种写法死活建不上去,报错如下:
F:\Program Files\IBM\SQLLIB\BIN>db2 -tvf D:\liuguanju\sp_test.sql
create procedure b_test(out ret varchar(20))
language sql
begin
set ret = 'help'
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "et ret = 'help'" 后面找到异常标记
"END-OF-STATEMENT"。预期标记可能包括:"<psm_semicolon>"。 LINE NUMBER=4.
SQLSTATE=42601

end
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "end" 后面找到异常标记 "END-OF-STATEMENT"。预期标记可能包括:"JOIN
<joined_table>"。 SQLSTATE=42601

图形界面执行也是如此。

本人初学DB2,多谢指点。
...全文
625 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckn126 2010-02-01
  • 打赏
  • 举报
回复
我也碰到过这样的情况,但是我还是将这个“;”换行就可以了
plikefly 2010-01-31
  • 打赏
  • 举报
回复
那在最后一行的“;”要换成一个你自定义的结束符,如“@”。即:
create procedure b_test(out ret varchar(20))
language sql
begin
set ret = 'help';
end@

则运行db2 -td@ -vsf D:\liuguanju\sp.sql就OK了。
因为db2 -tvf的默认结束符为“;”,即认为到“set ret = 'help'; ”代码就结束了,显然不是如此。所以要另弄个结束符以告诉命令行你代码的结束。
中泽三郎 2010-01-31
  • 打赏
  • 举报
回复
图形界面那设置好结束符后过程可以建上了,但DB2如何在命令行中设置结束标识符?就是设置这个结束符的语句是什么?
中泽三郎 2010-01-31
  • 打赏
  • 举报
回复
控制中心的命令编辑器中的结束符设置的是“;”,存储过程是在UE里面写的,这个也要设置结束符?
sixsat 2010-01-31
  • 打赏
  • 举报
回复
我是进来学习的。
fiffri 2010-01-31
  • 打赏
  • 举报
回复
我是进来学习的。
yangxiao_jiang 2010-01-30
  • 打赏
  • 举报
回复
你用的什么工具写的存储过程 ,你看看是否是设置了行结束符。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 【运算单元构造实验报告】运算单元是计算机硬件系统中的关键构成部分,主要承担执行算术运算和逻辑运算的任务。在本次实验中,我们着重探讨了带有累加器的运算单元的设计,涵盖了溢出识别、有符号数值与无符号数值运算的差异性,以及采用补码方式进行的加法与减法运算的实现机制。 一、实验目标 1. 掌握运算单元的基本构造,理解带有累加器的运算单元的具体实现途径。 2. 学习并领会溢出检测的机制,能够设计并构建溢出检测电路,用以判定运算结果是否超出了数据类型的表示范畴。 3. 明辨有符号数值和无符号数值运算的不同特性,把握它们在运算过程中各自的处理方法。 4. 熟练掌握基于补码方式的加法与减法运算的执行,理解补码形式下的溢出判定准则。 5. 熟悉运算单元内部的数据传输路线,明晰数据在运算过程中的流转路径。 6. 设计一个能够支持有符号数值与无符号数值运算、补码加法/减法运算以及有符号数值溢出检测的运算单元电路。 二、实验仪器 采用JZYL—Ⅱ型计算机组成原理实验装置,配备2片74181运算单元芯片作为算术逻辑单元(ALU),2片74LS373用作八位D型锁存器,并辅以一些基础门电路和多路选择器来完成电路设计。 三、实验内容 1. 运用片74181构建一个8位运算单元,负责处理数据的高4位与低4位。 2. 设计并实现溢出检测电路,确保在有符号数值与无符号数值的加法运算中均能准确识别溢出状况。 3. 通过74LS373增加累加器功能,使运算结果得以保存。 4. 将所有设计整合,利用多路选择器来支持有符号数值与无符号数值的加法/减法运算。 四、实验电路 1. 8位运算单元由2片74181构成,通过控制...

5,888

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧