a bteq shell wrapper

本文介绍了一个用于执行 BTEQ SQL 文件的 shell 脚本。该脚本通过一系列命令处理 SQL 文件,并使用 BTEQ 工具执行 SQL 语句。它还记录了执行过程中的所有输出以便于调试。

# bteqshellwrapper.ksh

 

USAGE_pet_bteq(){
cat << EOI
#USAGE: bteqshellwrapper.ksh SQLFILE
#PARAMETER:
#          1. SQLFILE - the sql file name to be executed by bteq, without path.
EOI
}

if [ $# -ne 1 ]
then
 USAGE_pet_bteq
    exit 1
fi

if [ -f "$HOME"'/bin/var.setup' ]
then
 . "$HOME"'/bin/var.setup'
fi

SQLFILE="${SQLROOT}"'/'"$1"
if [ ! -f ${SQLFILE} ]
then
 echo "SQL File doesn't exist: ""${SQLFILE}"
    exit 2 
fi

SQLFILE="${SQLROOT}"'/'"$1"

RUN_SQL_TMP_FILE="${TMPROOT}"'/'"$1"'.tmp'
echo "cat <<EOF" > ${RUN_SQL_TMP_FILE}
cat ${SQLFILE} >> ${RUN_SQL_TMP_FILE}
echo "/nEOF" >> ${RUN_SQL_TMP_FILE}

. ${RUN_SQL_TMP_FILE} > "${RUN_SQL_TMP_FILE}"'.2'
mv "${RUN_SQL_TMP_FILE}"'.2' ${RUN_SQL_TMP_FILE}

RUN_SQL_LOGFILE="${LOGROOT}"'/'"$1"'.'`date +"%y%m%d%H%M%S"`'.log'

 


echo "########BEGIN INVOKING BTEQ########"
set +e
bteq <<EOF | tee ${RUN_SQL_LOGFILE}
.SET ERROROUT STDOUT
.set session transaction btet
.logon ${TDP}/${TD_USERNAME},${TD_PASSWORD}
select 'SESS', session;
.maxerror 1
.run file=${RUN_SQL_TMP_FILE};
EOF
rcode=$?
set -e


if [ rcode -ne 0 ]
then
    echo "Error executing SQL:"
    echo
    #Log File ...
    #cat ${RUN_SQL_LOGFILE}
    exit 3
fi

echo "########END INVOKING BTEQ########"
exit 0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值