#!/bin/ksh
#Define variable
V_NUM_COUNTER=0
#Exitif there isno parameter passed.
if[$#=0]
then
echo "========================================="
echo "No parms were passed to the Shell Program"
echo "========================================="
exit1
fi
#Get the parameter value
while["$V_NUM_COUNTER"-le $#]
do
echo "============================="
echo "Show passed parameter $V_NUM_COUNTER : "
echo "============================="
case"$V_NUM_COUNTER"in
0) echo "$0";;
1) echo "$1"
V_CHR_DB_CONN="$1";;
2) echo "$2";;
3) echo "$3";;
4) echo "$4";;
5) echo "$5"
V_CHR_CTL_FILE="$5";;
6) echo "$6"
V_CHR_DATA_FILE="$6";;
*) echo " Not parm 0 thru 8";;
esac
V_NUM_COUNTER=`expr $V_NUM_COUNTER +1`
done
######Print file information######
echo "=============================="
echo "Control file = $V_CHR_CTL_FILE"
echo "Data file = $V_CHR_DATA_FILE"
echo "=============================="
######Parameter validation######
if[!-f $V_CHR_CTL_FILE ]
then
echo "========================================="
echo "Control file: $V_CHR_CTL_FILE is invalid!"
echo "========================================="
exit1
fi
if[!-f $V_CHR_DATA_FILE ]
then
echo "======================================="
echo "Data file: $V_CHR_DATA_FILE is invalid!"
echo "======================================="
exit1
fi
######Start sqlldr######
echo "======================="
echo "Start to load data....."
echo "======================="
sqlldr userid=$V_CHR_DB_CONN control=$V_CHR_CTL_FILE data=$V_CHR_DATA_FILE
if[$?-eq 0]
then
echo "=========================="
echo "Loading Data Successfully!"
echo "=========================="
exit0
else
echo "============================================"
echo "Loading data failed. Please check log file!"
echo "============================================"
exit1
fi
本文介绍了一个使用Shell脚本处理命令行参数的方法,并演示了如何利用这些参数进行SQL数据加载。脚本首先检查是否传递了参数,然后依次显示每个参数值,并将特定参数赋值给数据库连接字符串、控制文件路径及数据文件路径变量。之后验证控制文件和数据文件是否存在,最后调用SQL*Loader命令执行数据加载。

4万+

被折叠的 条评论
为什么被折叠?



