楼主: luosfu

(shell+oacle)牛人们请进,帮忙分析下

[复制链接]
论坛徽章:
1
授权会员
日期:2005-11-08 17:13:39
21#
 楼主| 发表于 2005-8-17 22:34 | 只看该作者
while read a
do
one=`echo $a |sed -n 's/\(.*\)...\(.*\)../\3/'`
while read b
do
two=`echo $b|awk '{print $1}'`
three=`echo $b|awk '{print $2}'`


whlie read cdo
if test $one = $three
then
if test $a = $c
fi
fi
done<fiel1//
done<file2//
done<file3//

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-11-08 17:13:39
22#
 楼主| 发表于 2005-8-17 22:34 | 只看该作者
不知道大家明白我的意思没有

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-11-08 17:13:39
23#
 楼主| 发表于 2005-8-18 00:28 | 只看该作者
现写下生成用户名及表的脚本吧,
明天写下控制文件
#!/bin/bash
#数据导入
FILE_PATH=/oradata5/bill/all/dataok
IMP_PAR=/oradata5/bill/all/shell


#
for foler in huawei siemens bell hg
do
        for city_id in `ls $file_path/$foler`
        do
                for file in `ls $file_path/$foler/$ciyt_id`
                do
                        #file_number=`echo $file |sed -n 's/\(.*\)...\(.*\)../\3/'`
                                while read city_ini
                                do
                                        username=`echo $ciyt_ini |awk '{print $1}'`
                                        number=`echo $ciyt_ini |awk '{print $2}'`
                                                while read table_ini
                                                do
                                                        expression=`echo $table_ini |awk '{print $1}'`
                                                        tablename=`echo $table_ini |awk '{print $2}'`
                                                        if test $city_id=$number &&
                                                                 $file=$expression
                                                         then
                                                         dbname=$useranme
                                                         table=$tablename
                                                         if
                                                done
                                        done
                 done
         done
done

晕了,自写自看,没有人发言,是不是大家不明白我的意思

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
24#
发表于 2005-8-18 15:51 | 只看该作者
那是因为你提供的信息太少

少用描述,多用实例。

比如说 “根据表命名的规律”
这一句话就可以使很多人止步不前。

建议:

1。贴出表结构
2。贴出“表命名的规律”
3。贴出所有不同类型文件内容(每个不同的文件类型至少有一段sample)

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-11-08 17:13:39
25#
 楼主| 发表于 2005-8-18 18:14 | 只看该作者
可能也是,
但真正的数据导入跟表结构没有关系的,导入的表的结构是死的.
大家可以从我的文件分切可以得出用户(因为
for in in 20对应的是用户名.各用户名的表是一样的.有5个表,这5个表通过文件名可以得出...

现在的思路:

如何得用户名.表名.对应的数据文件(数据文件分切是通过 660 661 662 663 668 750 751 752 753 754 755 756 757 758 759 760 762 763 765 766 768 769它分切的.)原文件名可以确定对应的表,通过正则表达式匹配....

今天晚上,我贴个结果,调试要等到明天了

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-11-08 17:13:39
26#
 楼主| 发表于 2005-8-18 18:16 | 只看该作者
13129370635||20|1|1|11|1||0|0|0|0|0|0|008613128226510|0|9||20050805033007|17|36|0||||2||12708|0|0|0|0|0|36|0|0|0|
13244865662||755|1|1|13|0||0|2|0|0|0|2|008613824364202|0|9||20050805033016|17|96|398||||201||5796|0|0|450|0|0|96|0|0|0|
13169144779||662|1|1|11|0||0|0|0|0|0|0|008613148674321|0|9||20050805033026|13|10|0||||163||3946|0|0|0|0|0|10|0|0|0|
13244858854||755|1|1|13|0||0|2|0|0|0|2|00867551860|0|9||20050805033033|

这是分切文件的一些内容

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
27#
发表于 2005-8-19 08:26 | 只看该作者
"这5个表通过文件名可以得出"

这个?
怎么通过文件名得到这五个表?

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
28#
发表于 2005-8-19 08:27 | 只看该作者
不要把目光放在自己这边
你写出一句话,自己非常的理解。但是对于以个看你铁子的人,却未必就一定能理解你说的话。

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-11-08 17:13:39
29#
 楼主| 发表于 2005-8-19 11:38 | 只看该作者
#
for folder in huawei siemens bell hg
do
        for city_id in 20 660 661 662 663 668 750 751 752 753 754 755 756 757 758 759 760 762 763 765 766 768 769
        do
                file_num=`ls $FILE_PATH/$folder/$city_id|wc -l`
                        if [ $file_num -ne 0 ]
                        then
                                for file in `ls $FILE_PATH/$folder/$city_id`
                                do
                               
                                        #file_number=`echo $file |sed -n 's/\(.*\)...\(.*\)../\3/'`
                                        while read city_ini
                                        do
                                                username=`echo $ciyt_ini |awk '{print $1}'`
                                                number=`echo $ciyt_ini |awk '{print $2}'`
                                                        while read table_ini
                                                        do
                                                                expression=`echo $table_ini |awk '{print $1}'`
                                                                tablename=`echo $table_ini |awk '{print $2}'`
                                                                if test $city_id=$number &&
                                                                         $file=$expression
                                                                 #if [ $city_id = $number -a $file = $expression ]
                                                                 then
                                                                 echo $useranme $tablename $FILE_PATH/$folder/$city_id/$file >>$IMP_PAR/TXT.TXT
                                                                 ./oradata5/bill/all/shell/spil_loder.sh $username $tablename $FILE_PATH/$folder/$city_id/$file
                                                                 fi
                                                        done<$IMP_PAR/table.ini
                                        done<$IMP_PAR/city.ini
                                done
                else
                #如果拆分各品牌目录下没有文件,写入入日志
                        echo `date`" $city_id have'nt file">> $IMP_PAR/"`date +%Y%m%d`.log"
                       
                fi
        done
done

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-11-08 17:13:39
30#
 楼主| 发表于 2005-8-19 11:38 | 只看该作者
#参数设置

#$1确定用户名
#$2是确定的表名
#$3导入文件的路径
username=$1
table_name=$2
loder_file=$3


#全局变量设置
FILE_PATH=/oradata5/bill/all/dataok
temp_file=/oradata5/bill/all/shell
#表固定格式路径
table_wh=/oradata5/bill/all/shell/temp_table
#取得文件名
file_name= `awk -F"/" '{print $4}' loder_file`
passwd=abbcc

        #导入参数配制
        echo "load data                            ">>$temp_file/temp.ctl              
        echo "infile '$loder_file'          ">>$temp_file/temp.ctl   
        echo "append into table TB_RECHARGE ">>$temp_file/temp.ctl   
        echo "fields terminated by"|"       ">>$temp_file/temp.ctl
        sed "s/\[FILENAME\]/'\$file_name'/g" table_wh/$table_name >>$temp_file/temp.ctl

        #倒入文件
        echo "START PROCESS FILE:$DATA_FILE,"
        sqlldr $username/$passwd control=$temp_file/temp.ctl
        RET_CODE=`echo $?`
        echo "RESULT:"
        case "$RET_CODE" in
        0) echo "$DATA_FILE--SQL*Loader execution successful" ;;
        1) echo "$DATA_FILE--SQL*Loader execution exited with EX_FAIL, see logfile" ;;
        2) echo "$DATA_FILE--SQL*Loader exectuion exited with EX_WARN, see logfile" ;;
        3) echo "$DATA_FILE--SQL*Loader execution encountered a fatal error" ;;
        *) echo "$DATA_FILE--unknown return code";;
        esac

          rm  $temp_file/temp.ctl

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表