如何在一个程序中执行许多程序?

时间:2018-07-27 07:41:10

标签: oracle plsql exec procedures

我已经查过,但是找不到适合我问题的正确解决方案。我有很多过程,它们将表从一个数据库模式(称为“源”)复制到同一数据库中的另一模式(称为“目标”)中。如果我单独执行这些程序,它们将自行工作。现在,我只想用一个命令执行它们。问题是我不知道怎么做。我想这样做是因为有很多过程,而且单独执行它们很烦人。如果有人可以帮助我,那就太好了。在此先感谢:)

我的方法(显然是错误的)是:

CREATE OR REPLACE PROCEDURE COPY_TABLES
IS
BEGIN
EXEC COPY_EAKTEPERSON;
EXEC COPY_EANDEREANSRPUECHE;
EXEC COPY_EANDEREBHBERECHT;
EXEC COPY_EBEIHILFEBEMSATZ;
EXEC COPY_EBESCHAEFTIGUNG;
EXEC COPY_EDIENSTSTELLE;
EXEC COPY_EEIGENBEHALT;
EXEC COPY_EPFLEGEVERS;
EXEC COPY_ESEHSCHAERFE;
EXEC COPY_EVERSLEISTUNG;
EXEC COPY_EWOHNISITZ;
EXEC COPY_EPERSON;
END;

1 个答案:

答案 0 :(得分:3)

一个过程调用另一个过程。

create or replace procedure COPY_TABLES(                                         
ret out varchar2) as
   error      varchar2(1000);
begin
   COPY_EAKTEPERSON();
   COPY_EANDEREANSRPUECHE();
   COPY_EANDEREBHBERECHT();
   COPY_EBEIHILFEBEMSATZ();
   COPY_EBESCHAEFTIGUNG();
   COPY_EDIENSTSTELLE();
   COPY_EEIGENBEHALT();
   COPY_EPFLEGEVERS();
   COPY_ESEHSCHAERFE();
   COPY_EVERSLEISTUNG();
   COPY_EWOHNISITZ();
   COPY_EPERSON();
   ret := ''
   return;
exception
   when others then
   error_info := sqlerrm;
   ret := error_info;
end COPY_TABLES;