开发者社区> 问答> 正文

db2 存储过程 helloworld出错。怎么破啊?!? 400 报错

db2 存储过程 helloworld出错。怎么破啊?!? 400 报错

create procedure test()

LANGUAGE sql

BEGIN

END;

这样没有问题。可是:

create procedure test()

LANGUAGE sql

BEGIN

declare a varchar(1000);

END;



可是加上一个字符串变量的声明后就报42601的错误了。

怎么破啊啊啊?!

问题原因:

命令行的结束符似乎是@。而上边的存储过程使用;作为结束符。

在quest central for db2中执行正常,是因为其默认结束符就是;,所以才能正常执行。

解决办法:

要在命令行中执行的话,可以把结束符;都换成@

create procedure test()

LANGUAGE sql

BEGIN

declare a varchar(1000);

END@
调用时使用"db2 -td@ -vf c:/1.txt"就可以了。

展开
收起
爱吃鱼的程序员 2020-05-30 23:47:56 520 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    没错

    ######嗯,在db2cmd执行出问题。 放到quest center for db2就好使了。 谢谢。
    2020-05-30 23:47:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载