我想在表tableA
中插入一些数据,但我必须使用group by
和my_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文档,我应该收到此错误。 如何在一个语句中处理序列和分组?
答案 0 :(得分: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;