求教~存储过程脚本执行不了

BlueSuperMan 2012-09-06 05:20:46
下面存储过程编译都过不去,很奇怪 ~~~,本存储过程是用datastudio工具建的,建好了也能运行,不过脚本导出后在执行就老是报错......


CREATE PROCEDURE "DB2ADMIN"."PROC_INITELGUSER" ()
LANGUAGE SQL
BEGIN
--拿出来是可以执行的
UPDATE ELGUSER A SET CURRENTSTAT = 0 WHERE NOT EXISTS (SELECT 1 FROM BASE_USER_INFO B WHERE A.ID = B.USER_ID);
--拿出来是可以执行的
MERGE INTO ELGUSER AS EU
USING BASE_USER_INFO AS BUI
ON EU.ID=BUI.USER_ID
WHEN MATCHED THEN UPDATE SET EU.FULLNAME=BUI.NAME,EU.DEPTID=BUI.DEPT1_NO,EU.GOVID=BUI.DEPT2_NO,EU.CURRENTSTAT='1',EU.EMAIL=EU.ID||'1'
WHEN NOT MATCHED THEN INSERT VALUES (BUI.USER_ID,BUI.USER_ID,'96e79218965eb72c92a549dd5a330112',BUI.NAME,BUI.DEPT1_NO,BUI.DEPT2_NO,'N','1',BUI.USER_ID||'1','');
END;


错误如下:
---------------------------------------------------------------------------------------
CREATE PROCEDURE "DB2ADMIN"."PROC_INITELGUSER" ()
LANGUAGE SQL
BEGIN
UPDATE ELGUSER A SET CURRENTSTAT = 0 WHERE NOT EXISTS (SELECT 1 FROM BASE_USER_INFO B WHERE A.ID = B.USER_ID)
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "E A.ID = B.USER_ID)" 后面找到异常标记
"END-OF-STATEMENT"。预期标记可能包括:"<psm_semicolon>"。 LINE NUMBER=4.
SQLSTATE=42601

MERGE INTO ELGUSER AS EU USING BASE_USER_INFO AS BUI ON EU.ID=BUI.USER_ID WHEN MATCHED THEN UPDATE SET EU.FULLNAME=BUI.NAME,EU.DEPTID=BUI.DEPT1_NO,EU.GOVID=BUI.DEPT2_NO,EU.CURRENTSTAT='1',EU.EMAIL=EU.ID||'1' WHEN NOT MATCHED THEN INSERT VALUES (BUI.USER_ID,BUI.USER_ID,'96e79218965eb72c92a549dd5a330112',BUI.NAME,BUI.DEPT1_NO,BUI.DEPT2_NO,'N','1',BUI.USER_ID||'1','')
DB20000I SQL 命令成功完成。

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

SQL0104N 在 "END" 后面找到异常标记 "END-OF-STATEMENT"。预期标记可能包括:"JOIN <joined_table> "。

说明:

在文本 "<文本>" 后面的指定标记处检测到 SQL 语句中或 SYSPROC.ADMIN_CMD
过程的输入命令字符串中的语法错误。"<文本>" 字段指示无效标记前面的 SQL
语句中或 SYSPROC.ADMIN_CMD 过程的输入命令字符串的 20 个字符。

作为帮助,在 SQLCA 的 SQLERRM 字段中,提供了有效标记的部分列表作为 "<标
记列表>"。此列表假定语句直到该位置为止均正确。

无法处理该语句。

用户响应:

在指定的标记区域内检查并更正语句。

sqlcode:-104

sqlstate:42601
...全文
277 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaojianmi1 2012-09-08
  • 打赏
  • 举报
回复
你的脚本在哪里执行的
yangxiao_jiang 2012-09-07
  • 打赏
  • 举报
回复
你执行的方式有错误,需要保存成一个文件,用db2 -cvf xxx来运行,

你是直接拷贝到cmd里运行的吧?
BlueSuperMan 2012-09-07
  • 打赏
  • 举报
回复
怎么没有人回答啊

5,889

社区成员

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

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