麻烦前辈帮写一个shell,功能是读取文本文件的数据后插入oracle数据库,需要用到awk

已知一个文本文件test.txt存储了一张数据表,字段名称分别是:名称、年龄、编号。字段之间用!(感叹号)做为分割符。例如第一行是:john!25!10余下行类似,写一个... 已知一个文本文件test.txt 存储了一张数据表,字段名称分别是:名称、年龄、编号。字段之间用!(感叹号)做为分割符。例如第一行是:john!25!10余下行类似,写一个shell,功能是将这个文本文件的内容写入oracle数据库,需要用到awk来实现,至于oracle用到的一些环境可以先自行虚拟一下,例如用户名/密码可以先用 username/password代替 数据库名称用dbname代替,表名称用tablename代替等等,需要替换的麻烦注释一下. 展开
 我来答
searchsprit
2010-12-08 · TA获得超过111个赞
知道小有建树答主
回答量:136
采纳率:100%
帮助的人:130万
展开全部
#
awk -F'!' '{print"insert into tablename values ("$3",'\''"$1"'\'',"$2");"}' stu.dat > stu.sql;
echo 'commit;'>>stu.sql;
cat stu.sql;
#
nohup sqlplus username/password@dbname < stu.sql &
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
spiderrobot
2010-12-07 · TA获得超过871个赞
知道小有建树答主
回答量:930
采纳率:0%
帮助的人:574万
展开全部
这个没必要用SHELL AWK自己写,完全可以用sqlldr来完成。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yjjgenery
2010-12-07 · TA获得超过324个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:165万
展开全部
大概思路 你自己替换吧

#!/bin/bash
clear
path=test.txt

dir()
{
sqlplus / as sysdba >> logname.log <<EOF
insert into tablename values($1,$2,$3);
EOF
}
while read line
do
dir $line
done<$path
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xfchl2
2010-12-08
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
每日定时执行的话就写个脚本用sqlldr搞进去,要是偶儿搞一次就复制粘贴,或者搜一把导入的小软件很方便的,网上很多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sbgefepq
2010-12-07 · TA获得超过4631个赞
知道小有建树答主
回答量:956
采纳率:0%
帮助的人:527万
展开全部
呵呵,这个不难。价格100元,可以hi我!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式