Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

sai số hoặc các loại đối số trong lệnh gọi đến thủ tục của tôi

Nếu bạn không cần đối số thứ hai và thứ ba, bạn có thể khai báo chúng dưới dạng biến trong thủ tục thay vì đối số, như sau:

CREATE OR REPLACE PROCEDURE DDPAY_SP(DONOR_ID IN  DD_DONOR.IDDONOR%TYPE,
                                     RET      OUT BOOLEAN)
IS
  nPayment_count  NUMBER;
BEGIN 
  SELECT COUNT(*)
    INTO nPayment_count  
    FROM DD_PLEDGE p
    WHERE p.IDDONOR = DONOR_ID AND
          p.IDSTATUS = 10 AND
          p.PAYMONTHS > 0;

  IF nPayment_count > 0 THEN
    RET := TRUE;
  END IF;
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('DD_PAY - exception: ' || SQLCODE || ' : ' || SQLERRM);
    RAISE;
END DDPAY_SP;

Tôi đã bao gồm một ví dụ về trình xử lý EXCEPTION ở cuối DD_PAY. Luôn luôn là một ý kiến ​​hay khi bao gồm ít nhất trình xử lý tối thiểu này để trong trường hợp có ngoại lệ xảy ra, bạn sẽ nhận được một số dấu hiệu cho biết vấn đề nằm ở đâu.

Bởi vì thủ tục này trả về một giá trị BOOLEAN và BOOLEAN không thể (theo hiểu biết của tôi) được sử dụng từ SQL * Plus, bạn sẽ phải gọi nó từ một khối PL / SQL, như sau:

DECLARE
  bRetval  BOOLEAN;
BEGIN
  DD_PAY(308, bRetval);
  DBMS_OUTPUT.PUT_LINE('Returned value is ' ||
                       CASE bRetval
                         WHEN TRUE THEN 'TRUE'
                         ELSE 'FALSE'
                       END);
END;

Hãy thử.

CHỈNH SỬA:viết lại quy trình dựa trên thông tin thêm từ các nhận xét sau.

Chia sẻ và tận hưởng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với cơ sở dữ liệu Oracle trong ứng dụng dotnet mvc

  2. SSIS:Oracle Nhiều hàng cho một đầu ra cột mà không có STRAGG

  3. Không tìm thấy trình điều khiển phù hợp cho jdbc:oracle:thin:@ **** oracle / jdbc / driver / OracleDriver;

  4. java.sql.SQLException:Chỉ mục cột không hợp lệ trong wildfly

  5. Cách làm việc với Mảng hoặc Tập hợp PL / SQL dưới dạng Tham số sau đó THAM GIA chúng với nhau bằng chỉ mục