能够通过bat/dos 取得plsql返回值么?
比如使用SQLPLUS 调用xxx.sql文件。
xxx.sql文件里有方法的返回值。我怎么能够在bat/dos里取得这个值,
类似bat/dos里的errorlevel一样,对其进行判断。
期待高手指教!
比如使用SQLPLUS 调用xxx.sql文件。
xxx.sql文件里有方法的返回值。我怎么能够在bat/dos里取得这个值,
类似bat/dos里的errorlevel一样,对其进行判断。
期待高手指教!
column return_code new_value rcode
select :bindvariable return_code from dual;
exit rcode
这样就会以所得到的返回值作为返回码退出sqlplus,在bat中就可以通过%ERRORLEVEL%得到那个返回码。
column return_code new_value rcode 这句话是什么意思?select :bindvariable return_code from dual; 查询语句的时候还需要输入值么?查询的两个值之间为什么不用逗号阿?
请赐教阿!谢谢。
您要回答的问题正是我要问的问题。
的意思是将名为return_code列的值保存到rcode变量中,注意这个变量是类似用define定义的变量,不是var定义的bindvariable。
select :bindvariable return_code from dual;
的意思是把名为bindvariable的绑定参数以列名return_code输出,由于之前通过column语句定义了return_code列的值保存到rcode变量中,所以就等于把名字叫bindvariable的绑定参数的值保存rcode变量
var i number
exec p('INPUT',:i)
column return_code new_value rcode
select :i return_code from dual;
exit rcodebat的内容如下
sqlplus username/password@servicename @SQL脚本名
echo %ERRORLEVEL%
sqlplus user/password@testdb @test.sql
echo %errorlevel%【test.sql】
WHENEVER SQLERROR EXIT 9
var i number
exec :i := test_function
exit :i【test_function】
CREATE OR REPLACE FUNCTION TEST_FUNCTION RETURN NUMBER IS
wk_return number;
BEGIN
wk_return := 0 ;
return wk_return;
END;
/