千家信息网

ORACLE怎么进行导入导出数据

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"ORACLE怎么进行导入导出数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介:
千家信息网最后更新 2026年10月31日ORACLE怎么进行导入导出数据

本篇内容介绍了"ORACLE怎么进行导入导出数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

简介:

Sqluldr2:专业用于大数据量导出工具之一,效率比普通导出快70%。 ( Sqlldr:专业用于导入的工具之一,请注意两个工具的区别。),在使用时,最好用磁盘写入速度快,网络好,网速快的做。

工具列表:

针对不同平台用不同的导出工具:

Windows: sqluldr2.exe

Linux(32位): sqluldr2_linux32_10204.bin

Linux(64位): sqluldr2_linux64_10204.bin

使用说明 (Windows平台):

使用sqluldr2的步骤:

1.打开运行àcmd进入到sqluldr2.exe的当前目录

2.参数介绍

User=用户/密码@tns

Query="查询语句"

File= 导出的路径

Head= 输出信息时,yes表示要表头,no表示不要表头

注意:想查看更多参数,请输入 sqluldr2 help=yes

  1. C:\Users\meng\Desktop\sqluldr2>sqluldr2.exe help=yes

  2. SQL*UnLoader: Fast Oracle Text Unloader (GZIP, Parallel), Release 4.0.1

  3. (@) Copyright Lou Fangxin (AnySQL.net) 2004 - 2010, all rights reserved.

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

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

  6. Valid Keywords:

  7. user = username/password@tnsname

  8. sql = SQL file name

  9. query = select statement

  10. field = separator string between fields

  11. record = separator string between records

  12. rows = print progress for every given rows (default, 1000000)

  13. file = output file name(default: uldrdata.txt)

  14. log = log file name, prefix with + to append mode

  15. fast = auto tuning the session level parameters(YES)

  16. text = output type (MYSQL, CSV, MYSQLINS, ORACLEINS, FORM, SEARCH).

  17. charset = character set name of the target database.

  18. ncharset= national character set name of the target database.

  19. parfile = read command option from parameter file

  20. read = set DB_FILE_MULTIBLOCK_READ_COUNT at session level

  21. sort = set SORT_AREA_SIZE at session level (UNIT:MB)

  22. hash = set HASH_AREA_SIZE at session level (UNIT:MB)

  23. array = array fetch size

  24. head = print row header(Yes|No)

  25. batch = save to new file for every rows batch (Yes/No)

  26. size = maximum output file piece size (UNIB:MB)

  27. serial = set _serial_direct_read to TRUE at session level

  28. trace = set event 10046 to given level at session level

  29. table = table name in the sqlldr control file

  30. control = sqlldr control file and path.

  31. mode = sqlldr option, INSERT or APPEND or REPLACE or TRUNCATE

  32. buffer = sqlldr READSIZE and BINDSIZE, default 16 (MB)

  33. long = maximum long field size

  34. width = customized max column width (w1:w2:...)

  35. quote = optional quote string

  36. data = disable real data unload (NO, OFF)

  37. alter = alter session SQLs to be execute before unload

  38. safe = use large buffer to avoid ORA-24345 error (Yes|No)

  39. crypt = encrypted user information only (Yes|No)

  40. sedf/t = enable character translation function

  41. null = replace null with given value

  42. escape = escape character for special characters

  43. escf/t = escape from/to characters list

  44. format = MYSQL: MySQL Insert SQLs, SQL: Insert SQLs.

  45. exec = the command to execute the SQLs.

  46. prehead = column name prefix for head line.

  47. rowpre = row prefix string for each line.

  48. rowsuf = row sufix string for each line.

  49. colsep = separator string between column name and value.

  50. presql = SQL or scripts to be executed before data unload.

  51. postsql = SQL or scripts to be executed after data unload.

  52. lob = extract lob values to single file (FILE).

  53. lobdir = subdirectory count to store lob files .

  54. split = table name for automatically parallelization.

  55. degree = parallelize data copy degree (2-128).

  56. hint = MySQL SQL hint for the Insert, for example IGNORE.

  57. unique = Unique Column List for the MySQL target table.

  58. update = Enable MySQL ON DUPLICATE SQL statement(YES/NO).

  59. for field and record, you can use '0x' to specify hex character code,

  60. \r=0x0d \n=0x0a |=0x7c ,=0x2c, \t=0x09, :=0x3a, #=0x23, "=0x22 '=0x27

  61. C:\Users\meng\Desktop\sqluldr2>

代码例子1:

sqluldr2.exe USER=用户/密码@tnsQUERY="select /*+ parallel(8) */ *from cs_XXX dt,cfg_XXX devdim105 wheredt.starttime>=to_date('2012-06-27 00:00:00','yyyy-mm-dd hh34:mi:ss') and dt.starttime<=to_date('2012-06-2700:01:59','yyyy-mm-dd hh34:mi:ss') AND dt.msc= devdim105.mapvalue(+) ANDdevdim105.deviceid=15 " head=yes FILE=F:\cs_XXX_test.csv

代码例子2(这种方式用于导出的查询sql很长,那么就把sql写在123.sql文件里 ):

sqluldr2.exe USER=用户/密码@tns sql=123.sqlhead=yes FILE=F:\cs_XXX_test.csv

3.在cmd里,直接把步骤2的代码例子1 ,贴进去执行。

注:如果执行报报错,就有可能是环境变量path的问题,还有就是plsql需要的oci.dll文件等多个dll文件,请放在sqluldr2的目录下。

4.查看结果F:\cs_XXX_test.csv

5.打开csv里面的内容,就可以用sqlldr进行 入库。

--如果是linux版本

  1. [root@localhost export_xdr]# ./sqluldr2_linux64_10204.bin

  2. SQL*UnLoader: Fast Oracle Text Unloader (GZIP, Parallel), Release 4.0.1

  3. (@) Copyright Lou Fangxin (AnySQL.net) 2004 - 2010, all rights reserved.

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

  5. Valid Keywords:

  6. user = username/password@tnsname

  7. sql = SQL file name

  8. query = select statement

  9. field = separator string between fields

  10. record = separator string between records

  11. rows = print progress for every given rows (default, 1000000)

  12. file = output file name(default: uldrdata.txt)

  13. log = log file name, prefix with + to append mode

  14. fast = auto tuning the session level parameters(YES)

  15. text = output type (MYSQL, CSV, MYSQLINS, ORACLEINS, FORM, SEARCH).

  16. charset = character set name of the target database.

  17. ncharset= national character set name of the target database.

  18. parfile = read command option from parameter file

  19. for field and record, you can use '0x' to specify hex character code,

  20. \r=0x0d \n=0x0a |=0x7c ,=0x2c, \t=0x09, :=0x3a, #=0x23, "=0x22 '=0x27


  1. [root@localhost export_xdr]# cd /usr/lib/oracle/11.2/client64/lib/

  2. [root@localhost lib]# ls

  3. glogin.sql libclntsh.so.10.1 libnnz11.so libocci.so.11.1 libocijdbc11.so libsqlplus.so ojdbc6.jar xstreams.jar

  4. libclntsh.so libclntsh.so.11.1 libocci.so libociei.so libsqlplusic.so ojdbc5.jar ottclasses.zip

  5. [root@localhost lib]# ls -l

  6. total 185012

  7. -rw-r--r-- 1 root root 368 Sep 17 2011 glogin.sql

  8. lrwxrwxrwx 1 root root 17 Jan 26 17:08 libclntsh.so -> libclntsh.so.11.1

  9. lrwxrwxrwx 1 root root 12 Jan 26 17:31 libclntsh.so.10.1 -> libclntsh.so

  10. -rw-r--r-- 1 root root 52761218 Sep 17 2011 libclntsh.so.11.1

  11. -rw-r--r-- 1 root root 7955322 Sep 17 2011 libnnz11.so

  12. lrwxrwxrwx 1 root root 15 Jan 26 17:08 libocci.so -> libocci.so.11.1

  1. [root@localhost export_xdr]# history |grep ln

  2. 94 find / -name libclntsh.so.10.1

  3. 95 find / -name libclntsh.so

  4. 116 find / -name libclntsh.so

  5. 127 ln libclntsh.so.10.1 libocci.so

  6. 128 ln libocci.so libclntsh.so.10.1

  7. 130 rm libclntsh.so.10.1 -f

  8. 132 ln libclntsh.so libclntsh.so.10.1

  9. 134 rm libclntsh.so.10.1 -f

  10. 135 ln libclntsh.so.10.1 libclntsh.so



  1. ./sqluldr2_linux64_10204.bin user=unxx/密码@192.168.x.x:1521/unxx query="select/*+ parallel(2) */STARTTIME, ENDTIME,phone,imei,rantype,HCITY from v_ps_xxx dt,mv_terminal cc where endtime_par>=trunc(sysdate)-1 and endtime_par



补充:

兄弟们,在安装的时候,是不是经常遇到报错?

比如:

  1. [root@FCJ-2F-21 ~]# ./sqluldr2_linux64_10204.bin

  2. ./sqluldr2_linux64_10204.bin: error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory

  3. [root@FCJ-2F-21 ~]# more /etc/profile

方法一:

这个so文件,在安装oracle后,肯定是有的,如果没有可以用软连接 ln -s xxxx libclntsh.so.10.1

1.下面只需配置 LD_LIBRARY_PATH

export ORACLE_HOME=/u01/app/Oracle/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin

  1. [oracle@FCJ-2F-21 lib]$ more /etc/profile

  2. # /etc/profile

  3. # System wide environment and startup programs, for login setup

  4. # Functions and aliases go in /etc/bashrc

  5. pathmunge () {

  6. if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then

  7. if [ "$2" = "after" ] ; then

  8. PATH=$PATH:$1

  9. else

  10. PATH=$1:$PATH

  11. fi

  12. fi

  13. }

  14. # ksh workaround

  15. if [ -z "$EUID" -a -x /usr/bin/id ]; then

  16. EUID=`id -u`

  17. UID=`id -ru`

  18. fi

  19. # Path manipulation

  20. if [ "$EUID" = "0" ]; then

  21. pathmunge /sbin

  22. pathmunge /usr/sbin

  23. pathmunge /usr/local/sbin

  24. fi

  25. # No core files by default

  26. ulimit -S -c 0 > /dev/null 2>&1

  27. if [ -x /usr/bin/id ]; then

  28. USER="`id -un`"

  29. LOGNAME=$USER

  30. MAIL="/var/spool/mail/$USER"

  31. fi

  32. HOSTNAME=`/bin/hostname`

  33. HISTSIZE=1000

  34. if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then

  35. INPUTRC=/etc/inputrc

  36. fi

  37. export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

  38. # By default, we want umask to get set. This sets it for login shell

  39. # Current threshold for system reserved uid/gids is 200

  40. # You could check uidgid reservation validity in

  41. # /usr/share/doc/setup-*/uidgid file

  42. if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then

  43. umask 002

  44. else

  45. umask 022

  46. fi

  47. for i in /etc/profile.d/*.sh ; do

  48. if [ -r "$i" ]; then

  49. if [ "${-#*i}" != "$-" ]; then

  50. . $i

  51. else

  52. . $i >/dev/null 2>&1

  53. fi

  54. fi

  55. done

  56. unset i

  57. unset pathmunge

  58. export LANG=en_US.UTF-8

  59. export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

  60. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

  61. export TNS_ADMIN=/usr/lib/oracle/11.1/client64/

  62. export PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin



2.source /etc/profile

成功。

方法二:(来自其他网友)

    1. 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:

    2. # cat /etc/ld.so.conf

    3. include ld.so.conf.d/*.conf

    4. # echo "/usr/local/lib" >> /etc/ld.so.conf

    5. # ldconfig

----实例演示
下载完sqluldr2,文件夹内容如下:
sqluldr2_linux32_10204.bin和sqluldr2_linux64_10204.bin分别适用于与linux32位和linux64位操作系统;
sqluldr2.exe用于windows平台。

以下是导出导入过程:
1、首先将sqluldr2.exe复制到到$ORACLE_HOME的bin目录,即可开始使用:

2、查看help帮助:

3、执行导出数据命令:
sqluldr2.exe USER=hh/hh@tiod QUERY="select /*+ parallel(2) */ *from hh.ent_person" table=ent_person head=yes FILE=C:\ent_person.txt
p.s. head=yes表示第一行为表头;并且query也可以写入一个文件然后使用sql选项。
默认分隔字符为逗号,如果列中有特殊字符,可使用field选项指定新的分隔字符。

4、数据已经导入到C:\ent_person.txt,几十万数据秒速。

5、使用sqlldr进行导入,首先找到$ORACLE_HOME的bin目录生成的ctl文件,当sqluldr2有table选项会默认生成ctl文件,以用于导入。

6、将数据加载到数据库中:
sqlldr jms/jms@tiod control=ent_person_sqlldr.ctl log=ent_person_sqlldr.log bad=ent_person_sqlldr_bad.log skip=1 errors=5000 rows=5000 bindsize=335542
p.s. skip=1表示跳过第一行,从第二行开始导入。

7、最后查看log是否有数据没有导入

"ORACLE怎么进行导入导出数据"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 文件 目录 工具 内容 密码 代码 例子 字符 平台 更多 用户 表头 不同 一行 专业 参数 命令 方法 步骤 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 深圳九邦互联网科技有限公司 科技企业和互联网企业 与互联网科技公司 广州宏创互联网科技 深圳天众互联网科技公司 互联网金融监管科技 青岛中康互联网医疗科技有限公司 宁波青枫互联网科技有限公司 中国的互联网科技企业的崛起 互联网校园科技培训 福建科技产业互联网发展 花神(南京)互联网科技有限公司 广州市恰铎互联网科技有限公司 元气玛特互联网科技公司是外包吗 怎样加入科技互联网 互联网第三次科技革命特征 陕西云淼互联网科技公司 南京一网一红互联网科技有限公司 唯美互联网科技 百单网互联网科技有限公司 互联网科技保险 广州宏创互联网科技 新华互联网科技2019 广州恒生互联网科技有限 互联网科技与管理 洛阳昕诺飞互联网科技有限公司 互联网方面的科技前沿 广西科技产业互联网是什么 重庆科技产业互联网有哪些
0