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

cx_Oracleを使用して関数を呼び出すと、式が間違ったタイプになります

    匿名の使用に関するkfinityの提案に従います。ブロックラッパー および非常によく似た質問 、次のコードが機能します:

    outVal = cursor.var(int)
    phase = cursor.var(cx_Oracle.STRING)
    status = cursor.var(cx_Oracle.STRING)
    dev_phase = cursor.var(cx_Oracle.STRING)
    dev_status = cursor.var(cx_Oracle.STRING)
    message = cursor.var(cx_Oracle.STRING)
    sql="""
      begin
        :outVal := sys.diutil.bool_to_int(
            fnd_concurrent.wait_for_request(
                :id,
                :interval, 
                :max_wait,
                :phase,
                :status,
                :dev_phase,
                :dev_status,
                :message
            )
        );
      end;
      """
    cursor.execute( 
        sql,
        outVal=outVal,
        id='141116467',
        interval='1',
        max_wait='1',
        phase=phase,
        status=status,
        dev_phase=dev_phase,
        dev_status=dev_status,
        message=message
    )
    print(outVal.getvalue())
    


    1. SQLINSERTステートメントにPythondictを使用する

    2. SAS/rsubmitを使用したOracleへの接続

    3. Oracleでシーケンスをリセットするにはどうすればよいですか?

    4. SQL結合複数のIDをコンマ区切り