好的,所以我有一个我正在尝试运行的脚本,它创建一个带有更新语句的文件并将其通过管道传递给 sqlplus 以执行。我知道更新语句是有效的,它创建发送到 sqlplus 的文件是正确的,因为我只在 SQL Plus 中运行了该代码。当我执行脚本时它只是不起作用。我和我的团队已经看过这个并尝试了多种方法,但就是无法弄清楚为什么它似乎没有执行。任何帮助都会很棒。谢谢!
# Update Cycle DUE_DATE_TIME field to target run date
UPDATE_SQL="UPDATE CYCLE SET DUE_DATE_TIME = to_date('${TARGET_RUN_DATE}', 'YYYYMMDD') - 1"
echo $UPDATE_SQL >> ${WORK_AREA}/update_cycle_table_${PROCESS_ID}.sql
echo "${USER_NAME}@${DATABASE}
set line 200
start ${WORK_AREA}/update_cycle_table_${PROCESS_ID}.sql
commit
exit"|sqlplus -s > /dev/null
if [[ $? -eq 0 ]]
then
print "Updated Cycle successfully\n\n"
fi
好的,所以我解决了这个问题,让它变得更简单一些,而不是仅仅将它写入一个文件并在 SQLPlus 中运行它,我只是在管道内对 SQLPlus 进行了更新。我之前尝试过这样做,但没有成功,但我想这次我所做的一切都奏效了。谢谢各位的意见!