Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie rufe ich gespeicherte Oracle-Prozeduren in Python auf?

In diesem Blogbeitrag gebe ich ein Beispiel zum Aufrufen von gespeicherten Oracle-Prozeduren in Python. Beispiel:Aufruf einer gespeicherten Prozedur mit IN-OUT-Parametern. Ich verwende callproc der cx_Oracle-Bibliothek Funktion zum Aufrufen der Oracle-Prozedur. Damit Sie dieses Beispiel in Ihrem System testen können, stelle ich auch den Quellcode der Oracle-Datenbanktabelle und der gespeicherten Prozedur bereit.

Oracle-Quelltabellen herunterladen in diesem Beispiel verwendet von folgendem Link Laden Sie das Scott-Schema-Skript herunter.

Oracle Stored Procedure Beispiel mit IN-OUT Parametern

Die folgende Oracle-Prozedur verwendet die beiden Parameter, (1) i_empno als IN-Parameter der Mitarbeiternummer und (2) o_total_salary als OUT-Parameter, um das Gesamtgehalt des Mitarbeiters zurückzugeben.

CREATE OR REPLACE PROCEDURE get_total_sal (i_empno IN emp.empno%TYPE,
o_total_salary OUT NUMBER)
IS
CURSOR c_emp (p_empno emp.empno%TYPE)
IS
SELECT sal, comm
FROM emp
WHERE empno = p_empno;

v_sal NUMBER;
v_comm NUMBER;
BEGIN
OPEN c_emp (i_empno);

FETCH c_emp
INTO v_sal, v_comm;

CLOSE c_emp;

o_total_salary := (v_sal + NVL (v_comm, 0));
END get_total_sal;

Jetzt rufen wir diese Prozedur in Python mit cx_Oracle callproc auf Funktion.

CX_Oracle Callproc-Syntax

cursor.callproc('procedure_name', [argument_1, argument_2, ...])

Beispiel für den Aufruf einer gespeicherten Oracle-Prozedur in Python mit IN-OUT-Parametern

Das folgende Python-Programm ruft die compute_sal-Prozedur auf und gibt das zurückgegebene Gesamtgehalt auf dem Bildschirm aus.

import cx_Oracle

con = cx_Oracle.connect('scott/tiger@localhost/orcl')

cur = con.cursor()
n_empno = 7788
n_total_salary = cur.var(cx_Oracle.NUMBER)
cur.callproc('compute_sal', [n_empno, n_total_salary])

print ("Total salary for the employee: ", n_empno, "is: ", n_total_salary.getvalue())
cur.close()
con.close()

Ausgabe

Total salary for the employee:  7788 is:  3080.0

Siehe auch:

  • Installieren Sie cx_Oracle für Python unter Windows