使用Oracle 23 Docker镜像我有大量的测试数据,需要运行到数据库中,以便开发人员使用图像。
我知道我可以把.sql脚本放到图像上的/docker-entrypoint-initdb.d/startup
中,它们将自动在图像上通过SQL Plus运行。
问题是我不想看到
db_1 | 1 row created.
db_1 |
db_1 |
db_1 | 1 row created.
db_1 |
db_1 |
db_1 | 1 row created.
db_1 |
db_1 |
db_1 | 1 row created.
db_1 |
db_1 |
db_1 | 1 row created.
db_1 |
db_1 |
db_1 | 1 row created.
db_1 |
db_1 |
(etc...)
db_1 | Commit complete.
在我的控制台输出中。我宁愿看到这样的东西:
db_1 | 10,000 rows created.
db_1 |
db_1 |
db_1 | Commit complete.
或者甚至分成100个或更多的组会大大减少输出量。
这可能吗?
我试过使用INSERT ALL...
,但它仍然单独打印每个插入。
如果可能的话,最终的脚本应该向后兼容19c。
1条答案
按热度按时间mftmpeh81#
选项一:多路复用(您当前的解决方案)
如果您这样做:
然后,你会得到每一行的语句:
选项二:使用
INSERT ... SELECT
插入多行如果您这样做:
然后,您将获得每个表的语句:
选项三:使用
INSERT ALL
插入多行如果您这样做:
然后你会得到一个针对所有表的语句:
选项四:在PL/SQL块中 Package 插入
你还可以做的是将所有
INSERT
语句 Package 在一个PL/SQL匿名块中:然后你会得到一个关于整个块成功(或失败)的声明:
所有这些陈述都应该与大多数(所有?)Oracle版本。
Oracle 11g Fiddle