00001.Shell数据割接_导记录入库
2011-09-29 11:48
239 查看
1.目录规划:
oracle@mdsp140:~/convertdata> pwd
/opt/oracle/convertdata //用于存放源数据、目标数据、转换脚本、导库脚本;
oracle@mdsp140:~/convertdata> ll
total 8
-rwxrwxrwx 1 oracle oinstall 397 2011-09-29 10:58 converter.sh //转换脚本,用于扫描源数据,提取符合规则的数据;
drwxrwxrwx 2 oracle oinstall 80 2011-09-29 10:49 source //源数据目录,用以存放待处理的数据;
-rwxrwxrwx 1 oracle oinstall 139 2011-09-29 10:47 sqlldr.ctl //导库脚本,该脚本由oracle自带的sqlldr工具,将ctl文件,导入库中;
drwxrwxrwx 2 oracle oinstall 80 2011-09-29 11:18 target //存放经过转换后的数据,作为导库脚本的数据源;
2.源数据设定:
oracle@mdsp140:~/convertdata/source> pwd
/opt/oracle/convertdata/source
oracle@mdsp140:~/convertdata/source> ls
data_sub.txt
oracle@mdsp140:~/convertdata/source> tail data_sub.txt
2,610010200845081,22365000081,0,-1,-1,NONGPRS,0,0,0,0,0,0,0,NO,NO,0,0,NOBPOS,BOTH //一行源数据
3.转换脚本:
oracle@mdsp140:~/convertdata> cat converter.sh
#!/bin/ksh
awk -F \, '{
if (match($1, "[0-9]+"))
{
field1 = $1;
field2 = $2;
field3 = $3;
printf("%s|%s|%s\n", field1, field2, field3);
}
}' ./source/* >> ./target/result.dat
//如果在windows下编写该文件,上传后,出现"^M"提示时,可用以下指领,进行文件过滤;
oracle@mdsp140:~/convertdata>cat -v converter.sh | tr -d "^M" > converter.sh
4.转换后生成的数据文件
oracle@mdsp140:~/convertdata/target> ls
result.dat
oracle@mdsp140:~/convertdata/target> tail result.dat
2|610010200845081|22365000081
5.导库脚本 sqlldr.ctl
load data
infile "./target/result.dat"
append into table import_temp
fields terminated by "|"
trailing nullcols
(HLR_INDEX,IMSI,MSISDN)
6. 创建数据库用户MDSP
7.创建导入的表:
create table import_temp (
HLR_INDEX varchar2(50),
IMSI varchar2(50),
MSISDN varchar2(50))
8.执行导库指令,导库;
//该步骤,应在与ctl文件同级目录,执行,且当前系统用户为oracle
sqlldr userid=mdsp/mdsp control=./sqlldr.ctl
也可用这种格式:
sqlplus mdsp/mdsp@本地命名 control=./sqlldr.ctl //本地命名服务,需要手动进行配置;
oracle@mdsp140:~/convertdata> pwd
/opt/oracle/convertdata //用于存放源数据、目标数据、转换脚本、导库脚本;
oracle@mdsp140:~/convertdata> ll
total 8
-rwxrwxrwx 1 oracle oinstall 397 2011-09-29 10:58 converter.sh //转换脚本,用于扫描源数据,提取符合规则的数据;
drwxrwxrwx 2 oracle oinstall 80 2011-09-29 10:49 source //源数据目录,用以存放待处理的数据;
-rwxrwxrwx 1 oracle oinstall 139 2011-09-29 10:47 sqlldr.ctl //导库脚本,该脚本由oracle自带的sqlldr工具,将ctl文件,导入库中;
drwxrwxrwx 2 oracle oinstall 80 2011-09-29 11:18 target //存放经过转换后的数据,作为导库脚本的数据源;
2.源数据设定:
oracle@mdsp140:~/convertdata/source> pwd
/opt/oracle/convertdata/source
oracle@mdsp140:~/convertdata/source> ls
data_sub.txt
oracle@mdsp140:~/convertdata/source> tail data_sub.txt
2,610010200845081,22365000081,0,-1,-1,NONGPRS,0,0,0,0,0,0,0,NO,NO,0,0,NOBPOS,BOTH //一行源数据
3.转换脚本:
oracle@mdsp140:~/convertdata> cat converter.sh
#!/bin/ksh
awk -F \, '{
if (match($1, "[0-9]+"))
{
field1 = $1;
field2 = $2;
field3 = $3;
printf("%s|%s|%s\n", field1, field2, field3);
}
}' ./source/* >> ./target/result.dat
//如果在windows下编写该文件,上传后,出现"^M"提示时,可用以下指领,进行文件过滤;
oracle@mdsp140:~/convertdata>cat -v converter.sh | tr -d "^M" > converter.sh
4.转换后生成的数据文件
oracle@mdsp140:~/convertdata/target> ls
result.dat
oracle@mdsp140:~/convertdata/target> tail result.dat
2|610010200845081|22365000081
5.导库脚本 sqlldr.ctl
load data
infile "./target/result.dat"
append into table import_temp
fields terminated by "|"
trailing nullcols
(HLR_INDEX,IMSI,MSISDN)
6. 创建数据库用户MDSP
7.创建导入的表:
create table import_temp (
HLR_INDEX varchar2(50),
IMSI varchar2(50),
MSISDN varchar2(50))
8.执行导库指令,导库;
//该步骤,应在与ctl文件同级目录,执行,且当前系统用户为oracle
sqlldr userid=mdsp/mdsp control=./sqlldr.ctl
也可用这种格式:
sqlplus mdsp/mdsp@本地命名 control=./sqlldr.ctl //本地命名服务,需要手动进行配置;
相关文章推荐
- 页面数据修改记录保存入库
- 随机读取数据表记录的整理 [转]
- 如何完全卸载MySQL并恢复数据记录
- DataTable中数据记录的统计
- 数据记录文件转换工具
- ipguard控制台加载不到数据(看不到文档操作、网页浏览记录不到问题)
- sql 查出一张表中重复的所有记录数据
- 使用select into outfile "文件"语句导出数据表记录
- 20100901 学习记录:gridview的数据显示格式
- [随笔]一年热点记录,大数据
- Oracle数据分组后取每组的一条记录
- PL/SQL 一个数据对象一个事务(且记录错误信息到处理对象)(rollback,submit)
- mysql插入数据与删除重复记录的几个例子(收藏)
- 记录一则Mysql读取数据问题
- 采购接收入库事务处理数据流
- [学习记录]NSMutableDictionary如何插入Int类型数据
- 从Master.csv 文件恢复通话记录数据
- 关于表单提交的数据记录
- 获取一条记录的数据并生成XML文档
- MySQL--数据表查询记录