Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana Memanggil Prosedur Tersimpan Oracle dengan Python?

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh Kondisi Oracle IF

  2. Ikon Pengembang SQL

  3. Bagaimana cara MEMPERBARUI satu kolom menggunakan kolom lain di tabel lain? Kesalahan SQL:ORA-00933:Perintah SQL tidak berakhir dengan benar

  4. Memahami perbedaan antara Tabel dan API Transaksi

  5. Mengatur Timeout Jaringan untuk koneksi JDBC