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