【发布时间】:2017-08-15 15:59:04
【问题描述】:
我有以下使用 BTEQ 执行 Teradata 存储过程的 shell 脚本。存储过程返回一个名为 BATCH_KEY 的 varchar。您能否解释一下如何:
在 BTEQ 脚本中捕获存储过程的输出?将输出传递给 shell 脚本?让 shell 脚本自己返回输出值?
echo "Check if number of parameters is correct"
if [ "$#" -ne 4 ]; then
echo "You must enter exactly 4 command line arguments"
exit 0
fi
echo "Call bash profile"
source ~/.bash_profile
echo "Setting parameters value for the stored procedure"
in_P_BATCH_OWNER=$1
in_P_ACTION=$2
in_P_START_DATETIME=$3
in_P_END_DATETIME=$4
echo "Logging into Teradata"
Server=server
LoginId=user
Password=password
DbName=db
echo "Calling stored procedure"
bteq<<EOF
.logon ${Server}/${LoginId},${Password};
CALL $DbName.SP_AUDIT_BATCH('$in_P_BATCH_OWNER', '$in_P_ACTION', '$in_P_START_DATETIME', '$in_P_END_DATETIME');
.logoff;
.quit;
EOF
if [ $? == 0 ]
then
echo "Script executed sucessfully"
exit 1
else
echo "Script executed with failure"
exit 0
fi
【问题讨论】:
标签: shell stored-procedures teradata