【发布时间】:2017-01-23 17:50:30
【问题描述】:
我想为 Oracle 12c 编写虚拟数据的 PL/SQL 生成器(例如,名字作为最流行的名字和姓氏的组合)。
所以我需要先用源数据填充姓名和姓氏表。
我无法使用 sqlldr,我只能访问 SQL*Plus 和 SQLDeveloper。
我可以用许多单独的插入语句填充我的源表,例如:
INSERT INTO names(id, name) VALUES(1, 'Oliver');
INSERT INTO names(id, name) VALUES(2, 'Jack');
⋮
INSERT INTO names(id, name) VALUES(50, 'Aaron');
我想知道是否还有其他(也许更优雅)的选择。
编辑:
我遇到了另一个问题,即生成的标识列的值在INSERT ALL 期间没有增加。 related answer at SO 中描述了一个很好的解决方法。
【问题讨论】:
-
你可以使用
INSERT ALL -
@GurV 喜欢这样吗?
INSERT ALL INTO names (id, name) VALUES (1, 'Oliver’) INTO names (id, name) VALUES (2, 'Jack’) ⋮ INTO names (id, name) VALUES (50, 'Aaron’) SELECT * FROM dual;