如何在Oracle的其他程序中调用程序,Sql Developer?

问题描述:

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; 

如何执行一个程序在同一时间内的另一个程序?如何在Oracle的其他程序中调用程序,Sql Developer?

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

+0

就像任何其他PL/SQL程序一样。您可以使用'o_name'和'o_capitan'作为过程'showhipsDisp'的输入参数。 – kpater87

+0

试试吧,但它只是打电话首先不是在里面 –

+0

你能告诉我们你试过了什么?示例不显示您要在哪里调用嵌套过程。 – kpater87

在问题嵌套过程的例子中,只声明但从未调用。要运行嵌套过程的调用必须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; 

问号应该通过适当的变量来代替。

+0

对于愚蠢的问题感到抱歉。 –

+0

它是如何执行的?我在SQL Developer的程序设置中尝试它,但是一样。 –

+0

http://www.oracle.com/technetwork/topics/o67sql-101793.html – kpater87