Tôi có thủ tục này:Gọi một thủ tục lưu trữ trong Oracle với IN và OUT thông số
CREATE OR REPLACE PROCEDURE PROC1(invoicenr IN NUMBER, amnt OUT NUMBER)
AS BEGIN
SELECT AMOUNT INTO amnt FROM INVOICE WHERE INVOICE_NR = invoicenr;
END;
Vì vậy, khi tôi chạy nó như thế này nó sẽ trả về hoàn toàn không có gì:
DECLARE
amount NUMBER;
BEGIN
PROC1(1000001, amount);
dbms_output.put_line(amount);
END;
BTW tôi sử dụng DreamCoder cho Oracle. Có vấn đề gì với thủ tục hay với cách tôi gọi nó? Có một mục trong bảng INVOICE có INVOICE_NR bằng 1000001.
Nếu bạn chạy "bắt đầu dbms_output.put_line ('kiểm tra đầu ra') kết thúc;" bạn có thấy đầu ra không? Thủ tục này và cách gọi nó là hoàn toàn chính xác. – arturro
Tôi chạy theo cách này nhưng tôi không thấy đầu ra. Có thể là DreamCoder không hiển thị đầu ra của put_line()? – RegedUser00x
Không, tôi đã thử với 'BEGIN dbms_output.put_line (' hi '); END; 'và nó cũng không hiển thị bất cứ điều gì. – RegedUser00x