执行其他脚本的脚本

时间:2016-10-10 14:42:20

标签: plsql

我想在PL / SQL中执行此脚本,但它不断收到错误

set serveroutput on;
set echo on;
declare 
  v_code varchar2(250);
  v_errm varchar2(250);
begin
  @@"1.sql";
  @@"2.sql";
  @@"II_load_438865311678_Reg.sql"; 
exception
when others then
  v_code := sqlcode;
  v_errm := substr(sqlerrm, 1, 64);
  DBMS_OUTPUT.PUT_LINE('ERROR! - '||DBMS_UTILITY.FORMAT_ERROR_STACK|| DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
  rollback;
end;
/

这有什么问题。

  

错误:ORA-06550:第5行,第3行:(...)ORA-06550:第6行,第3行:   (...)ORA-06550:第7行,第3行:PLS-00103:遇到符号   " @"期待以下之一时:(开始案例声明结束   goto的异常退出if loop mod null pragma raise return select   用......和更新   06550. 00000 - "行%s,列%s:\ n%s"   *原因:通常是PL / SQL编译错误。   *操作:

1 个答案:

答案 0 :(得分:0)

您只使用PL / SQL代码来显示错误。这不是必要的; SQL * Plus已经向您显示任何SQL错误。使用whenever sqlerror来触发回滚。

whenever sqlerror continue rollback
@@"1.sql"
@@"2.sql"
@@"II_load_438865311678_Reg.sql"