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
-
MySQL-Replikation mit ProxySQL auf WHM/cPanel-Servern:Teil Eins
-
So machen Sie Ihre MySQL- oder MariaDB-Datenbank in AWS und Google Cloud hochverfügbar
-
So löschen Sie Fremdschlüsseleinschränkungen in der SQL Server-Datenbank für alle Tabellen - SQL Server / TSQL-Tutorial Teil 72
-
Reihenziele, Teil 2:Semi Joins