利用PL/SQL导入EXCEL数据源

身为运维的你,是不是偶尔需要从生产库将数据DOWN下来,再导入到测试库?
普通青年一般都从生产环境exp->下载到本地->上传到测试机->imp到测试库,操作少量数据,如某一张或几张表时,步骤繁琐稍显麻烦。
2B青年一般都用pl/sql查询数据->select all rows->copy to Excel->另存为本地->PL/SQL登陆测试机,然后select for update->复制粘贴到测试库对应的表,这样操作,如果数据量大,容易让pl/sql没有响应。且操作比较缺乏安全感。
好吧,文艺青年的你会怎么做?
一、如果要导出/导入的文件不太大。
   1. 利用pl/sql查询数据,获取最后页。
   2. 待数据全部查出来后,copy to excel,保存起来。
二、文件实在太大了。
   那就写脚本导吧。
   1. vi main.sql
set linesize 200
set term off verify off feedback off pagesize 0
set markup html on entmap on spool on preformat off
spool tables.xls
@get_data.sql
spool off
exit
  //PS,重点说明一下pagesize参数,这里设置的是0,即不会产生列头。如果设置为1,则一行产生一个列头,设置100,则100行产生一个列头。除非你知道要导出的数据是多少行,否则还是建议把pagesize设置为0,最后自行添加列头吧,否则数据里出现多余的列头会导致导入时误将列头当数据导入进去。
  //举手:如果想一次导出多个excel行不行?行,只需要spool时,写成多个就行了,例如:
 spool a.xls
 @get a.sql
 spool off
 spool b.xls
 @get b.sql
 spool off
 ...
   2. vi get_data.sql
select surr_key,curr_deal,time_period,time_val,dms_cl
,dms01,dms01_cht01,dms01_cht02,dms02,dms02_cht01,dms02_cht02,kpi_id,kpi_value
from bam.bam_baln_cube_bill_lv3 where curr_deal >= '201112' and dms_cl like '1010074%';
   3. sqlplus username/password@db
   4. SQL>@main.sql
   5. 下载tables.xls
   6. 这时候得到的tables.xls其实是个网页格式的,用excel工具打开后,另存为excel工作簿,变成一个真正的excel文件即可。
  至此,导出完成,下一步是导入,步骤如下:
  1. pl/sql连接欲导入的数据库。
  2. 工具->ODBC导入器
  3. 选择“来自ODBC的数据”页,设置如下内容:
       用户系统dsn: Excel Files
       用户名:要导入的表在哪个用户下
         口令:对应的口令
    
  4. 点击“连接”,在弹出的选择框中,选择你刚才导出来的数据源,如tables.xls,如果这里导入报错,说明你的文件不是真正的EXCEL文件。
  5. 选择“到ORACLE的数据”页面,设置如下内容:
      所有者:导入的表在哪个用户下
      表:导入的表名
      选择了表名后,ORACLE会自动生成源->目标的mapping,如果确认无误,即可执行导入了。
      另外还有:清除表、每次提交行数、覆盖重复、忽略重复等对数据有效性和效率进行选择,就不多说了。
  6. 点击“导入”,待完成后,可以自行验证结果。
  各位文艺青年,再也不要等着DBA给你们导数据了,DBA也很忙的,有权限的话,自己玩玩也挺好。:)
 
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10356975/viewspace-751813/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10356975/viewspace-751813/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值