gpt4 book ai didi

oracle - 来自 Unix 的执行消息 Oracle sqlplus

转载 作者:行者123 更新时间:2023-12-01 09:44:36 27 4
gpt4 key购买 nike

我有一个从请求密码的 shell 连接到 Oracle sqlplus 的进程,然后按以下方式开始执行存储过程:

echo -e "Enter Password"
read -s pass

$ORACLE_HOME/bin/sqlplus -s -l /nolog << EOF >> $log_deploy
connect $schema/$pass@$db
@$sql/main.sql;
EOF

事实上,这个过程的持续时间是可变的,它是由运算符(operator)从服务器的控制台执行的。

有什么方法可以每 10 分钟通知一次运算符(operator),例如 “进程继续执行”?因为一旦进入 sqlplus 就会保留在其中,直到 sp 的执行结束并返回到控制台。

有什么建议或想法吗?

最佳答案

将 sqlplus heredoc 置于后台。等待最后一个后台进程 id ($!) 完成并通过检查其完成情况 sleep 几秒钟(顺便说一下,10 分钟是一个很长的间隔)

intrvl=100
sqlplus <<EOF &
input
EOF
PID=$! #get the pid of the last background process.

while [ 1 ]
do
if ps -p $PID > /dev/null
then
echo "The process continues in execution"
sleep $intrvl
else
break
fi
done

话虽如此,一个好的方法应该是将监控部分排除在处理代码之外。

关于oracle - 来自 Unix 的执行消息 Oracle sqlplus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52169148/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com