在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_Orace 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

NUMBER

cx_Oracle.NUMBER

int

FLOAT

float

DATE

cx_Oracle.DATETIME

datetime.datetime

TIMESTAMP

cx_Oracle.TIMESTAMP

CLOB

cx_Oracle.CLOB

cx_Oracle.LOB

BLOB

cx_Oracle.BLOB


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章