2016-08-10 10 views
-1
$parentId = select id from node where uin_title = 'Control'; 
insert into list (id) values ($parentId) 

Ich möchte dies in Oracle tun. Wählen Sie einen Wert aus dem Tabellenknoten aus, weisen Sie ihn einer Variablen zu und fügen Sie die Variable in eine andere Tabelle ein. Ich bin nicht sicher, wie man es in Orakel macht.Wählen Sie den Wert und weisen Sie ihn der Variablen

Antwort

0

Bitte versuchen Sie es mit Aussage:

insert into list (id) select id from node where uin_title = 'Control' 
0

Die ist ein guter Ort zu starten.

Wenn Sie einen einzelnen Wert einfügen müssen, können Sie eine skalare Variable verwenden:

declare 
    v number; 
begin 
    select val into v 
    from someTable 
    where val != 999; 
    -- 
    insert into someOtherTable(someField) values (v); 
end; 

Das wird nicht funktionieren, wenn Sie mehr als eine Zeile einfügen müssen; in diesem Fall müssen Sie eine Sammlung verwenden:

declare 
    type tableOfNumber is table of number index by pls_integer; 
    v tableOfNumber; 
begin 
    select val 
    bulk collect into v 
    from someTable 
    where val != 999;  
    -- 
    forall i in v.first .. v.last 
     insert into someOtherTable(someField) values (v(i)); 
end; 
/

Der beste Weg, jedoch ist klar, SQL zu verwenden, die besser lesbar und schneller als PL/SQL-Möglichkeiten ist:

insert into someOtherTable (someField) 
    select val 
    from someTable 
    where val != 999; 
Verwandte Themen