Wählen Sie aus PLSQL Assoziatives array?
Ist es möglich zu verwenden, WÄHLEN Sie AUS, wenn Sie über ein assoziatives array? Ich bin ein array übergeben, um eine gespeicherte Prozedur durch .NET-Anwendung, und ich möchte in der Lage sein zu verwenden, dass array als Bedingung bei der Auswahl aus einer anderen Tabelle. Können sagen, ich bin übergeben ein array von IDs, die das Verfahren, ich möchte in der Lage sein, dies zu tun:
select * from table1 where userID in (select column_value from array)
Den Typ für das array definiert ist, in das Paket:
type id_array is type of number index by pls_integer
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist möglich, durch die Verpackung des Arrays mit einer Pipelining-Funktion. Hier ist eine gute Grundierung für den Pipeline-Funktionen:
http://www.oracle-developer.net/display.php?id=429
UPDATE: Oracle 12c jetzt unterstützt das Abfragen von assoziativen arrays mit Hilfe der TABELLE-operator, solange der Typ deklariert ist, in einem Paket spec: https://galobalda.wordpress.com/2014/08/02/new-in-oracle-12c-querying-an-associative-array-in-plsql-programs/
z.B.
Nein, können Sie nicht wählen Sie von PL/SQL-arrays, da Sie die Verwendung von SQL in
select from
Aussagen, aber Sie können über DB definiert Geschachtelte Tabellen-Typen in SQL. Dieser kurze Artikel kann Ihnen helfen, loszulegen.Nehmen Sie einen Blick auf dieses einfache synthetische exmple:
Beispiel für den Einsatz von PLSQL (zu wählen aus einer verschachtelten Tabelle):