为Oracle生成sql插件

时间:2009-10-30 11:03:36

标签: sql oracle

在使用Oracle时,我唯一没有自动化工具的是可以创建INSERT INTO脚本的程序。

我并不急需它,所以我不打算花钱。我只是想知道是否有任何东西可用于生成INSERT INTO脚本给定现有数据库而不需要花费很多钱。

我在搜索Oracle时没有找到这样的功能。

它存在于PL / SQL Developer中,但是BLOB字段存在错误。

8 个答案:

答案 0 :(得分:38)

Oracle的免费SQL Developer将会这样做:

http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html

您只需找到您的表格,右键单击它并选择导出数据 - >插入

这将为您提供包含insert语句的文件。您也可以以SQL Loader格式导出数据。

答案 1 :(得分:21)

您可以在PL / SQL Developer v10中执行此操作 1.单击要为其生成脚本的表。
2.单击“导出数据” 3.检查是否选择了要导出数据的表。
4.单击SQL插入选项卡 5.如果您不需要整个表格,请添加where子句 6.选择您将在其中找到SQL脚本的文件 7.单击“导出” enter image description here

答案 2 :(得分:4)

使用SQL函数(我是author):

用法:

select fn_gen_inserts('select * from tablename', 'p_new_owner_name', 'p_new_table_name')
from dual;

其中:

p_sql            – dynamic query which will be used to export metadata rows
p_new_owner_name – owner name which will be used for generated INSERT
p_new_table_name – table name which will be used for generated INSERT
此示例中的

p_sql是从表名'

中选择*

您可以在此处找到原始源代码:

Ashish Kumar的script生成可单独使用的插入语句而不是SQL块,但支持的数据类型更少。

答案 3 :(得分:2)

如果您有一个空表,则导出方法无法正常工作。作为一种解决方法。我使用了Oracle SQL Developer的表视图。并单击列。按Nullable排序,所以NO排在最前面。然后使用shift + select为范围选择这些不可为空的值。

这允许我做一个基本插入。因此,Export可以准备一个适当的所有列插入。

答案 4 :(得分:1)

您可以在数据库中执行类似的操作:

select "insert into targettable(field1, field2, ...) values(" || field1 || ", " || field2 || ... || ");"
from targettable;

更复杂的是here

答案 5 :(得分:1)

我一直在寻找解决方案,今天就找到了。这是你如何做到的。

  1. 打开Oracle SQL Developer查询生成器

  2. 运行查询

  3. 右键点击结果集并导出

    http://i.stack.imgur.com/lJp9P.png

答案 6 :(得分:0)

如果必须定期将大量数据加载到表中,请查看SQL Loader或外部表。应该比单个插入快得多。

答案 7 :(得分:-2)

您还可以使用MyGeneration(免费工具)编写自己的sql生成脚本。 MyGeneration中包含SQL Server的“插入”脚本,可以轻松更改为在Oracle下运行。