2016-09-27 10 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の別のプロシージャ内の呼び出しプロシージャはどのように呼び出されますか?

どのようにして複数値のパラメータを作成できますか?第2の手順は、最初の手順のパラメータに依存しますか?

+0

他のPL/SQLプロシージャと同様にコールします。プロシージャ 'showshipsDisp'の入力パラメータとして' o_name'と 'o_capitan'を使うことができます。 – 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

関連する問題