Oracle 如何在一个过程中执行多个过程?

Oracle 如何在一个过程中执行多个过程?,oracle,plsql,exec,procedures,Oracle,Plsql,Exec,Procedures,我已经查过了,但是找不到我问题的正确答案。我有许多过程可以将表从一个名为“source”的数据库模式复制到同一个名为“target”的数据库上的另一个模式。如果我单独执行这些程序,它们将自行工作。现在我只想用一个命令来执行它们。问题是我不知道怎么做。我想这样做是因为有很多过程,单独执行它们是很烦人的。如果有人能帮我,那就太好了。提前感谢:) 我的方法(显然是错误的)是: 调用另一个过程的过程 create or replace procedure COPY_TABLES(

我已经查过了,但是找不到我问题的正确答案。我有许多过程可以将表从一个名为“source”的数据库模式复制到同一个名为“target”的数据库上的另一个模式。如果我单独执行这些程序,它们将自行工作。现在我只想用一个命令来执行它们。问题是我不知道怎么做。我想这样做是因为有很多过程,单独执行它们是很烦人的。如果有人能帮我,那就太好了。提前感谢:)

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


调用另一个过程的过程

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;

删除EXEC命令。EXEC是一个SQL*PLUS命令,它基本上将您试图执行的语句放入BEGIN。。。结束blockomg它起作用了。。。哈哈,我刚开始学习pl sql。谢谢你的回答。你可以用一个过程的方式来计算很多过程。我已经让它工作了,因为@Nick Krasnov在我的帖子下面的评论中回答了这个问题。谢谢你的贡献。@AnSus哇,干得好!为什么返回?另外,ret:=sqlErrM会更容易。问题是关于如何调用过程,因此我认为
返回
逻辑和异常隐藏会分散答案的注意力。
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;