关于如何通过cx_oracle调用存储过程,oracle, IBM官网上已有好几篇文章做了说明,但是无一例外,都没有提到如何获取存储过程的返回值,下例示意如何获取存储过程的返回值
假设有一个存储过程(代码略),有唯一一个output值,即为存储过程返回值,返回-1为执行失败,1为成功
声明python类型的存储过程返回值
result= cursor.var(cx_Oracle.STRING)
调用存储过程
x =cursor.callproc("proc_test",[result])
#print result
不可直接使用result得到存储过程返回值,要调用getvalue()
if result.getvalue()== '1':
print u'成功!'
else:
print u'失败!'
参考:
结合使用 Oracle Database 11g 和 Python