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

Truyền một mảng dữ liệu làm tham số đầu vào cho một thủ tục Oracle

Đây là một cách để làm điều đó:

SQL> set serveroutput on
SQL> CREATE OR REPLACE TYPE MyType AS VARRAY(200) OF VARCHAR2(50);
  2  /

Type created

SQL> CREATE OR REPLACE PROCEDURE testing (t_in MyType) IS
  2  BEGIN
  3    FOR i IN 1..t_in.count LOOP
  4      dbms_output.put_line(t_in(i));
  5    END LOOP;
  6  END;
  7  /

Procedure created

SQL> DECLARE
  2    v_t MyType;
  3  BEGIN
  4    v_t := MyType();
  5    v_t.EXTEND(10);
  6    v_t(1) := 'this is a test';
  7    v_t(2) := 'A second test line';
  8    testing(v_t);
  9  END;
 10  /

this is a test
A second test line

Để mở rộng nhận xét của tôi cho câu trả lời của @ dcp, đây là cách bạn có thể triển khai giải pháp được đề xuất ở đó nếu bạn muốn sử dụng một mảng kết hợp:

SQL> CREATE OR REPLACE PACKAGE p IS
  2    TYPE p_type IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
  3  
  4    PROCEDURE pp (inp p_type);
  5  END p;
  6  /

Package created
SQL> CREATE OR REPLACE PACKAGE BODY p IS
  2    PROCEDURE pp (inp p_type) IS
  3    BEGIN
  4      FOR i IN 1..inp.count LOOP
  5        dbms_output.put_line(inp(i));
  6      END LOOP;
  7    END pp;
  8  END p;
  9  /

Package body created
SQL> DECLARE
  2    v_t p.p_type;
  3  BEGIN
  4    v_t(1) := 'this is a test of p';
  5    v_t(2) := 'A second test line for p';
  6    p.pp(v_t);
  7  END;
  8  /

this is a test of p
A second test line for p

PL/SQL procedure successfully completed

SQL> 

Điều này giao dịch tạo ra một LOẠI Oracle độc ​​lập (không thể là một mảng liên kết) với việc yêu cầu định nghĩa của một gói mà tất cả mọi người đều có thể nhìn thấy để LOẠI mà nó xác định ở đó có thể được sử dụng bởi tất cả mọi người.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khai báo ngoại lệ do người dùng xác định bằng phương pháp RAISE_APPLICATION_ERROR trong cơ sở dữ liệu Oracle

  2. Từng bước cài đặt R12.2.6 EBS trên Virtual Box

  3. nhận một số giá trị duy nhất mà không cần phân tách các giá trị thuộc cùng một khối giá trị

  4. Tự tham gia vào oracle với các ví dụ

  5. Cách bật tính năng theo dõi trong ứng dụng oracle r12