2014-11-03 84 views
-1

我完全不熟悉PL/SQL。pl/sql執行程序

create or replace procedure p1(a in customer.id%type, 
b out customer.name%type, 
c out customer.dept%type) 
is 
begin 
select name,dept into b,c from customer where id=a; 
    end; 

它的創建正確。 但我不知道如何執行它。 EXEC p1(1); 但是這顯示錯誤。

+2

什麼是錯誤?你在哪裏執行它? – dotctor 2014-11-03 23:11:58

+2

程序有3個參數,不能用p1(1)(1參數)調用它 – dotctor 2014-11-03 23:14:03

+0

http://stackoverflow.com/help/someone-answers – dotctor 2014-11-04 20:58:53

回答

1

執行過程有兩種方法。

  1. 從SQL提示符處。

    EXECUTE [or EXEC] procedure_name;

  2. 在另一個過程中 - 只需使用過程名稱即可。

    procedure_name;

的程序有3個參數,你可以只用一個參數

在你的情況下,嘗試這樣的事情

DECLARE 
    p_name  customer.name%type; 
    p_department customer.dept%type; 
BEGIN 
    p1(1, p_name, p_department); 
END; 
2

你的過程有三個參數,所以你不這樣稱呼它p1(1)需要用三個參數來調用它。在OUT參數的情況下,您需要傳入將保存過程返回的值的變量。

DECLARE 
    l_id customer.id%type := 1; 
    l_name customer.name%type; 
    l_dept customer.dept%type; 
BEGIN 
    p1(l_id, l_name, l_dept); 
    <<do something with l_name and l_dept>> 
END; 
/
0

輸出參數應存儲在變量中。 輸入,可以是變量或直接在()之間給出使用dbms_output.put_line可以輕鬆地在IDE中顯示輸出。

DECLARE 
    p_name  customer.name%type; 
    p_department customer.dept%type; 
    p_id   customer.id%type := 1; 
BEGIN 
    p1(p_id, p_name, p_department); 
END;