Python使用cx_Oracle模块操作Oracle数据库--通过sql语句和存储操作

 https://www.jb51.net/article/125160.htm?utm_medium=referral  Python使用cx_Oracle调用Oracle存储过程的方法示例

https://www.jb51.net/article/139627.htm  Python使用cx_Oracle模块操作Oracle数据库

https://www.jb51.net/article/116017.htm  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('procedure_3.......');
    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);
    dbms_output.put_line(v_result);
end;

 3、python去调用存储:

import cx_Oracle

conn =cx_Oracle.connect('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()

 

转载于:https://www.cnblogs.com/xyao1/p/10899272.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值