这篇文章主要介绍了Python使用cx_Oracle调用Oracle存储过程的方法,结合具体实例分析了Python中通过cx_Oracle调用PL/SQL的具体步骤与相关操作技巧,需要的朋友可以参考下
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下:
这里主要测试在Python中通过cx_Oracle调用PL/SQL。
首先,在数据库端创建简单的存储过程。
create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) is begin o_msg := i_user ||', Good Morning!'; end;
然后,开始在Python命令行中进行存储过程调用。
import cx_Oracle as cx conn = cx.connect('database connecting string') cursor = conn.cursor() #声明变量 user = 'Nick' #plsql入参 msg = cursor.var(cx_Oracle.STRING) #plsql出参 #调用存储过程 cursor.callproc('test_msg', [user, msg]) #['Nick', 'Nick, Good Morning!'] #打印返回值 print msg #<cx_Oracle.STRING with value 'Nick, Good Morning!'> print msg.getvalue() #Nick, Good Morning! #资源关闭 cursor.close() conn.close()
延伸阅读:
存储过程、cx_Oracle、Python的对象类型之间存在转换关系。具体如下:
Oracle | cx_Oracle | Python |
VARCHAR2, NVARCHAR2, LONG | cx_Oracle.STRING | str |
CHAR | cx_Oracle.FIXED_CHAR | str |
NUMBER | cx_Oracle.NUMBER | int |
FLOAT | cx_Oracle.NUMBER | float |
DATE | cx_Oracle.DATETIME | datetime.datetime |
TIMESTAMP | cx_Oracle.TIMESTAMP | datetime.datetime |
CLOB | cx_Oracle.CLOB | cx_Oracle.LOB |
BLOB | cx_Oracle.BLOB | cx_Oracle.LOB |
Atas ialah kandungan terperinci Python如何使用cx_Oracle调用Oracle存储过程的示例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!