语句语法应该没问题,我经常用这种方式插入,你在序列钱加入数据库OWNER名试试看,即
insert into table1(id,zd1,zd2,zd3.....) select 用户名.sequence_id.nextval, zd1,zd2,zd3...... from table2
不推荐用select nvl(max(id),0) from table1 ) +1,因为如果你中间有数据删除,ID就会重新排序,对历史数据,如果涉及到流程就会错乱了
我测试 insert into t1(id) select seq_id.nextval from t2, 这个正常呀,你是不是子查询用了group by或order by?
后两个sql肯定是不行的,没有commit之前,table1的max(id)和数量count(*)不会变的。
第一个sql感觉没有问题,能把报错的具体信息贴出来吗,另外sequence_id应该在建立存储过程之前就建好没有问题吧。
insert into table1 select sequence_id.nextval,t.zd1,t.zd2,t.zd3... from (select zd1,zd2,zd3...from table2) t
这样呢?