2017-03-07 33 views
1

我想插入一些數據到表tableA,但我必須使用group bymy_sequence.nextval。在相同的語句中使用兩者是不可能的,是否存在任何解決方法?插入從選擇序列和組通過

例如:執行該statment

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文檔,我應該得到這個錯誤。 如何通過calns在一個語句中處理序列和組?

回答

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;