db2一个存储过程的问题

zmj122112 2009-06-25 10:05:52

为什么创建以下的存储过程老是报错?请假下哪里写的有问题?如果把分割线上线任一一部分的游标去掉是正确的,放在一起就报错

CREATE PROCEDURE db2admin.proc_PointInfoForGIS (IN proleid DECIMAL,IN pbuildingid DECIMAL)
RESULT SETS 2
LANGUAGE SQL
BEGIN
DECLARE v_mid INTEGER DEFAULT 0;
DECLARE EContent VARCHAR(800);
DECLARE c1 CURSOR FOR
select M_ID from PlaceInfo
where BuildingID=pbuildingid;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET EContent = '';
FETCH c1 INTO v_mid;
SET EContent = EContent ;
CLOSE c1;
--------------------------------------------------------------------
DECLARE Cr CURSOR WITH RETURN FOR
select * from Table;
OPEN Cr ;
END@
...全文
75 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mysap-gwg 2009-07-27
  • 打赏
  • 举报
回复
好像是没有close c1
zmj122112 2009-06-26
  • 打赏
  • 举报
回复
感觉不是open的问题,因为如果把分割线下面那个游标cr去掉,是可以的,加上了就报错
但是单独用下面那个游标cr也是可以执行的
zmj122112 2009-06-26
  • 打赏
  • 举报
回复
加了open c1 ,还是报同样的错。。
liyan93834183 2009-06-26
  • 打赏
  • 举报
回复
没有open c1
zmj122112 2009-06-26
  • 打赏
  • 举报
回复
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "" 后面找到异常标记 "<cursor
declaration>"。预期标记可能包括:"<SQL statement>"。 LINE NUMBER=16.
SQLSTATE=42601
liyan93834183 2009-06-26
  • 打赏
  • 举报
回复
错误提示是什么啊

5,889

社区成员

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

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