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

Vấn đề tham số inout của quy trình lưu trữ Oracle - Đã có giải pháp - Lỗi đánh máy

Một số vấn đề:

  1. VARHAR2 chúng tôi là lỗi đánh máy và phải là VARCHAR2 .
    • Thay vào đó, bạn có thể chỉ định các kiểu dữ liệu để tham chiếu đến các cột trong bảng tương ứng bằng cách sử dụng table_name.column_name%TYPE .
  2. Quy trình không xuất ra bất kỳ thứ gì - bạn cần thay đổi một trong các IN tham số cho một OUT (hoặc IN OUT tham số).
  3. Truy vấn của bạn không chỉ định tên bảng.
  4. Bạn có thể sử dụng SELECT ... INTO ... chứ không phải là CURSOR .

Một cái gì đó như thế này:

CREATE OR REPLACE PROCEDURE FIRSTPROC (
  ID1 IN  table_name.id1val%TYPE,
  ID2 OUT table_name.id2val%TYPE
)
AS
BEGIN
  DBMS_OUTPUT.PUT_LINE(ID1);
  SELECT id2val
  INTO   ID2
  FROM   table_name
  WHERE  id1val = ID1;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    ID2 := 0; -- Or you could use NULL
  WHEN TOO_MANY_ROWS THEN
    ID2 := 0; -- Or you could use NULL
END;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC - Oracle ArrayIndexOutOfBoundsException

  2. Truy vấn xác thực nếu các mục tồn tại trong nhóm phân vùng

  3. Có cách nào để chọn một số hàng bằng cách sử dụng các tham số không?

  4. Cách trích xuất số tuần trong sql

  5. Báo cáo lỗi - ORA-25155:cột được sử dụng trong phép nối TỰ NHIÊN không thể có bộ định tính 25155. 00000 - cột được sử dụng trong phép nối TỰ NHIÊN không được có bộ định tính