整了个存储过程,想一次性跑2段SQL;结果只跑了前一句,后一句不执行了。
2段SQL单独跑是没问题的,是不是结束符搞得鬼,请大家帮我看看。
贴上代码:
set v_sql_str = '
export to "f:\\data\' || v_table || '_' || v_partition || '.ixf" of ixf select * from ' || v_schema || '.p' || v_table;
call sysproc.admin_cmd(v_sql_str);
set v_sql_str = '
drop table ' || v_schema || '.p' || v_table;
execute immediate v_sql_str;
示例:
创建用的脚本testTRI.sql:
create trigger testTRIGGER after update on test
referencing old as OR new as NR
for each row
mode DB2SQL
when (OR.id<>NR.id)
BEGIN ATOMIC
update test set CODE = '3' WHERE ID = NR.ID;
END@
创建用的命令:db2 -td@ -f /workspace/test/testTRI.sql
问题更新下
过程体中放2句drop语句,这2句语句都被执行。这个应该可以排除结束符的问题
set v_sql_str = '
drop table a1';
execute immediate v_sql_str;
set v_sql_str = '
drop table a2';
execute immediate v_sql_str;
当放2句export时,只能执行第一句。不执行第二句,也不报错。
set v_sql_str = '
export to f:\a1.ixf of ixf select * from a1';
call sysproc.admin_cmd(v_sql_str);
set v_sql_str = '
export to f:\a2.ixf of ixf select * from a2';
call sysproc.admin_cmd(v_sql_str);