📄 load.txt
字号:
USAGE="usage : $0 -u user/passwd -t tablename [-f path] [-a] [-p sepchar]"INFILE="./myload.txt"uflag=0tflag=0aflag=0fflag=0SEPCHAR='|'while getopts :au:t:f:p: ido case $i in a ) aflag=1;; u ) uflag=`expr $uflag + 1` USER=$OPTARG;; t ) tflag=`expr $tflag + 1` TABLE=$OPTARG if [ $fflag -ne 1 ] then INFILE=${OPTARG}.txt fi ;; f ) fflag=`expr $fflag + 1` INFILE=$OPTARG;; p ) SEPCHAR=$OPTARG;; ? ) echo $USAGE exit 2;; esacdoneif [ $uflag -ne 1 ]then echo $USAGE exit 2fiif [ $tflag -ne 1 ]then echo $USAGE exit 2fisqlplus $USER<<! >/tmp/$TABLE.descdesc $TABLE!echo LOAD DATA >/tmp/$TABLE.ctlecho INFILE \'$INFILE\' >>/tmp/$TABLE.ctlecho BADFILE \'$TABLE.bad\' >>/tmp/$TABLE.ctlecho DISCARDFILE \'$TABLE.dsc\' >>/tmp/$TABLE.ctlecho DISCARDMAX 50 >>/tmp/$TABLE.ctlif [ $aflag -eq 1 ]then echo INTO TABLE $TABLE TRUNCATE >>/tmp/$TABLE.ctlelse echo INTO TABLE $TABLE APPEND >>/tmp/$TABLE.ctlfiecho FIELDS TERMINATED BY \'$SEPCHAR\' >>/tmp/$TABLE.ctlecho '(' >>/tmp/$TABLE.ctlflag=0iflag=0sed -e'/^$/d' /tmp/$TABLE.desc|while read line do head=`expr "$line" : "\(....\).*"` if [ $head = "SQL>" ] then if [ $flag -eq 0 ] then flag=4 else break fi fi if [ $flag -gt 1 ] then iflag=1; flag=`expr $flag - 1` fi if [ $flag -eq 1 ] then if [ $iflag -ne 0 ] then iflag=0 else echo , fi head=`expr "$line" : "^[ ]*\([A-Z_][A-Z_0-9]*\).*"` echo $head fidone >>/tmp/$TABLE.ctlecho ')' >>/tmp/$TABLE.ctlsqlldr $USER /tmp/$TABLE.ctl#rm /tmp/$TABLE.desc#rm /tmp/$TABLE.ctl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -