如何解决尝试创建存储过程db2时出错
这是我用来创建存储过程的内容,该存储过程显示了来自客户的详细信息,其中cus_ID = CustomerID参数。
p <- structure(list(study = structure(c(12L,2L,12L,9L,8L,13L,15L,1L,16L,3L,5L,11L,4L,6L,10L,12L),.Label = c("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","22"),class = "factor"),response = c("3","1","3"),treatment = structure(c(2L,2L),.Label = c("SSTR","SSA"),class = "factor")),row.names = c(NA,-50L),class = "data.frame")
我一直遇到的错误是
Create procedure getCusDetails (IN CustomerID int) \
BEGIN \
DECLARE c cursor with return for \
SELECT *from customer \
where cus_ID = CustomerID \
OPEN C \
END
我该如何解决?
解决方法
您需要正确的定界符,既要在过程内部定界每个语句,又要使用不同的终止符来结束程序段。
您似乎正在使用命令行外壳程序,这使其变得更加困难。如果将语句放入文件(或shell脚本中的here文档),然后要求Db2 clp执行文件{here}或db2 -tvf yourfile.sql
,则更容易编译存储过程。
db2 -tvf << EndHereDocument .... EndHereDocument
以下示例显示了文件内容,该文件内容使用了块内的默认定界符(半冒号;),以及使用不同的定界符@结束了块。
--#SET TERMINATOR @
Create procedure getCusDetails (IN CustomerID int)
BEGIN
DECLARE c cursor with return for SELECT *from customer where cus_ID = CustomerID ;
OPEN C ;
END@
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。