gpt4 book ai didi

oracle - SQLPLUS 输出到 shell 脚本不返回值

转载 作者:行者123 更新时间:2023-12-01 11:04:14 24 4
gpt4 key购买 nike

我正在尝试将 sqlplus 输出返回到 shell 脚本。这听起来可能很简单,但我已经在线搜索了一段时间,但无法让我的脚本运行。

这是我的 pl/sql 脚本:

SET SERVEROUTPUT ON

DECLARE
X_RETURN_MSG VARCHAR2(32767);
X_RETURN_CODE NUMBER;

BEGIN
X_RETURN_MSG := NULL;
X_RETURN_CODE := 5;

COMMIT;
END;

EXIT X_RETURN_CODE;

这是我的 shell 脚本:

sqlplus -s user/pwd <<EOF
@../sql/tester.sql
EOF
RETVAL=$?
echo $RETVAL

$RETVAL 总是返回 0,即使我有 X_RETURN_CODE := 5

最佳答案

X_RETURN_CODE 在声明它的 PL/SQL block 范围之外没有任何意义。您需要使用 SQLPlus 绑定(bind)变量。

SQL> VARIABLE return_code NUMBER
SQL> BEGIN
2 :return_code := 5;
3 END;
4 /

PL/SQL procedure successfully completed.

SQL> EXIT :return_code
Disconnected from Oracle Database 10g Release 10.2.0.4.0 - Production
> echo $?
5

关于oracle - SQLPLUS 输出到 shell 脚本不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7716223/

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