昨天一个客户又有一大堆的数字,用EXECL保存发来,要我提取系统里的数据,因上次有类似提取过一次,不过忘了保存步骤了,只能重头再做,这一次记录下。
类似为
181TF010A0229021
181TF010B0229021
528304237
528304240
528433591
528563457
528613338
528613344
528613348
528613350
528652286
528682242
528682245
528682248
529374237
529374241
529374242
.......
非常多,也有重复的列在这之内,因考虑到SQL只能用in ,但用in 只能条件为1000个之下,于是我在LINUX环境下将文本格式下,再输出。
vi test.sql
:%s/^/','/ 替换
sed s/[[:space:]]//g test.sql 删除空格
sed 'N;s/.*\n//' text.sql > text.txt 删除重复行
sed -n '$=' text.txt 统计行数
sed -n '1,800p' text.txt >text.txt1 截取行数
tr -s '\r\n ' ' ' < text.txt2 >bl.sql2 删除移动
sed s/[[:space:]]//g bl.sql2 > bl.sql22 删除空格
之后再取下**.sql22的文件用UltraEdit文件打开,再复制到PL/SQL进行操作,就可完成。
select s.vsl "船名",
s.vvd "航次",
v.vsl_name "中文名",
v.vsl_eng_name "英文名",
s.bl_no "提单号",
s.cntr || s.chk_dgt "箱号",
s.eqp_type "箱型",
s.opr "箱主",
s.activity "装卸类型"
from stow_hist s, vessel v
where s.vsl = v.vsl
and s.bl_no in ( )
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15242702/viewspace-666827/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15242702/viewspace-666827/