Oracle
 sql >> база данни >  >> RDS >> Oracle

Необходим е пример за съхранена процедура на Oracle за масив (таблица).

Имате нужда от SQL обект, за да извикате TABLE оператор от SELECT . Ето един малък пример (9iR2):

SQL> CREATE TYPE table_number is TABLE OF NUMBER;
  2  /

Type created.

SQL> SELECT * FROM TABLE(table_number(1,2,3));

COLUMN_VALUE
------------
           1
           2
           3

Можете да използвате функция тук вместо това (имайте предвид, че моят TYPE все още е дефиниран извън пакета):

SQL> CREATE OR REPLACE PACKAGE pkg AS
  2     FUNCTION f RETURN table_number;
  3  END;
  4  /

Package created.

SQL> CREATE OR REPLACE PACKAGE BODY pkg AS
  2     FUNCTION f RETURN table_number IS
  3     BEGIN
  4        RETURN table_number(4,5,6);
  5     END;
  6  END;
  7  /

Package body created.

SQL> SELECT * FROM table(pkg.f);

COLUMN_VALUE
------------
           4
           5
           6



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предаване на съхранена процедура от SQL Server към ORACLE свързан сървър

  2. Елиминиране на дублирани резултати в заявка за избор, която съдържа CLOB колона

  3. Как да вмъкнете групово данни от референтен курсор във временна таблица в PL/SQL

  4. Ляво и дясно се свързват с помощта на знака плюс (+) в Oracle

  5. SQL заявка за свиване на дублиращи се стойности по период от време