2017-03-07 16 views
1

テーブルtableAにデータを挿入したいが、group bymy_sequence.nextvalを使用しなければならない。同じステートメントで両方を使用することは不可能ですが、回避策はありますか?例えばシーケンスとグループによる選択から挿入する

insert into tableA (
    taba_id, 
    taba_sum, 
    taba_date 
) select 
    tabb_sequence.nextval, 
    sum(tabb_value), 
    tabb_date 
    from 
    tableB group by (tabb_date); 

した後、このなステートメントを実行し、私が得た:

ORA-02287: sequence number not allowed here 

は、Oracleのマニュアルをよると、私はこのエラーを取得する必要があります。 1つの文章で呪文によるシーケンスとグループを扱うにはどうすればいいですか?

答えて

4

ここでの問題は、シーケンスが集計されていないためです。そのため、このエラーが発生しています。この方法を試してください:

insert into tableA (
    taba_id, 
    taba_date, 
    taba_sum 
) 
select tabb_sequence.nextval, 
     tabb_date, 
     stv 
    from (select tabb_date, 
       sum(tabb_value) stv, 
      from tableB 
      group by tabb_date) a; 
関連する問題