sql >> Database >  >> RDS >> Oracle

Een door Oracle opgeslagen procedure accept array (table) parameter in pakketvoorbeeld nodig

U hebt een SQL-object nodig om de TABLE . aan te roepen operator van een SELECT . Hier is een klein voorbeeld (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

U kunt hier in plaats daarvan een functie gebruiken (merk op dat mijn TYPE nog steeds buiten het pakket wordt gedefinieerd):

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. Kiezen uit meerdere tafels zonder een join?

  2. SQL Server 2014 verkennen SELECT INTO Parallelism

  3. Help alstublieft met STRING_SPLIT verbeteringen

  4. controleer of de query resulteert in een lege rij mysqli