导出insert语句
--by zhuyj 显示&
select ‘\&s’ from dual; --注意必须要加引号
--by zhuyj
create or replace function fun_export_data(
v_tablename in varchar2,
v_condition in varchar2
)
return varchar2 is
/*
by zhuyj 20171130
*/
cursor cur(v_tablename varchar2) is
select column_name,data_type from user_tab_columns where table_name=upper(v_tablename) order by COLUMN_ID;
tmp varchar2(4000);
msg varchar2(4000);
len number;
v_condition1 varchar2(4000);
begin
v_condition1:=' '||v_condition;
tmp:='select ''insert into '||v_tablename||' values(''';
for re in cur(v_tablename) loop
if re.data_type='CHAR' or re.data_type='DATE' or re.data_type='VARCHAR2' or re.data_type='RAW' then
tmp:=tmp||''''''||'||'||re.column_name||'||'||''''''',''';
else
tmp:=tmp||'||'||nvl(re.column_name,0)||'||'||''',''';
end if;
end loop;
len:=length(tmp);
msg:=substr(tmp,1,len-3);
if v_condition is not null then
msg:=msg||''');'' from '||v_tablename||v_condition1||';';
else
msg:=msg||''');'' from '||v_tablename||';';
end if;
return msg;
end;
--执行函数例子:
select BuildSelSql('test') from dual; --test为表名
sql脚本如下 test.sql
--应获取到sql 导出表的insert语句 by zhuyj
select 'insert into test values('''||ID||''','''||SEQ||''','||FLAG||');' from test;
set trimout on
set trimspool on
set heading off
set feedback off
set termout off
set ver off
set linesize 4000
set pagesize 0
whenever sqlerror exit
set serveroutput on
--生成拼接insert的sql
spool e:\sql\test1.sql;
select fun_export_data('test','where id in (''a'',''a2'')') from dual;
spool off
set pagesize 6 --设置页大小的行数
btitle left 'commit;' --分批提交
--生成insert的sql
spool e:\sql\test.sql;
start e:\sql\test1.sql
spool off
/
--执行insert语句:
@test.sql
执行后查看test.sql文件的内容
导出insert语句的更多相关文章
- 一步一图:从SQLSERVER2005中导出insert语句
1.为什么要导出insert语句,我电脑装的是SQL Server Express免费版的,服务器上装的是正式版,在服务器上备份的数据库文件在本机上还原的时候 因为版本不一样,总是不成功.如果能直接使 ...
- PL/SQL 如何导出INSERT语句
需要把查询出来的数据导出成Insert的语句.忽然发现不会用了. 上网查,找到一些,但都不尽如人意. 于是就写了这篇文章.助人助己. 在PL/SQL Developer左边的树状导航栏里,找到[Tab ...
- sql server 2008R2 导出insert 语句(转载)
转载来源: https://blog.csdn.net/zengcong2013/article/details/78648988. sql server 2008R2数据库导出表里所有数据成inse ...
- sql server导出insert语句
在所需要导出数据库上右键 选择[任务] 然后选择[生成脚本] 选择数据库,点击下一步到[数据脚本选项] 编写数据的脚本 选择为true 这一步很重要 下一步选择要导出的对象 下一步选择表 点击完成 ...
- PLSQL导出表的数据insert语句
“Where clause”可以设置查询条件.设置好文件导出的路径(“Output file”),点击[Export]按钮,就可以导出INSERT语句了. 导出之后使用nodepad打开: 但是如果我 ...
- sql server 数据库导出表里所有数据成insert 语句
有时候,我们想把数据库的某张表里的所有数据导入到另外一个数据库或另外一台计算机上的数据库,对于sql server有这样的一种方法 下面我以sql server 2008 R2,数据库是Northwi ...
- [MSSQL]SQL Server里面导出SQL脚本(表数据的insert语句)(转)
最近需要导出一个表的数据并生成insert语句,发现SQL Server的自带工具并米有此功能.BAIDU一下得到如下方法(亲测OK) 用这个存储过程可以实现:CREATE PROCEDURE dbo ...
- SQL Server里面导出SQL脚本(表数据的insert语句)
转载自:http://hi.baidu.com/pigarmy/blog/item/109894c445eab0a28326ac5a.html 最近需要导出一个表的数据并生成insert语句,发现SQ ...
- SQLServer将表数据导出为Insert语句
从网上找到的方法,不过很不错,记录下来,也算是分享下~~ 有一个表,city,有列:cityID,cityName;将此表中所有数据,变为insert语句 select 'insert into ta ...
随机推荐
- ajax属性详解
https://blog.csdn.net/mooncom/article/details/52402836 资料库: $.ajaxSetup()方法为将来的ajax请求设置默认值. http://w ...
- RabbitMQ消息队列
RabbitMQ消息队列 !!! 注意,保证服务器的内存足够,磁盘足够,以及删除/etc/hosts中没有用的dns解析 # 优点,能够保证消息数据持久化,不丢失,支持高并发 安装学习rabbitm ...
- 手指向上滑动跳转页面的JQ方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- springboot项目中配置swagger-ui
Git官方地址:https://github.com/SpringForAll/spring-boot-starter-swagger Demo:https://github.com/dyc87112 ...
- vscode的插件收集
转:https://zhuanlan.zhihu.com/p/27905838 转:https://segmentfault.com/a/1190000006697219
- git的命令行输出正确地显示中文文件名
参考:https://stackoverflow.com/questions/22827239/how-to-make-git-properly-display-utf-8-encoded-pathn ...
- [LVM]创建LVM卷
https://www.cnblogs.com/softidea/p/5147090.html
- Sublime Text 3 安装简记
1.下载:( Sublime Text Version 3.1.1 Build 3176 ) https://www.sublimetext.com/3 2.安装Package Control: &q ...
- Flink的高可用集群环境
Flink的高可用集群环境 Flink简介 Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布,数据通信以及容错机制等功能. 因现在主要Flink这一块做先关方面的学习, ...
- bzoj3678 Katu Puzzle
题目链接 题意 给定一张图,对于每条边给出一个运算符\((\&,|,\otimes)\)和一个值\(c(0 \le c \le 1)\).问能否通过给每个点赋上一个值.使得每条边通过指定的运算 ...