Oracle
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изпълнението на незабавен избор не връща стойности

  2. SQL SELECT Сумиране на стойности без включване на дубликати

  3. Заобиколно решение за външно свързване с IN оператор в Oracle

  4. Oracle заявка за получаване на определена дата

  5. Как да използвам XML за създаване на OCI-Lob обект?