使用PL / SQL生成器的测试数据填充Oracle表

时间:2017-01-23 17:50:30

标签: sql oracle plsql

我想为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中描述了一个很好的解决方法。

2 个答案:

答案 0 :(得分:0)

您可以在oracle中执行此操作:

INSERT INTO names(id, name)
select 1, 'Oliver' from dual union all
select 2, 'Jack' from dual union all
. . . 

然后有INSERT ALL:

INSERT ALL 
  INTO names (id, name) VALUES (1, 'Oliver')
  INTO names (id, name) VALUES (2, 'Jack')
select * from dual;

我更喜欢第一个。

答案 1 :(得分:0)

您可能还想查看http://plsql.ninja/npg/package/random_ninja。 Morten Egan一直在构建一个非常有趣的实用程序库,他的random_ninja包将为您生成各种数据。