最近开始搞Oracle数据库,看存储过程学习了一下Oracle怎么导入dat数据的,这里记录一下,方便日后查询使用。
SQL语句
第一步:生成ctl文件
1 | /u01/app/oracle/product/11.2.0/dbhome_1/bin/sqlplus pas/pas @/home/oracle/pas_control/control.sql T01_CPCT_BSC_INF_FILE_H T01_CPCT_BSC_INF_FILE_H.dat /data/gtp/20220830/ |
- /u01/app/oracle/product/11.2.0/dbhome_1/bin/sqlplus:为sqlplus命令的绝对路径,根据环境不同进行更改
- pas/pas:账户/密码
- @/home/oracle/pas_control/control.sql:下面会有control.sql文件详解,这里也是绝对路径
- T01_CPCT_BSC_INF_FILE_H:表名,control.sql文件会用到列举表字段信息
- T01_CPCT_BSC_INF_FILE_H.dat:dat文件名称
- /data/gtp/20220830/:dat数据存放的绝对路径
第二步:根据生成的ctl导入数据
1 | /u01/app/oracle/product/11.2.0/dbhome_1/bin/sqlldr userid=pas/pas control=/data/gtp/20220830/T01_CPCT_BSC_INF_FILE_H.ctl log=/data/gtp/20220830/T01_CPCT_BSC_INF_FILE_H.log direct=true |
- /u01/app/oracle/product/11.2.0/dbhome_1/bin/sqlldr:sqlldr命令的绝对路径
- userid=pas/pas:账户/密码
- control=/data/gtp/20220830/T01_CPCT_BSC_INF_FILE_H.ctl:执行第一步sqlplus会生成新的ctl文件,存放的导入命令
- log=/data/gtp/20220830/T01_CPCT_BSC_INF_FILE_H.log:导入日志
- direct=true:是否为直接路径
sqlldr是Oracle数据加载工具,还有bad、data、discard、skip等很多参数,详细查看man命令或者官网。
control.sql
目的产生新的ctl文件,导入数据时候使用。
1 | set echo off |