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
-
Oracle 10g - optymalizuj GDZIE NIE JEST NULL
-
Funkcja COMPOSE() w Oracle
-
Jak uzyskać liczbę elementów w tablicy JSON przechowywanej jako CLOB w Oracle 12c?
-
Jak zwrócić wiele wierszy z procedury składowanej? (PL/SQL Oracle)
-
Instalowanie przykładowych schematów dla Oracle 12c za pomocą Asystenta konfiguracji bazy danych