麻烦前辈帮写一个shell,功能是读取文本文件的数据后插入oracle数据库,需要用到awk
已知一个文本文件test.txt存储了一张数据表,字段名称分别是:名称、年龄、编号。字段之间用!(感叹号)做为分割符。例如第一行是:john!25!10余下行类似,写一个...
已知一个文本文件test.txt 存储了一张数据表,字段名称分别是:名称、年龄、编号。字段之间用!(感叹号)做为分割符。例如第一行是:john!25!10余下行类似,写一个shell,功能是将这个文本文件的内容写入oracle数据库,需要用到awk来实现,至于oracle用到的一些环境可以先自行虚拟一下,例如用户名/密码可以先用 username/password代替 数据库名称用dbname代替,表名称用tablename代替等等,需要替换的麻烦注释一下.
展开
6个回答
展开全部
#
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 &
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 &
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个没必要用SHELL AWK自己写,完全可以用sqlldr来完成。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大概思路 你自己替换吧
#!/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
#!/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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每日定时执行的话就写个脚本用sqlldr搞进去,要是偶儿搞一次就复制粘贴,或者搜一把导入的小软件很方便的,网上很多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵,这个不难。价格100元,可以hi我!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询