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