大家应该都用过PL/SQL Developer,它有个数据导出的功能,可以把数据转化成INSERT语句导出,比如我在SQL窗口中写上两条SELECT语句:select owner,table_name from all_tables where rownum<3; select owner,table_name,column_name from all_tab_columns where rownum<3; --通过数据导出功能可以转化成以下INSERT语句: --文件1:a.sql insert into all_tables (OWNER, TABLE_NAME) values ('SYS', 'CON$');insert into all_tables (OWNER, TABLE_NAME) values ('SYS', 'IND$'); --文件二:b.sql insert into all_tab_columns (OWNER, TABLE_NAME, COLUMN_NAME) values ('SYS', 'ACCESS$', 'D_OBJ#');insert into all_tab_columns (OWNER, TABLE_NAME, COLUMN_NAME) values ('SYS', 'ACCESS$', 'ORDER#'); 但是这里这里有个问题:不能一次性导出这两条SQL的查询结果,只能通过点击两次“数据导出”按钮去执行导出,且只能分开导出成2个SQL文件。当我写的SQL语句很多的时候,比如二三十条的时候,这个时候导出很容易出错,而且太过于机械化,同时我希望在同一个SQL窗口执行的SQL结果导出成一个SQL文件。有没有一种方法可以一次性把这两条SQL的执行结果一次性导出在同一个文件里面呢? 我想应该有人做过这种尝试,有类似尝试的都可以发相关代码或者操作步骤上来,不管是否得到最终结果,一律给分!
你把所有的查询结果都插入到表里面,然后用PL/SQL Developer 一次性将所有的这些表都导出到一个sql文件不久可以了。如下 导出 下面三个查询结果:1、创建临时表保存查询结果 create table tbl_a as select owner,table_name from all_tables where rownum<3; create table tbl_b as select owner,table_name,column_name from all_tab_columns where rownum<3;2、一次性导出所有的表 具体是在PL/SQL Developer 中选中所有要导出的表,然后右键点击“数据导出”,然后楼主应该会了,保存为一个sql文件即可。
借鉴2楼的方式:create table tbl_a as select owner||","||table_name from all_tables where rownum<3;insert into tbl_a select owner||","||table_name||","||column_name from all_tab_columns where rownum<3;然后将tbl_a中的数据导出来即可。
不好意思,弄错了,应该是 create table tbl_test as select "insert into tbl_a values( "||owner||","||table_name||")" from all_tables where rownum<3;insert into tbl_test select "insert into tbl_b values( "||owner||","||table_name||","||column_name||")" from all_tab_columns where rownum<3;导出来,就是insert语句了。
select owner,table_name,column_name from all_tab_columns where rownum<3;
--通过数据导出功能可以转化成以下INSERT语句:
--文件1:a.sql
insert into all_tables (OWNER, TABLE_NAME)
values ('SYS', 'CON$');insert into all_tables (OWNER, TABLE_NAME)
values ('SYS', 'IND$');
--文件二:b.sql
insert into all_tab_columns (OWNER, TABLE_NAME, COLUMN_NAME)
values ('SYS', 'ACCESS$', 'D_OBJ#');insert into all_tab_columns (OWNER, TABLE_NAME, COLUMN_NAME)
values ('SYS', 'ACCESS$', 'ORDER#');
但是这里这里有个问题:不能一次性导出这两条SQL的查询结果,只能通过点击两次“数据导出”按钮去执行导出,且只能分开导出成2个SQL文件。当我写的SQL语句很多的时候,比如二三十条的时候,这个时候导出很容易出错,而且太过于机械化,同时我希望在同一个SQL窗口执行的SQL结果导出成一个SQL文件。有没有一种方法可以一次性把这两条SQL的执行结果一次性导出在同一个文件里面呢?
我想应该有人做过这种尝试,有类似尝试的都可以发相关代码或者操作步骤上来,不管是否得到最终结果,一律给分!
create table tbl_a as select owner,table_name from all_tables where rownum<3;
create table tbl_b as select owner,table_name,column_name from all_tab_columns where rownum<3;2、一次性导出所有的表
具体是在PL/SQL Developer 中选中所有要导出的表,然后右键点击“数据导出”,然后楼主应该会了,保存为一个sql文件即可。
回2楼,
2、一次性导出所有的表
具体是在PL/SQL Developer 中选中所有要导出的表
我选中所有的表,但是执行数据导出的时候,只会导出第一个选中的表,其余的表都没有导出
我的PL/SQL Developer是8.0的
工具->导出表>选择两个表->选择"SQL插入"标签->填写WHERE子句->填写SQL文件路径->导出
create table tbl_test as select "insert into tbl_a values( "||owner||","||table_name||")" from all_tables where rownum<3;insert into tbl_test select "insert into tbl_b values( "||owner||","||table_name||","||column_name||")" from all_tab_columns where rownum<3;导出来,就是insert语句了。