oracle导入导出文本利器-sqluldr and sqlldr

oracle导入导出文本利器-sqluldr  and sqlldr

sqlldr 导入工具

sqludr导出工具

 例子:

由于表属于生产环境的表,所以表名和列名隐藏部分

1、导出表

下载sqluldr2_linux64_10204.bin

拷贝到$ORACLE_HOME/bin  命名为sqludr

查看帮助:
[oracle@oracle ~]$ sqluldr


SQL*UnLoader: Fast Oracle Text Unloader (GZIP, Parallel), Release 4.0.1
(@) Copyright Lou Fangxin (AnySQL.net) 2004 - 2010, all rights reserved.


License: Free for non-commercial useage, else 100 USD per server.


Usage: SQLULDR2 keyword=value [,keyword=value,...]


Valid Keywords:
   user    = username/password@tnsname
   sql     = SQL file name
   query   = select statement
   field   = separator string between fields
   record  = separator string between records
   rows    = print progress for every given rows (default, 1000000)
   file    = output file name(default: uldrdata.txt)
   log     = log file name, prefix with + to append mode
   fast    = auto tuning the session level parameters(YES)
   text    = output type (MYSQL, CSV, MYSQLINS, ORACLEINS, FORM, SEARCH).
   charset = character set name of the target database.
   ncharset= national character set name of the target database.
   parfile = read command option from parameter file


  for field and record, you can use '0x' to specify hex character code,
  \r=0x0d \n=0x0a |=0x7c ,=0x2c, \t=0x09, :=0x3a, #=0x23, "=0x22 '=0x27


导出表数据:这里注意如果有中文字符,记得转换字符集 export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

sqluldr clspuser/oracle query="select column,column1 from table where column=values" field="@|@" record=0x0a file=/u01/sqluldr/tablename.txt  --分隔符为@|@,行结尾为0x0a也就是\n换行。


屏幕显示
           0 rows exported at 2016-04-26 16:00:16, size 0 MB.
        4386 rows exported at 2016-04-26 16:00:16, size 3 MB.
         output file /u01/sqluldr/tablename.txt closed at 4386 rows, size 3 MB.


2.导入到数据库

 查看sqlldr帮助
SQL*Loader: Release 11.2.0.3.0 - Production on Tue Apr 26 16:48:27 2016


Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.




Usage: SQLLDR keyword=value [,keyword=value,...]


Valid Keywords:


    userid -- ORACLE username/password
   control -- control file name
       log -- log file name
       bad -- bad file name
      data -- data file name
   discard -- discard file name
discardmax -- number of discards to allow          (Default all)
      skip -- number of logical records to skip    (Default 0)
      load -- number of logical records to load    (Default all)
    errors -- number of errors to allow            (Default 50)
      rows -- number of rows in conventional path bind array or between direct path data saves
               (Default: Conventional path 64, Direct path all)
  bindsize -- size of conventional path bind array in bytes  (Default 256000)
    silent -- suppress messages during run (header,feedback,errors,discards,partitions)
    direct -- use direct path                      (Default FALSE)
   parfile -- parameter file: name of file that contains parameter specifications
  parallel -- do parallel load                     (Default FALSE)
      file -- file to allocate extents from
skip_unusable_indexes -- disallow/allow unusable indexes or index partitions  (Default FALSE)
skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable  (Default FALSE)
commit_discontinued -- commit loaded rows when load is discontinued  (Default FALSE)
  readsize -- size of read buffer                  (Default 1048576)
external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE  (Default NOT_USED)
columnarrayrows -- number of rows for direct path column array  (Default 5000)
streamsize -- size of direct path stream buffer in bytes  (Default 256000)
multithreading -- use multithreading in direct path
 resumable -- enable or disable resumable for current session  (Default FALSE)
resumable_name -- text string to help identify resumable statement
resumable_timeout -- wait time (in seconds) for RESUMABLE  (Default 7200)
date_cache -- size (in entries) of date conversion cache  (Default 1000)
no_index_errors -- abort load on any index errors  (Default FALSE)


PLEASE NOTE: Command-line parameters may be specified either by
position or by keywords.  An example of the former case is 'sqlldr
scott/tiger foo'; an example of the latter is 'sqlldr control=foo
userid=scott/tiger'.  One may specify parameters by position before
but not after parameters specified by keywords.  For example,
'sqlldr scott/tiger control=foo logfile=log' is allowed, but
'sqlldr scott/tiger control=foo log' is not, even though the
position of the parameter 'log' is correct.


使用sqlldr先书写控制文件

vim tablename.ctl

load data
CHARACTERSET ZHS16GBK
infile '/u01/sqluldr/tablename.txt'
append into table tablename
fields terminated by '@|@'  ---间隔符为@|@
trailing nullcols        ----即使有为空的列,也以null值插入
(column,column2)


执行命令
[oracle@oracle ~]$ sqlldr userid=clspuser/oracle control=/home/oracle/tablename.ctl log=p2p.log

......
Commit point reached - logical record count 4230
Commit point reached - logical record count 4239
Commit point reached - logical record count 4248
Commit point reached - logical record count 4257
Commit point reached - logical record count 4266
Commit point reached - logical record count 4275
Commit point reached - logical record count 4284
Commit point reached - logical record count 4293
Commit point reached - logical record count 4302
Commit point reached - logical record count 4311
Commit point reached - logical record count 4320
Commit point reached - logical record count 4329
Commit point reached - logical record count 4338
Commit point reached - logical record count 4347
Commit point reached - logical record count 4356
Commit point reached - logical record count 4365
Commit point reached - logical record count 4374
Commit point reached - logical record count 4383
Commit point reached - logical record count 4386

插入4386

验证两边的数据是否相同

over


sqludr无法使用的解决办法

[oracle@oracle2 ~]$ /u01/11g/bin/sqluldr 
/u01/11g/bin/sqluldr: error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory

提示库没有加载

[root@oracle2 lib]# ldd /u01/11g/bin/sqluldr 
        linux-vdso.so.1 =>  (0x00007fffbe03e000)
        libclntsh.so.10.1 => not found
        libc.so.6 => /lib64/libc.so.6 (0x00000037c3400000)
        /lib64/ld-linux-x86-64.so.2 (0x00000037c2c00000)

解决办法,加载动态库

1、locate libclntsh.so.10.1

打开/etc/ld.so.conf

添加动态库的位置

/u01/11g/lib
/u01/grid/lib

ldconfig加载

2、添加环境变量(推荐)

LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH



 

你可能感兴趣的:(oracle数据库)