本文实例讲述了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_Oracle 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 | 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相关内容感兴趣的读者可查看本站专题:《Python常见数据库操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
本文向大家介绍asp.net中调用oracle存储过程的方法,包括了asp.net中调用oracle存储过程的方法的使用技巧和注意事项,需要的朋友参考一下 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程是数
本文向大家介绍PHP使用PDO调用mssql存储过程的方法示例,包括了PHP使用PDO调用mssql存储过程的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP使用PDO调用mssql存储过程的方法。分享给大家供大家参考,具体如下: 数据库中已创建存储过程user_logon_check, PHP调用示例如下, 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pd
我刚开始冬眠。我试图通过Hibernate调用oracle存储过程。我可以按照一些步骤通过Hibernate调用过程吗。 提前谢了。
下面是我的Oracle存储过程, 我得到以下异常:hibernate:{CALL REPORT_HIBERNATE(?)}org.hibernate.exception.GenericJDBcException:无法执行查询...并且由:java.sql.sqlException:无效的列索引引起 Plz让我知道在Spring中我将如何使用Hibernate注释调用这个存储过程??
我有一个非常复杂的oracle存储过程,它搜索和检索一些数据。该过程返回一个输出参数-oracle游标。我通过JDBC执行过程: 问题是,查询有时会花费相当长的时间(几分钟),我希望用户能够通过单击按钮随时取消查询。我引用了stmt对象,但不幸的是(从其他线程)调用stmt.cancel()没有效果。 另一方面,当我将CallableStatement sql更改为以下查询时: 在调用stmt.c
本文向大家介绍C#中调用MySQL存储过程的方法,包括了C#中调用MySQL存储过程的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中调用MySQL存储过程的方法。分享给大家供大家参考。具体如下: 这段代码演示在 C# 程序中调用 MySQL 的存储过程,没有返回值,没有参数传递。 希望本文所述对大家的C#程序设计有所帮助。