Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wywołać procedurę składowaną Oracle w Pythonie?

W tym poście na blogu podaję przykład wywołania procedury składowanej Oracle w Pythonie. Przykład obejmuje wywołanie procedury składowanej z parametrami IN-OUT. Używam programu callproc biblioteki cx_Oracle funkcja do wywołania procedury Oracle. Aby umożliwić przetestowanie tego przykładu w twoim systemie, dostarczam również kod źródłowy tabeli bazy danych Oracle i procedurę składowaną.

Pobierz źródłowe tabele Oracle użyty w tym przykładzie z następującego linku Pobierz skrypt Scott Schema.

Przykład procedury składowanej Oracle z parametrami WE-WY

Poniższa procedura Oracle przyjmie dwa parametry, (1) i_empno jako parametr IN numer pracownika i (2) o_total_salary jako parametr OUT, aby zwrócić całkowitą pensję pracownika.

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;

Teraz wywołamy tę procedurę w Pythonie za pomocą procedury wywoławczej cx_Oracle funkcja.

Składnia callproc CX_Oracle

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

Wywołaj procedurę składowaną Oracle w Pythonie z przykładem parametrów IN-OUT

Poniższy program Pythona wywoła procedurę compute_sal i wyświetli zwróconą całkowitą pensję na ekranie.

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()

Wyjście

Total salary for the employee:  7788 is:  3080.0

Zobacz też:

  • Zainstaluj cx_Oracle dla Pythona w systemie 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. Oracle 10g - optymalizuj GDZIE NIE JEST NULL

  2. Funkcja COMPOSE() w Oracle

  3. Jak uzyskać liczbę elementów w tablicy JSON przechowywanej jako CLOB w Oracle 12c?

  4. Jak zwrócić wiele wierszy z procedury składowanej? (PL/SQL Oracle)

  5. Instalowanie przykładowych schematów dla Oracle 12c za pomocą Asystenta konfiguracji bazy danych