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

PL / SQL:Lỗi PLS-00306:sai số hoặc loại đối số trong lệnh gọi được kích hoạt cho bảng số

Lý do tại sao bạn gặp phải PLS-00306 lỗi là sự không tương thích của NUMLIST loại tập hợp, được xác định trong đặc tả gói và NUMLIST loại tập hợp được xác định trong khối PL / SQL ẩn danh. Mặc dù định nghĩa của hai loại tập hợp đó giống nhau, nhưng chúng không tương thích. Trong khối PL / SQL ẩn danh của bạn, bạn phải khai báo và sau đó chuyển vào GETSERVICES_API thủ tục một biến của PKGCOMSUPPORT_SERVICE.NUMLIST kiểu dữ liệu.

create or replace package PKG as
  type t_numlist is table of number index by varchar2(50);
  procedure SomeProc(p_var in pkg.t_numlist);
end;
/

create or replace package body PKG as
  procedure someproc(p_var in pkg.t_numlist) is
  begin
    null;
  end;
end;
/

declare
  type t_numlist is table of number index by varchar2(50);
  l_var t_numlist;
begin
  pkg.someproc(l_var);
end;

ORA-06550: line 5, column 3:
PLS-00306: wrong number or types of arguments in call to 'SOMEPROC'

declare
  --type t_numlist is table of number index by varchar2(50);
  l_var pkg.t_numlist;
begin
  pkg.someproc(l_var);
end;

anonymous block completed


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng IS NULL hoặc IS NOT NULL với các điều kiện tham gia - Câu hỏi lý thuyết

  2. Định dạng một số dưới dạng phần trăm trong Oracle

  3. Tệp kết xuất cốt lõi và thêm mã gỡ lỗi trong ứng dụng thực thi cho Ứng dụng Oracle

  4. Hàm ATAN2 () trong Oracle

  5. Tại sao mẫu ngủ đông này số lượng lớn