Maison  >  Article  >  développement back-end  >  Exemple de la façon dont Python utilise cx_Oracle pour appeler des procédures stockées Oracle

Exemple de la façon dont Python utilise cx_Oracle pour appeler des procédures stockées Oracle

黄舟
黄舟original
2017-10-09 10:36:283664parcourir

Cet article présente principalement comment Python utilise cx_Oracle pour appeler des procédures stockées Oracle. Il analyse les étapes spécifiques et les techniques de fonctionnement associées pour appeler PL/SQL via cx_Oracle en Python sur la base d'exemples spécifiques. Les amis dans le besoin peuvent s'y référer

.

L'exemple de cet article décrit comment Python utilise cx_Oracle pour appeler des procédures stockées Oracle. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Le test principal ici est d'appeler PL/SQL via cx_Oracle en Python.

Tout d’abord, créez une procédure stockée simple côté base de données.


create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) is
begin
 o_msg := i_user ||', Good Morning!';
end;

Ensuite, commencez à effectuer des appels de procédure stockée dans la ligne de commande 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 &#39;Nick, Good Morning!&#39;>
print msg.getvalue() #Nick, Good Morning!
#资源关闭
cursor.close()
conn.close()

Lecture étendue :

Entre les types d'objets des procédures stockées, cx_Oracle et Python Il existe une relation de conversion. Les détails sont les suivants :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn