gpt4 book ai didi

sql - 使用 IN 和 OUT 参数调用 Oracle 中的存储过程

转载 作者:行者123 更新时间:2023-12-03 04:44:12 25 4
gpt4 key购买 nike

我有这个程序:

CREATE OR REPLACE PROCEDURE PROC1(invoicenr IN NUMBER, amnt OUT NUMBER)
AS BEGIN
SELECT AMOUNT INTO amnt FROM INVOICE WHERE INVOICE_NR = invoicenr;
END;

因此,当我像这样运行它时,它绝对不会返回任何内容:

DECLARE
amount NUMBER;
BEGIN
PROC1(1000001, amount);
dbms_output.put_line(amount);
END;

顺便说一句,我使用 DreamCoder for Oracle。是程序本身有问题还是我调用的方式有问题? INVOICE 表中有一个 INVOICE_NR 等于 1000001 的条目。

最佳答案

如果在整个代码之前将服务器输出设置为 ON 模式,则它可以工作,否则 put_line() 将不起作用。尝试一下!

代码是,

set serveroutput on;
CREATE OR REPLACE PROCEDURE PROC1(invoicenr IN NUMBER, amnt OUT NUMBER)
AS BEGIN
SELECT AMOUNT INTO amnt FROM INVOICE WHERE INVOICE_NR = invoicenr;
END;

然后按原样调用该函数:

DECLARE
amount NUMBER;
BEGIN
PROC1(1000001, amount);
dbms_output.put_line(amount);
END;

关于sql - 使用 IN 和 OUT 参数调用 Oracle 中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10024771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com