- 论坛徽章:
- 0
|
程序代码如下:
create procedure append(in source varchar(100),
in target varchar(100),
in timevar date,
out error_code integer,
out error_label varchar(255))
language sql
begin
declare SQLCODE integer default 0;
declare stmt varchar(1024);
declare at_end int default 0;
declare col_name varchar(100);
declare all_col varchar(1024);
declare EXIT HANDLER FOR SQLEXCEPTION
set error_code = SQLCODE;
declare CONTINUE HANDLER FOR NOT FOUND
set at_end = 1;
set error_code = 0;
set stmt = 'delete from '||
target||
' where timevar="'||
char(last_day(current date), iso)||
'"';
set error_label = 'The position of the error raised is 0001.';
prepare ps from stmt;
set error_label = 'The position of the error raised is 0002.';
execute ps;
declare c1 cursor for
select name
from sysibm.syscolumns
where tbname = ucase(source)
order by colno;
open c1;
fetch c1 into col_name;
while at_end = 0 do
set all_col = all_col||col_name;
fetch c1 into col_name;
end while;
close c1;
set stmt = 'insert into '||
target||
' values '||
'select '||
all_col||
', current date from '||
source;
set error_label = 'The position of the error raised is 0005.';
prepare ps from stmt;
set error_label = 'The position of the error raised is 0006.';
execute ps;
set error_label = '';
end
编译后产生的错误信息如下:
DB2ADMIN.APPEND - Create stored procedure returns -104.
DB2ADMIN.APPEND: 34: [IBM][CLI Driver][DB2/NT] SQL0104N An unexpected token "<cursor declaration>;" was found following "". Expected tokens may include: "<SQL statement>;". LINE NUMBER=34. SQLSTATE=42601
DB2ADMIN.APPEND - Build failed.
DB2ADMIN.APPEND - Changes rolled back.
请高手指点错在哪里,盼着您的回答! |
|