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

Wyrażenie jest niewłaściwego typu podczas wywoływania funkcji za pomocą cx_Oracle

Zgodnie z sugestią kfinity dotyczącą używania anonimowego opakowanie blokowe i dość podobne pytanie , następujący kod będzie działał:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spraw, aby funkcja Oracle last_day była kompatybilna z bazą danych H2

  2. Oracle SQLPlus ustawia zmienną środowiskową na podstawie zmiennej

  3. PL/SQL wywoływanie funkcji wewnątrz wyzwalacza

  4. Zapytanie SQL do pobrania OrderID, transactionID, Status na podstawie statusu transakcji, którym jest Char

  5. Jak mogę skonfigurować lokalizację mojego pliku tnsnames Oracle?