sql loader导入数据如何把上传文件夹名作为一列插入,文件夹里是需要的txt文件,怎么用shell实现?
之前在网上看到有把文件名作为一列插入的,具体怎么实现的不清楚,现在把文件夹名作为一列插入不知道如何实现?

解决方案 »

  1.   


    ---字段名 CONSTANT 'J:\Data\1.txt'   默认路径直接写在control文件里
    load data infile 'J:\1.txt' append into table tb fields terminated by ',' trailing nullcols (a,b,c CONSTANT 'HJM' )
      

  2.   

    //字段名 CONSTANT 'J:\Data\1.txt'   默认路径直接写在control文件里
    load data infile 'J:\1.txt' 
    append into table tb 
    fields terminated by ',' 
    trailing nullcols (a,b,c CONSTANT 'HJM' )
      

  3.   

    这是把新增加的字段--文件夹名写死了吧,如果文件夹名字是变化的呢,意思就是我要通过shell来自动取这个文件夹的名称,然后把他作为要插入表的的一列的值
      

  4.   

    sqlldr导入的时候肯定是一个文件一个文件的导入啊,你变一个数据文件,就换一次呗,又不复杂!我觉得他数据文件应该不会太多的
      

  5.   

    sqlldr导入的时候肯定是一个文件一个文件的导入啊,你变一个数据文件,就换一次呗,又不复杂!我觉得他数据文件应该不会太多的
    sqlldr userid=$db_user/$db_pswd@$db_tnsn control=$ctl_path/${column}.ctl data=$data_path/${column}.txt bad=$bad_path/${column}.bad log=$log_path/${column}.log rows=50000 bindsize=2048000 direct=ture
    这是sqlload脚本,每个文件夹下面都有几百张表,sqlload导入的时候需要把这些表都导入进去,如果写死的话不好实现这个功能,而且具体的文件夹名称是随着日期变化而变化的
      

  6.   

    load data
    characterset UTF8
    truncate into table O_HX_KYZB_XJKHDZ
    REENABLE DISABLED_CONSTRAINTS
    fields terminated by '~@~'
    trailing nullcols
    (FARENDMA ,
    LAOKEHUH ,
    XINKEHUH ,
    KEHUZWMC ,
    KEHUYWMC
    )
    这是其中的一个CTL文件,每个文件夹下大概有三百个这个文件,现在TXT文件存在放目录:/home/weblogic/ods_data/data/hx下,hx这个子目录名称是随时变化的,现在要把这个随时变化的目录名称添加到表的最后一列,具体用shell如何操作?
    二楼的朋友给了个思路,如果把trailing nullcols (a,b,c CONSTANT 'HJM' )中的'HJM'替换为一个可以执行的取值命令呢,不知道可以吗?
      

  7.   

    我试了下,test CONSTANT  `ls /home/weblogic/ods_data/data`这一段,用在这里是报错的,不知道用什么办法可以把命令加到ctl文件里进行处理
      

  8.   


    #变量赋值
    aa = /home/weblogic/ods_data/data/·ls /home/weblogic/ods_data/data/·调用变量 ${aa}
      

  9.   


    #变量赋值
    aa = /home/weblogic/ods_data/data/·ls /home/weblogic/ods_data/data/·调用变量 ${aa}

    就是在ctl文件里,有一个字段的值是变量,怎么赋值给他,你说的是在ctl文件添加一个变量赋值么,我这样试过还是报错
    LOAD DATA
    CHARACTERSET UTF8
    TRUNCATE INTO TABLE O_HX_KAPP_HUOBCS
    REENABLE DISABLED_CONSTRAINTS
    FIELDS TERMINATED BY '~@~'
    aa=`ls /home/weblogic/ods_data/data`
    TRAILING NULLCOLS
    (FARENDMA ,
    FENHBIOS ,
    BZBIEMNG ,
    HUOBDAIH ,
    HBMCHENG ,
    HUOBZMSX ,
    HUOBFHAO ,
    GUOBIEDM ,
    FUBIJINW ,
    PJZDWEIS ,
    ZUIXHBDW ,
    ZUIXJXDW ,
    ZUIXJZDW ,
    ZJFENWEI ,
    XJINQXXE ,
    HUOBIDJI ,
    JIARUBZZ ,
    BIZHONGG ,
    YINGLBHB ,
    SHENMING ,
    WEIHGUIY ,
    WEIHJIGO ,
    WEIHRIQI ,
    WEIHSHIJ ,
    SHIJCHUO ,
    JILUZTAI ,
    test CONSTANT ${aa}
    )
      

  10.   

    不能在控制文件即ctl文件里把变量值赋值给字段吗,考虑到控制文件大概在300左右,不知道动态生成控制文件方便么?
      

  11.   

    想了下,你的ctl文件里面不能用这样的变量的,这个变量是shell里面的,传入ctl里面的要是常量,想办法替换ctl最后一行,这个用shell是可以实现的