2014-11-03 54 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;