本文實(shí)例講述了Python使用cx_Oracle調(diào)用Oracle存儲過程的方法。分享給大家供大家參考,具體如下:
這里主要測試在Python中通過cx_Oracle調(diào)用PL/SQL。
首先,在數(shù)據(jù)庫端創(chuàng)建簡單的存儲過程。
create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) isbegin o_msg := i_user ||', Good Morning!';end;
然后,開始在Python命令行中進(jìn)行存儲過程調(diào)用。
import cx_Oracle as cxconn = cx.connect('database connecting string')cursor = conn.cursor()#聲明變量user = 'Nick' #plsql入?yún)sg = cursor.var(cx_Oracle.STRING) #plsql出參#調(diào)用存儲過程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!#資源關(guān)閉cursor.close()conn.close()延伸閱讀:
存儲過程、cx_Oracle、Python的對象類型之間存在轉(zhuǎn)換關(guān)系。具體如下:
| 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程序設(shè)計有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選