【问题标题】:How call procedure inside in another procedure in Oracle, Sql Developer?如何在Oracle,Sql Developer的另一个程序中调用程序?
【发布时间】:2016-09-27 04:24:22
【问题描述】:
CREATE OR REPLACE PROCEDURE ShowShips3Task(
       p_Register IN ship.registry_country%TYPE,
       o_name OUT ship.ship_name%TYPE,
       o_capitan OUT  ship.captain_name%TYPE)
IS
   procedure showshipsDisp(
    o_cap out Ship.captain_name%type,
    o_dis out Ship.displacement%type)
    is
    begin
    Select Captain_name, Displacement
    into o_cap, o_dis
    from Ship Where Ship_name = 'Avrora';
    end;

BEGIN

  SELECT Ship_name , Captain_Name
  INTO o_name, o_capitan
  from  Ship WHERE registry_country LIKE p_register || '%';

END;

如何在一个Procedure中同时执行另一个Procedure?

我如何创建多值参数,意味着里面的第二个过程依赖于第一个过程的参数?

【问题讨论】:

  • 就像任何其他 PL/SQL 过程一样调用它。您可以使用o_nameo_capitan 作为过程showshipsDisp 的输入参数。
  • 试一试,但它只是调用 First not that inside
  • 你能告诉我们你尝试了什么吗?示例未显示您要在哪里调用嵌套过程。
  • 我尝试在另一个过程中调用一个过程。过程已创建,但当我调用它时,它只调用第一个,第二个被忽略。
  • 在提出的问题中,您没有调用嵌套过程,您只是在声明它。调用必须在 BEGINEND 语句之间。

标签: sql oracle stored-procedures plsql


【解决方案1】:

在来自问题的示例中,嵌套过程仅被声明但从未被调用。要运行嵌套过程,调用必须存在于 BEGINEND 语句之间:

BEGIN

  SELECT Ship_name , Captain_Name
  INTO o_name, o_capitan
  from  Ship WHERE registry_country LIKE p_register || '%';

  showshipsDisp(o_cap => ?
               ,o_dis => ?);

END;

问号应替换为适当的变量。

【讨论】:

  • 它是如何执行的?我在 sql Developer 的程序设置中尝试过,但是一样。
猜你喜欢
  • 2016-02-28
  • 2019-12-27
  • 2013-08-30
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
相关资源
最近更新 更多