db2 导出换行_DB2存储过程中有回车换行符就报错?解决办法

DB2存储过程中有回车换行符就报错?create procedure b_test(out ret varchar(20)) language sql begin set ret = 'help'; end ;这种写法在图形界面和db2 -tvf D:liuguanjusp.sql都能成功创建。而create procedure b_test(out ret varchar(20))  language sql  begin  set ret = 'help';  end ;这种写法死活建不上去,报错如下:F:Program FilesIBMSQLLIBBIN>db2 -tvf D:liuguanjusp_test.sqlcreate procedure b_test(out ret varchar(20))language sqlbeginset ret = 'help'DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在SQL 处理期间,它返回:SQL0104N 在 "et ret = 'help'" 后面找到异常标记"END-OF-STATEMENT"。预期标记可能包括:""。 LINE NUMBER=4.SQLSTATE=42601endDB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在SQL 处理期间,它返回:SQL0104N 在 "end" 后面找到异常标记 "END-OF-STATEMENT"。预期标记可能包括:"JOIN"。 SQLSTATE=42601图形界面执行也是如此。本人初学DB2,多谢指点。------解决方案--------------------你用的什么工具写的存储过程 ,你看看是否是设置了行结束符。

------解决方案--------------------我是进来学习的。

------解决方案--------------------我是进来学习的。

------解决方案--------------------

那在最后一行的“;”要换成一个你自定义的结束符,如“@”。即:create procedure b_test(out ret varchar(20))  language sql  begin  set ret = 'help';  [email protected]则运行db2 [email protected] -vsf D:liuguanjusp.sql就OK了。因为db2 -tvf的默认结束符为“;”,即认为到“set ret = 'help'; ”代码就结束了,显然不是如此。所以要另弄个结束符以告诉命令行你代码的结束。

------解决方案--------------------我也碰到过这样的情况,但是我还是将这个“;”换行就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值