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 'Nick, Good Morning!'> 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!