2016-09-27 44 views
0
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

回答

0

在問題嵌套過程的例子中,只聲明但從未調用。要運行嵌套過程的調用必須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

相關問題