sqlplus 退出并传递任意数字

sqlplus exit and pass any number

我发现 sqlplus 的退出函数应该与变量和绑定变量一起使用。最后,即使是“exit success”和“exit failure”选项结合 if-decision 也能完成这项工作。我尝试了一些变体:

test.sql:

L_return INT;
l_return:=test_func_returns_1();
exit l_return;
/

但这一切都没有运行正常。我想,一旦我用匿名块包装我的代码,出口将不再有效,对吧?你能帮助我吗? 许多问候, 彼得

最后,与其说是 EXIT,不如说是变量的问题。绑定变量、输出参数和匿名块缩写的组合有效:

test_package:

procedure test (some_var OUT INT) As
begin
   some_var:= 77;
end;

test.sql:

variable my_var number
execute test_package.test(:my_var)
exit :my_var
/

test.cmd

call sqlplus %dbuser% test.sql
echo Result %errorlevel% >> %log%

日志

Result 77

PS:根据https://blogs.oracle.com/opal/sqlplus-101-substitution-variables#3,应该可以全局定义绑定变量并将它们设置在匿名块中。但是我 运行 这样做出错了。