2017-05-02 2 views
1

Oracle SQLで1つのinsert into文内の表に2行挿入します。共用体で挿入するとすべてが重複した値で動作しません

このコードは動作します:私は値を変更すると

insert into a_glw select tt.*, work_id_seq.nextval from 
    (select 11111, 'one text', 12345, 'new text', NULL, 
    'some text', 'nice text', 'test', 'text', 'great text' 
    from dual 
union all 
    select 11111, 'one text', 12345, 'new text', NULL, 
    'some text', 'nice text', 'test', 'text', 'great text' 
    from dual) tt; 

testtextに、このコードがエラー00918. 00000 - "column ambiguously defined"を生成します。

insert into a_glw select tt.*, work_id_seq.nextval from 
    (select 11111, 'one text', 12345, 'new text', NULL, 
    'some text', 'nice text', 'text', 'text', 'great text' 
    from dual 
union all 
    select 11111, 'one text', 12345, 'new text', NULL, 
    'some text', 'nice text', 'test', 'text', 'great text' 
    from dual) tt; 

1つの選択で同じ値を挿入するために、問題のようですステートメント。これをどうすれば解決できますか?

答えて

1

2番目の例で値が異なるため、挿入文を実行するためには、列のエイリアス名が必要です。

最初の例では、testが列の値で、エイリアス名を指定していないため、デフォルトの列名としてtestと仮定しています。

あなたが囲まれたスクリーンショットを見れば、第二の例は、SELECT文は、列名として列の値を検討しているとして、TEXTカラムを2回繰り返したているので、あなたのために別名を提供しなければならない例にhere

を参照してください。列。

enter image description here

関連する問題