sql >> データベース >  >> RDS >> Oracle

PythonでOracle関数を呼び出す方法は?

    このチュートリアルでは、PythonでOracle関数を呼び出す方法を学習します。 cx_Oracleライブラリcallfuncを使用して例を示しています。 Pythonプログラムの関数。以下は、構文の詳細とサンプルプログラムです。

    CX_Oraclecallfunc関数の構文

    cursor.callfunc('oracle_function_name', variable_to_hold_return_value, [argument_1, argument_2, ...])

    Oracleデータベース関数の例

    次のOracle関数は、2つの数値引数を取り、最初の数値と2番目の数値のパーセンテージを計算します。

    CREATE OR REPLACE FUNCTION calc_percentage (p_1 IN NUMBER, p_2 IN NUMBER)
    RETURN NUMBER
    IS
    n_pct NUMBER := 0;
    BEGIN
    IF p_1 IS NOT NULL
    THEN
    n_pct := (p_1 * p_2) / 100;
    END IF;
    
    RETURN n_pct;
    END calc_percentage;
    /

    PythonでOracle関数を呼び出す例

    以下のPythonプログラムは、最初のパラメーターとしてn_1を渡し、2番目のパラメーターとしてn_2を渡すことにより、上記のOracle関数を呼び出します。また、n_pct Number変数は、関数ごとの戻り値を保持するために使用されます。

    import cx_Oracle
    
    con = cx_Oracle.connect('scott/tiger@localhost/orcl')
    
    cur = con.cursor()
    
    n_pct = cur.var(cx_Oracle.NUMBER)
    
    n_1 = 80
    n_2 = 20
    
    cur.callfunc('calc_percentage', n_pct, [n_1, n_2])
    
    print (str(n_2)+"%", " Percent of ", n_1, " is: ", n_pct.getvalue())
    
    cur.close()
    con.close()

    出力

    20% Percent of 80 is: 16.0

    関連項目:

    • PythonでOracleストアドプロシージャを呼び出す方法
    1. EntityFramework6-タイミングクエリ

    2. Oracle-FASTREFRESHとJOINSを使用してマテリアライズドビューを作成する方法

    3. 1つのパラメータで複数の値を渡す

    4. OracleUTL_FILEはCSVファイル行を読み取ります