Oracle数据库数据插入问题

发布网友 发布时间:2022-04-20 01:38

我来回答

1个回答

热心网友 时间:2022-04-14 00:35

如果id市场自动生成的,也就是有序列,那么有触发器么?如果有触发器,那么根本不需要写SEQ.NEXTVAL,数据库自己就认识。

也就是说
INSERT INTO A (ID, NAME, AGE)
SELECT SEQ.NEXTVAL, Sam, 18 FROM DUAL
与(有触发器)
INSERT INTO A ( NAME, AGE)
SELECT Sam, 18 FROM DUAL
插入的内容一致
我记得12c有一个新功能,建立表的时候,可以直接建立一个自增的序列,相当于10g的序列+触发器,如果写了这个那么根本不用谢SEQ.NEXTVAL,直接union就可以。
如果union这么写不行,那么就再套一层。
也就是
select a,b from(SELECT SEQ.NEXTVAL, Sam a, 18 b FROM DUAL
UNION SELECT SEQ.NEXTVAL, Tom a, 20 b FROM DUAL)
不过好麻烦啊,如果插入的内容不是很多,那么找个列编辑软件直接全部写成insert语句就好了。
如果很多,那就外部表吧,然后用sqlldr导入。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com