PL/SQL 输出有问题



我在Oracle SQL Developer中创建了此过程。

CREATE OR REPLACE PROCEDURE CUST_NAME_LIMIT(
I_CUSTOMER_NUM IN CUSTOMER.CUSTOMER_NUM%TYPE,
I_CUSTOMER_NAME OUT CUSTOMER.CUSTOMER_NAME%TYPE,
I_CREDIT_LIMIT OUT CUSTOMER.CREDIT_LIMIT%TYPE)
AS
BEGIN
SELECT CUSTOMER_NAME, CREDIT_LIMIT
INTO
I_CUSTOMER_NAME, I_CREDIT_LIMIT
FROM
CUSTOMER
WHERE
CUSTOMER_NAME = I_CUSTOMER_NAME;
DBMS_OUTPUT.PUT_LINE(I_CUSTOMER_NAME);
DBMS_OUTPUT.PUT_LINE(I_CREDIT_LIMIT);
END;

当我尝试在下面显示输出时,出现错误

BEGIN
CUST_NAME_LIMIT('126');
END;

它应该放出来 玩具丰富 7500

只有当你告诉我们你得到了哪个错误,而不是让我们猜测。但是,嘿,这样更有趣!

正如您声明了一个接受一个IN和两个OUT参数的过程:

create or replace procedure cust_name_limit(
i_customer_num in customer.customer_num%type,
i_customer_name out customer.customer_name%type,
i_credit_limit out customer.credit_limit%type)
as
begin
select customer_name, credit_limit
into i_customer_name, i_credit_limit
from customer
where customer_name = i_customer_name;
end;

调用它时,您必须执行相同的操作:

declare
l_custname customer.customer_name%type;
l_credlim  customer.credit_limit%type;
begin
CUST_NAME_LIMIT('126', l_custname, l_credlim);
dbms_output.put_line(l_custname ||' - '|| l_credlim);
end;
/

从过程中显示结果没有多大意义;一旦返回值,就这样做。

最新更新