2017-11-03 7 views
-1

データベースに2つのテーブルがあります。私はTable1の状態をチェックしたい。それが正しければ、私はTable2に2つのレコードを生成する必要があります。 OracleSQLDeveloperを使用しており、そのためのPL/SQLスクリプトを作成したいとします。私はこれを達成するための最良の方法は何ですか?PL/SQLスクリプトで新しいレコードを作成する

答えて

1

チュートリアルを取り、PL/SQLの基礎を学ぼうとしたら、それはこのようなものになります。

declare 
    v_indicator varchar2(100) := ''; 
begin 
    -- read indicator from Table1 
    select some_colmn into v_indicator 
    from Table1 
    where some_criterium='some_value' 
    ; 
    -- check indicator value against some of your condition 
    if v_indicator = 'condition_matched' then 
    -- log information to server output 
    dbms_output.put_line('condition_matched'); 
    -- generate records: 
    insert into Table2 (col_t2) values ('r1'); 
    insert into Table2 (col_t2) values ('r2'); 
    else 
    -- here it means condition was not matched 
    dbms_output.put_line('condition NOT matched'); 
    end if; 
end; 

希望を、このように、PL/SQLでそれをやって

+0

こんにちは!ご協力いただきありがとうございます。しかし、table1の値をtable2のいくつかの列に挿入する必要があります。私はそれをハードコードしたくない。どのように挿入ステートメントでそれを行うには? –

1

を支援J. Chomelによって提案された、読解可能で良い。しかし、それが何らかの理由で必要であれば、純粋なSQLでも行うことができます:

insert into table2(col_t2) 
    select val from (select 'r1' val from 
        dual union all 
        select 'r2' from dual) 
    where exists (select 'x' from table1 
        where some_criterium='some_value') 

もちろん、そのようなものはあまり読みにくいものではありません。

関連する問題