sql >> Databáze >  >> RDS >> Oracle

Uložená procedura Oracle akceptuje parametr pole(tabulka) v příkladu balíčku

K volání TABLE potřebujete objekt SQL operátor z SELECT . Zde je malý příklad (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

Místo toho zde můžete použít funkci (všimněte si, že můj TYPE je stále definován mimo balíček):

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. Jak oddělit (rozdělit) řetězec čárkou v uložené proceduře SQL Server

  2. java.sql.SQLException:Index sloupce je mimo rozsah, 0 <1

  3. ZF2 - MySQL Regex pro vyhledávání celých slov

  4. Hodnota vazby pole Oracle.DataAccess (ODP.NET) nespadá do očekávaného rozsahu