2017-05-05 3 views
0

Ich verwende Variable, um mehrere Zeilen zu speichern, und ich möchte es in temporäre Tabelle einfügen. Diese Abfrage gibt mehrere ZeilenWie füge ich mehrere Zeilen in temporäre Tabellen ein?

BEGIN 
    SELECT id INTO 
    temp_var 
    FROM TABLE_1 a, 
     TABLE_2 b 
    where a.id =b.id; 
    EXCEPTION 
     WHEN NO_DATA_FOUND THEN 
     temp_var := NULL; 
     END; 

I Variablenwerte in temporäre Tabelle eingefügt werden soll?

+0

Was Sie bisher versucht haben? – Nitish

+0

Keine. Ich weiß nicht, ob es machbar ist – Potatooo

+0

Was ist der Typ von 'temp_var'? – Nitish

Antwort

1

Annahme: Wenn Sie "temporäre Tabelle" sagen, meinen Sie die SQL Server-Verwendung, die eine PL/SQL-Sammlung in Oracle ist.

Hier ist eine Variable temp_var eine verschachtelte Tabelle mit einer zusammengesetzten Struktur, die der Projektion von table_1 entspricht.

declare 
    type table1_nt is table of table_1%rowtype; 
    temp_var table1_nt; 
begin 
    select * 
    bulk collection into temp_var 
    from table_1; 
    .... 
end; 

Dies gibt Ihnen den Inhalt table_1 in einer Reihe, die Sie mit in PL/SQL arbeiten können. Find out more.

Ihre überarbeitete Anforderung gegeben, es ist leicht genug, um mit einem einzigen Attribute zu arbeiten statt:

declare 
    type id_nt is table of varchar2(20); -- table_1.id%type 
    temp_var id_nt; 
begin 
    select a.id 
    bulk collection into temp_var 
    from table_1 a, 
     join table_2 b 
      on a.id =b.id; ; 
    .... 
end; 
+0

Ich wähle Werte für mehrere Tabellen aus, nicht nur für Tabelle_1. Ich meinte Global Temporary Table – Potatooo

+3

Nun ** bitte bearbeiten Sie Ihre Frage **, um Ihre Anforderung klarer zu erklären – APC

Verwandte Themen