在 oracle 中编译的过程不起作用

procedure compiling in oracle is not working

我已经在 oracle 中编写了以下过程,但它在编译时出错。

CREATE OR REPLACE PROCEDURE PROC_MIGRATE_ONEIBER 

AS 

BEGIN

-- EXECUTE PROCEDURE ONEFIBER_LNK_MIGRATE;

  execute ONEFIBER_LNK_MIGRATE;

  execute ONEFIBER_LNK_MIGRATE_CITY;
  
  execute ONEFIBER_LNK_MIGRATE_NLDC;
  
  END;
  


--  NULL;
END PROC_MIGRATE_ONEIBER;

我必须在没有任何 IN 或 OUT 参数的情况下在一个主程序中执行 3 个程序。但它不起作用

只需删除 execute 关键字。每当您想在过程中调用另一个过程时,您可以直接使用过程名称和参数,如果有的话。

CREATE OR REPLACE PROCEDURE PROC_MIGRATE_ONEIBER AS
BEGIN

-- EXECUTE PROCEDURE ONEFIBER_LNK_MIGRATE;
    ONEFIBER_LNK_MIGRATE;
    ONEFIBER_LNK_MIGRATE_CITY;
    ONEFIBER_LNK_MIGRATE_NLDC;
    --END;

--  NULL;
END PROC_MIGRATE_ONEIBER;
/

更新:检查这个小代码应该如何。此答案中创建的所有过程仅用于演示。 (确保您调用的过程不是 INVALID

SQL>
SQL> CREATE OR REPLACE PROCEDURE ONEFIBER_LNK_MIGRATE AS
  2  BEGIN
  3  NULL;
  4  END;
  5  /

Procedure created.

SQL>
SQL> CREATE OR REPLACE PROCEDURE ONEFIBER_LNK_MIGRATE_CITY AS
  2  BEGIN
  3  NULL;
  4  END;
  5  /

Procedure created.

SQL>
SQL> CREATE OR REPLACE PROCEDURE ONEFIBER_LNK_MIGRATE_NLDC AS
  2  BEGIN
  3  NULL;
  4  END;
  5  /

Procedure created.

SQL>
SQL> CREATE OR REPLACE PROCEDURE PROC_MIGRATE_ONEIBER AS
  2  BEGIN
  3  ONEFIBER_LNK_MIGRATE;
  4  ONEFIBER_LNK_MIGRATE_CITY;
  5  ONEFIBER_LNK_MIGRATE_NLDC;
  6  END PROC_MIGRATE_ONEIBER;
  7  /

Procedure created.

SQL>