在 Oracle 中为结果集生成插入语句

Posted

技术标签:

【中文标题】在 Oracle 中为结果集生成插入语句【英文标题】:Generate Insert statements for result set in Oracle 【发布时间】:2012-06-21 18:32:22 【问题描述】:

是否有用于为结果集生成插入语句的 oracle 工具?如果有什么不同,我正在使用 Oracle SQL 开发人员。

例如查询表select * from t1 where this = 'that'

Col1    Col2    Col3
a1      a2      a3
b1      b2      b3

我想将结果集导出到

INSERT INTO T1 (Col1, Col2, Col3) values ('a1', 'a2', 'a3');
INSERT INTO T1 (Col1, Col2, Col3) values ('b1', 'b2', 'b3');

【问题讨论】:

您的问题有点含糊,但您是否研究过 SQL*Loader? @couling 我更新了问题。 现在我必须导出整个表并选择我想要的插入语句并将其发送给我的同事。表名和结构相同。我必须每天为多张桌子这样做。必须有更好的方法来创建选择性insert statements 【参考方案1】:

在 SQL Developer 中运行您的查询。

在结果网格中,右键单击。选择导出...

出现一个弹出对话框,询问如何导出结果。默认为插入。您可以选择要保存到的文件,或复制到剪贴板,或各种其他选项。

这是在 SQL Developer 3.0.4 上。

【讨论】:

Pl/SQL Developer v12.0.7 除了转储文件之外没有提供任何此类选项。无法创建 INSERT 语句。 它对我有用,至少 v13 和 v14。我很确定它在 v12 中也存在。【参考方案2】:

通过导出,您可以执行以下操作:

exp userid=user/passwd tables=t1 query="""where this = 'that'"""

【讨论】:

以上是关于在 Oracle 中为结果集生成插入语句的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 将多行 Oracle 结果集插入 MYSQL

ORACLE - 哪个更好地生成记录、视图、SP 或函数的大型结果集

基于 select 语句中的特定记录集的 Oracle 序列/编号生成

JAVA初学者ResultSet结果集报错

将结果集从 UNPIVOT 插入到表中

在Oracle中,想通过查询语句得出结果集,获得该结果集的表头。