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

これをoracleで行います。表ノードから1つの値を選択し、それを変数に割り当て、その変数を別の表に挿入します。私はオラクルでそれを行う方法がわかりません。値を選択して変数に割り当てます

答えて

0

文で試してみてください:

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

を開始するには良い場所です。

あなたは、単一の値を挿入する必要がある場合は、スカラー変数を使用することができます:あなたは1行以上を挿入する必要がある場合

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

これは動作しませんが。

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; 
/

最良の方法は、しかし、プレーンなSQLを使用することで、より読みやすく、PL/SQLの方法よりも高速です:

insert into someOtherTable (someField) 
    select val 
    from someTable 
    where val != 999; 
このケースでは、コレクションを使用する必要があります
関連する問題