在Python中使用cx_Oracle调用Oracle存储过程
admin
2023-05-10 16:21:46
0

本文测试在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 #
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


相关内容

热门资讯

动物园老虎走路颤颤巍巍,园方回... 5月13日,一位网友称在山东德州“泉城欧乐堡”虎餐厅,关注到现场老虎身体发黑,其中一只颤颤巍巍、走路...
热水器40升可以洗多久 一般来说40升的热水器可以洗20-40分钟左右的时间,有差距是因为每个人洗澡时对水的温度要求不同,比...
2020年流行什么样的壁布 2020年最流行的是田园风格的壁布,因为体验风格的壁布适合大部分的装修风格,不管你家里是中式装修还是...
热水器50升和60升哪个实用 1、一般三口之家使用的是50升的,但是机器在加热过程中也会消耗一部分水,所以选60升的也可以。2、以...
煤气热水器不恒温怎么办 煤气热水器不恒温是很常见的问题,会给我们的生活带来很大的不便。这种情况的出现可能是由于多种因素引起的...
恒温热水器没有温度怎么办 如果您的恒温热水器没有温度,那么这可能是一个很大的问题,因为您无法使用这个热水器来满足您的热水需求。...
沈伯洋不认“抗中保台”?徐巧芯... 海峡导报综合报道 民进党13日正式征召民进党民代沈伯洋参选台北市长,蓝绿对决态势至此成形。对此,国民...
宝马线上股东大会“技术故障”背... 【文/观察者网 张家栋 编辑/高莘】当地时间5月13日,据德国《世界报》报道,宝马集团年度股东大会因...
线上预约+线下收购,十部门联合... 2026年夏粮旺季收购即将全面启动。近日,国家发展改革委、国家粮食和物资储备局等十部门联合发出通知,...
赖清德再度缺席弹劾案审查会,国... 台民意机构于5月14日继续召开针对台湾地区领导人赖清德弹劾案的第二次审查会,赖清德与13日一样未出席...