Python使⽤cx_Oracle模块操作Oracle数据库--通过sql语句和存
储操作
Python使⽤cx_Oracle调⽤Oracle存储过程的⽅法⽰例
Python使⽤cx_Oracle模块操作Oracle数据库
Oracle存储过程及调⽤
1、创建存储
带输⼊、输出参数的存储过程语法:
create procedure存储过程名称(随便取) (变量1 in(或out) 数据类型,变量2 in(或out) 数据类型,...,变量n in(或out) 数据类型)
is
在这⾥可以定义常量、变量、游标、复杂数据类型这⾥可以定义变量、常量
begin
执⾏部分
end;
create procedure procedure_3(v_i in number,v_j in number ,v_m out number)
is
begin
dbms_output.put_line('');
v_m:=v_i - v_j;
dbms_output.put_line(v_i||' - '||v_j||' = '||v_m);
end;
2、调⽤存储
declare
v_param1 number(5):=2;
v_param2 number(5):=8;
v_result number(5);
begin
--调⽤上⾯案例⼀的存储过程
procedure_1();
--调⽤上⾯案例⼆的存储过程
procedure_2(v_param1,v_param2);
--调⽤上⾯案例三的存储过程
procedure_3(v_param1,v_param2,v_result);
oracle手动调用存储过程dbms_output.put_line(v_result);
end;
3、python去调⽤存储:
import cx_Oracle
conn =t('MDM_TEST/mdm#123@172.17.0.128:1521/CSSY')
cur = conn.cursor()
# 声明变量
# user='Nick'  # plsql⼊参
org_code='01'
sysm1_code='HIS0311'
sysm2_code='HIS0120'
sysm3_code='HIP0104'
sysm4_code='HIP0105'
# 调⽤存储过程
try:
cur.callproc('P_DEMO', [org_code, sysm1_code,sysm2_code,sysm3_code,sysm4_code])  # ['Nick', 'Nick, Good Morning!']
except Exception as e:
raise e
# 资源关闭
cur.close()
conn.close()