前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle sqlldr快速导入和sqluldr2快速导出

Oracle sqlldr快速导入和sqluldr2快速导出

原创
作者头像
用户1483438
修改2021-11-16 21:21:58
3.2K0
修改2021-11-16 21:21:58
举报
文章被收录于专栏:大数据共享大数据共享

一、sqllder快速导入(服务端,oracle用户下执行,且文件和目录需要oracle的可执行权限)

1、创建目录、将目录权限授权给oracle用户(可省略)

使用root用户创建目录 示例:mkdir /orctmp 将目录授权给oracle用户 示例:chown -R oracle:oracle /orctmp

注意事项:这里以在/目录下创建为例,如果已经存在orctmp目录则无需创建

2、创建表、上传csv文件

在oracle数据库创建表、同时将要导入的数据存为csv文件,上传至服务器orctmp目录下

3、编写ctl脚本文件

vim /orctmp/test.ctl

代码语言:javascript
复制
options(skip=1,BINDSIZE=20971520, ROWS=10000000, READSIZE=20971520, ERRORS=999999999)
load data
CHARACTERSET ZHS16GBK
infile '/orctmp/test.csv' "str'\r\n'"
append into table TEST.TEST
fields terminated by ','
trailing nullcols
(ID,TAC,BRAND,PRODUCT,CATEGORY,SDATE "to_date(:SDATE, 'yyyy-mm-dd hh24:mi:ss')")

--参数说明:
		--第1行:导入参数配置,已经是支持大量数据导入的参数方案。
		--第2行:定义读取文件
		--第3行:指定字符集
		--第4行:infile指定导入的文件是test.csv
		--第5行:into table前面的insert表示导入方式
			--insert :默认方式,在导入记录前要求表为空
			--append :在表中追加新导入的记录
			--replace :删除旧记录(等价delete from table语句),替换成新导入的记录
			--truncate:删除旧记录(等价truncate table语句),替换成新导入的记录
			--into table后面指定导入数据库表TEST.TEST,且表名必须大写
		--第6行:指定每一行的字段是以逗号(,)分隔
		--第7行:表的字段没有对应的值时允许为空
		--第8行:对应导入表的字段

注意事项:如果导入的是时间字段,需要指明时间转换的格式。SDATE “to_date(:SDATE, ‘yyyy-mm-dd hh24:mi:ss’)”

4、使用sqlldr导入数据

配置环境变量执行:

代码语言:javascript
复制
sqlldr userid = oracle/oracle@192.168.0.1:1521/test control='/orctmp/test.ctl' log='/orctmp/import_csv.log'

没有配置环境变量执行:

代码语言:javascript
复制
whereis oracle  --查看oracle可执行文件路径的命令
cd /oracle/11.2.0/db_1/bin  --根据上面获取到的路径
sqlldr userid = oracle/oracle@192.168.0.1:1521/test control='/orctmp/test.ctl' log='/orctmp/import_csv.log'

注意事项:执行导入时,用户名、密码、IP、数据库名、ctl文件路径配置成自己服务器

至此,sqllder快速导入完成

二、sqluldr2快速导出(服务端,oracle用户下执行)

1、安装sqluldr2

Linux链接下载地址: https://www.jb51.net/database/577354.html

Windows链接下载地址: https://www.jb51.net/database/577355.html

将下载的文件解压,将sqluldr2_linux64_10204.bin上传到oracle服务器的bin(/oracle/11.2.0/db_1/bin)目录下,并重命名为sqluldr2.bin

注意事项:本文所写的对应的是Linux版本,Winodws版参考下载链接里的说明

2、使用sqlldr2导出数据

配置环境变量执行:

代码语言:javascript
复制
./sqluldr2.bin user=oracle/oracle#@192.168.0.1:1521/test query="select * from test.test;" 
head=yes file=/output/test.csv charset=ZHS16GBK safe=yes log=/output/export_csv.log

没有配置环境变量执行:

代码语言:javascript
复制
whereis oracle  --查看oracle可执行文件路径的命令
cd /oracle/11.2.0/db_1/bin  --根据上面获取到的路径
./sqluldr2.bin user=oracle/oracle#@192.168.0.1:1521/test query="select * from test.test;" 
head=yes file=/output/test.csv charset=ZHS16GBK safe=yes log=/output/export_csv.log

注意事项:执行导出时,用户名、密码、IP、数据库名、导出文件路径配置成自己服务器

至此,sqluldr2快速导出完成

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、创建目录、将目录权限授权给oracle用户(可省略)
  • 2、创建表、上传csv文件
  • 3、编写ctl脚本文件
  • 4、使用sqlldr导入数据
  • 二、sqluldr2快速导出(服务端,oracle用户下执行)
    • 1、安装sqluldr2
      • 2、使用sqlldr2导出数据
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档