本文實例講述了Python使用cx_Oracle調用Oracle存儲過程的方法。分享給大家供大家參考,具體如下:
這里主要測試在Python中通過cx_Oracle調用PL/SQL。
首先,在數據庫端創建簡單的存儲過程。
1
2
3
4
|
create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) is begin o_msg := i_user || ', Good Morning!' ; end ; |
然后,開始在Python命令行中進行存儲過程調用。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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 |
希望本文所述對大家Python程序設計有所幫助。
原文鏈接:http://blog.csdn.net/pierre_/article/details/45028177