读书人

关于容易的DB2的存储过程报错

发布时间: 2012-09-11 10:49:03 作者: rapoo

关于简单的DB2的存储过程报错
现在有个简单的存储过程,大家帮忙下
CREATE PROCEDURE getUserList()
begin
select * from tbl_user;
end;

但是在DB2报错---------------------------------------------------
CREATE PROCEDURE getUserList()
begin
select * from tbl_user
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "() begin select" 后面找到异常标记
"*"。预期标记可能包括:"END"。 LINE NUMBER=3. SQLSTATE=42601

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

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

[解决办法]
CREATE PROCEDURE getUserList ( )
DYNAMIC RESULT SETS 1

P1: BEGIN
DECLARE cursor1 CURSOR WITH RETURN FOR
select * from tbl_user;
OPEN cursor1;
END P1
[解决办法]

SQL code
create procedure getuserlist()language sqlbegin   declare cursor1 cursor with hold with return for    select * from tbl_user;end; 

读书人网 >IBM DB2

热点推荐