Dalam posting blog ini, saya memberikan contoh untuk memanggil prosedur tersimpan Oracle dengan Python. Contohnya termasuk memanggil prosedur tersimpan dengan parameter IN-OUT. Saya menggunakan cx_Oracle library callproc berfungsi untuk memanggil prosedur Oracle. Untuk memungkinkan Anda menguji contoh ini di sistem Anda, saya juga menyediakan kode sumber tabel database Oracle dan prosedur tersimpan.
Unduh tabel sumber Oracle digunakan dalam contoh ini dari tautan berikut Unduh skrip Scott Schema.
Contoh Prosedur Tersimpan Oracle dengan Parameter IN-OUT
Prosedur Oracle berikut akan mengambil dua parameter, (1) i_empno sebagai parameter IN nomor karyawan dan (2) o_total_salary sebagai parameter OUT untuk mengembalikan total gaji karyawan.
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;
Sekarang kita akan memanggil prosedur ini dengan Python menggunakan cx_Oracle callproc fungsi.
Sintaks callproc CX_Oracle
cursor.callproc('procedure_name', [argument_1, argument_2, ...])
Panggil Oracle Stored Procedure dengan Python dengan Contoh Parameter IN-OUT
Program Python berikut akan memanggil prosedur compute_sal dan akan mencetak total gaji yang dikembalikan di layar.
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()
Keluaran
Total salary for the employee: 7788 is: 3080.0
Lihat juga:
- Instal cx_Oracle untuk Python di Windows