mysql && oracle 导入导出数据方法总结

【oracle】
一、导出数据成txt
1.spool.sql
set echo off --在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句  
set feedback off --是否显示当前sql语句查询或修改的行数  
--set newpage none --会在页和页之间没有任何间隔  
set verify off --  
set pagesize 0 --分多少页  
set term off --在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。  
set trims on --将SPOOL输出中每行后面多余的空格去掉   
set linesize 600 --设置屏幕显示行宽,默认100   
set heading off --禁止输出列标题   
set timing off --默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能  
set numwidth 38  
SPOOL D:\SEQID.txt  
select  cc_seqid from CENTER_MES_MANAGE t where CC_APPID = '00001' ;  -- 替换成想要导出的字段以及表
SPOOL OFF 

(1)然后可以直接在客户端上command模式下直接@d://spool.sql 跟上自己的文件所在的绝对路径
(2)windows下可以编写成bat,linux可以使用命令行模式或者编写成sh文件
@echo off 
sqlplus test/test@testsource @./spool.sql > log.txt
exit
2.exp 导出二进制文件
(1) 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
   exp system/manager@TEST file=d:\daochu.dmp full=y
  (2) 将数据库中system用户与sys用户的表导出
   exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
  (3) 将数据库中的表inner_notify、notify_staff_relat导出
    exp aichannel/aichannel@TESTDB2 file= d:\datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat) 
  (4) 将数据库中的表table1中的字段filed1以"00"打头的数据导出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=" where filed1 like '00%'"
 
  上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
  也可以在上面命令后面 加上 compress=y 来实现。
3.导出sql以及csv文件
使用oracle客户端可以轻松搞定
二导入数据到oracle
1.sqlldr
(1)编写一个.ctl文件。指定分隔符,以及日期要经过转换
LOAD DATA
CHARACTERSET 'ZHS16GBK'
INFILE 'C:\Users\fzh\Desktop\1111\sqlldr\11\20160614.CDR'
append into table bill_callout 
fields terminated by ','
(b_caller,b_called,b_orgcalled,b_time timestamp "yyyy-mm-dd hh24:mi:ss",b_status,b_describe )

在window下直接使用sqlldr 
sqlldr test/test@orcl212,control=C:\\input.ctl log=C:\\input.log bad=C:\\input.bad
2.imp导入dmp格式的数据
(1) 将D:\daochu.dmp 中的数据导入 TEST数据库中。
   imp system/manager@TEST  file=d:\daochu.dmp
   imp aichannel/aichannel@TEST  full=y  file=d:\datanewsmgnt.dmp ignore=y
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
   在后面加上 ignore=y 就可以了。
(2) 将d:daochu.dmp中的表table1 导入
imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1)
【mysql】
一、导出数据
1.mysqldump
1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)
    mysqldump -uroot -pdbpasswd -d dbname >db.sql;


    2、导出數據库為dbname某张表(test)结构
    mysqldump -uroot -pdbpasswd -d dbname test>db.sql;


    3、导出數據库為dbname所有表结构及表數據(不加-d)
    mysqldump -uroot -pdbpasswd  dbname >db.sql;


    4、导出數據库為dbname某张表(test)结构及表數據(不加-d)
    mysqldump -uroot -pdbpasswd dbname test>db.sql;
    
    5、导出数据库中某张表不导出表数据
    mysqldump -t dbname -uroot -p --tables table_name > AAA.sql
    
2. select导出到成txt数据。
(1)不导出表字段。去掉-N导出表字段
mysql -h192.168.1.101 -uroot -p -N  -e "select *from UM_USER_MANAGE" vvp > /home/vvp/1.txt



二、导入数据 tcpdump导出的sql文件
1、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql


建议使用第二种方法导入。
2.LOAD DATA
LOAD DATA INFILE '/home/apache/htdocs/crms/test.txt' INTO TABLE tablename
 CHARACTER SET latin1 
 FIELDS TERMINATED BY ',' 
 LINES TERMINATED BY '\n'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值