下面是我写的一个shell脚本,来调用sqlload函数将文本导入到数据库表spms_sp_temp中,其中需要导入的文本文件放到sp/data下,导入后产生的日志文件放在sp/log下,生成的控制文件放在sp/ctl目录下。脚本内容如下:
#!/bin/sh
create_customer_file()
{
echo "LOAD DATA
INFILE 'sp/data/$1'
INTO TABLE zxdbm_ismp.spms_sp_temp
APPEND
FIELDS TERMINATED BY \"|\"
TRAILING NULLCOLS
(SPNAME CONSTANT,SPCODE,SUBSCRIBEURL,UNSUBSCRIBEURL,ACCESSNO,RESOUCESTARTTIME)
" >sp/ctl/$1.ctl
}for file in $( ls *.* 2>/dev/null )
do
if [ -s $file ]
then
echo "正在导入文件[$file] ..."
create_customer_file $file
sqlldr zxdbm_ismp/zxin_smap@$DB_SERV control="sp/ctl/$file.ctl" log="sp/log $file.log" fi
done
echo "导入结束。"
表spms_sp_temp的所有字段:SPNAME ,SPCODE,SUBSCRIBEURL,UNSUBSCRIBEURL,ACCESSNO,RESOUCESTARTTIME现在想实现下面2个需求:【1】对于SPCODE字段,我想通过在调用我写的shell时,在外部输入(入./test.sh 10083),导入的时候将10083导入到spms_sp_temp表中的SPCODE字段【2】对于ACCESSNO字段,我想在用shell调用sqlload的时候,将其设置为定值1,导入到spms_sp_temp表中后,ACCESSNO字段的值为1我在网上查了以天资料,没有找到解决办法,希望大家能帮帮我,真的,我很困惑!谢谢!
#!/bin/sh
create_customer_file()
{
echo "LOAD DATA
INFILE 'sp/data/$1'
INTO TABLE zxdbm_ismp.spms_sp_temp
APPEND
FIELDS TERMINATED BY \"|\"
TRAILING NULLCOLS
(SPNAME CONSTANT,SPCODE,SUBSCRIBEURL,UNSUBSCRIBEURL,ACCESSNO,RESOUCESTARTTIME)
" >sp/ctl/$1.ctl
}for file in $( ls *.* 2>/dev/null )
do
if [ -s $file ]
then
echo "正在导入文件[$file] ..."
create_customer_file $file
sqlldr zxdbm_ismp/zxin_smap@$DB_SERV control="sp/ctl/$file.ctl" log="sp/log $file.log" fi
done
echo "导入结束。"
表spms_sp_temp的所有字段:SPNAME ,SPCODE,SUBSCRIBEURL,UNSUBSCRIBEURL,ACCESSNO,RESOUCESTARTTIME现在想实现下面2个需求:【1】对于SPCODE字段,我想通过在调用我写的shell时,在外部输入(入./test.sh 10083),导入的时候将10083导入到spms_sp_temp表中的SPCODE字段【2】对于ACCESSNO字段,我想在用shell调用sqlload的时候,将其设置为定值1,导入到spms_sp_temp表中后,ACCESSNO字段的值为1我在网上查了以天资料,没有找到解决办法,希望大家能帮帮我,真的,我很困惑!谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货