2016-05-27 2 views
0

Ich habe einen Tabellen-Array-Typ deklariert, der dem Array eine Reihe von Werten hinzufügen möchte, damit ich später eine Auswahl durchführen kann, die sich vom Array unterscheidet.PL SQL - Wie wird für jede Spalte in einer SELECT-Anweisung iteriert?

Meine Werte in das Array sind Strings wie folgt hinzugefügt werden:

"1","2","3", ..... 

ich jede Saite mit dem Array hinzufügen möchten vielleicht so etwas wie:

FOR i IN SELECT "1","2","3" LOOP 
    myarray(i) := ???? 

dann wähle ich später wollen eindeutige Werte aus dem Array. Gibt es einen einfachen Weg, dies zu tun?

Wenn ich dies in SQL-Server tun würde, würde ich einfach eine temporäre Tabelle erstellen, meine Werte in die Tabelle einfügen und dann aus dieser Tabelle auswählen, aber ich bin nicht sicher, ob dies der beste Weg mit Oracle ist?

+0

würde dies arbeiten wählen Sie eindeutig t.column_value aus Tabelle (sys.odcivarchar2list ('1', '2', '3', '4', '5', '1')) t; –

+0

Sicher, können Sie das als Antwort hinzufügen? Wo finde ich weitere Informationen zu diesen SYS-Elementen wie ODCINUMBERLIST und ODCIVARCHAR2LIST? (nicht zu faul, ich kann auch nur googlen, aber ich fragte mich, ob Sie Referenzen hatten? Diese scheinen sehr praktisch zu wissen.) –

+0

nicht sicher, wo ich ursprünglich die odcivarchar2 stuff. aber ich benutze es sehr. Ich glaube, ich habe viele Leute gesehen, die es im Oracle Sql Forum benutzt haben und ich habe es gestohlen. –

Antwort

2

würde dies funktionieren, wählen Sie distinct t.column_value aus Tabelle (sys.odcivarchar2list ('1', '2', '3', '4', '5', '1')) t;