是否有从结果集中构建插入语句的 Oracle SQL 工具?我们目前只允许使用名为 SQL Station 的工具。我想推荐一个工具,比如 Rapid SQL 或 CrazySQuirrell,或者构建我自己的可重用 sql 块。
9 回答
这个结果集来自哪里?如果您的意思是要执行 SELECT,然后将结果数据插入到另一个表中,您可以在单个 SQL 语句中执行此操作:
INSERT INTO table2 (columnA, columnB)
SELECT columnA, columnB
FROM table1;
PL/SQL Developer 也会这样做。我用过 PL/SQL Developer 和 Oracle 的 SQL Developer,在我看来 PL/SQL Developer 有一个更流畅和更一致的界面。不确定 SQL Developer,但 PL/SQL Dev。还允许您将结果集导出为 CSV、XML 和 HTML。
如果您运行的是 Linux,它在 WINE 下也可以正常运行。
如果你想要命令行工具,免费的 cx_OracleTools 可以做到这一点,还有一些其他的好东西。
http://cx-oracletools.sourceforge.net/
- CompileSource - 在文件中执行语句,检查错误
- CopyData - 将数据从一个表或视图复制到另一个
- DbDebugger - 允许简单调试 PL/SQL
- DescribeObject - 将对象描述为用于娱乐的 SQL 语句
- DescribeSchema - 将多个对象描述为用于娱乐的 SQL 语句
- DumpCSV - 将 select 语句的结果转储为逗号分隔值
- DumpData - 将 select 语句的结果转储为 insert 语句
- ExportColumn - 将列中的数据转储到文件中
- ExportData - 将数据库中的数据转储到可移植的转储文件中
- ExportObjects - 将对象描述为 SQL 语句以便在文件中重新创建
- ExportXML - 将表中的数据导出到简单的 XML 文件中
- GeneratePatch - 生成 SQL 脚本以从一组对象转到另一组对象
- GenerateView - 为表生成视图语句
- ImportColumn - 将文件的内容导入数据库中的列
- ImportData - 导入用 ExportData 转储的数据
- ImportXML - 从 XML 文件导入数据(例如由 ExportXML 创建的文件)
- RebuildTable - 生成用于重建表的 SQL 脚本
- RecompileSource - 重新编译数据库中的所有无效对象
是的,看看 Oracle sql developer。它的免费可以从 otn.oracle.com 下载
我找到了这个解决方案,这就是我现在正在使用的。感谢所有的帮助。事实证明我们也可以使用 SQL+。由于某种原因,我无法在 SQL Station 中运行它。
COPY FROM userid/password@from_DB TO userid/password>@to_DB INSERT toDB_tablename USING SELECT * FROM fromDB_tablename where ....;
犯罪;
在紧要关头,使用字符串连接非常适合您想要构建的较小语句:
Select
'Insert Into MyOtherTableTable Values(''' || MyMainTableColumn1 || ''' and ''' || MyMainTableColumn2 || ''')'
From MyMainTable
右键单击查询的结果集,您将得到一个弹出窗口。选择导出数据并插入。它会询问您保存生成插入语句的文件的位置。给出文件名和保存路径。
我知道为时已晚,但这可能对某人有所帮助。如果你去表,你可以“导出”数据。第二步是“指定数据”,您可以在其中添加一些过滤器。这仅适用于表数据。
干杯
使用 Oracle SQL-Developer 类型并作为脚本执行 (F5):
select /*insert*/
* from dual;
输出:
Insert into "dual" (DUMMY) values ('X');
您也可以尝试 /*csv*/" 或 /*html*/
SELECT /*csv*/ * FROM scott.emp;
SELECT /*xml*/ * FROM scott.emp;
SELECT /*html*/ * FROM scott.emp;
SELECT /*delimited*/ * FROM scott.emp;
SELECT /*insert*/ * FROM scott.emp;
SELECT /*loader*/ * FROM scott.emp;
SELECT /*fixed*/ * FROM scott.emp;
SELECT /*text*/ * FROM scott.emp;