Oracle
 sql >> база данни >  >> RDS >> Oracle

Извикайте съхранена процедура на Oracle с VBA, като използвате рекурсор

Намерих решение случайно. Ако не дефинирам параметъра ref_cursor, то работи.

cmd.CommandText = "testproc"
cmd.ActiveConnection = cn
cmd.CommandType = adCmdStoredProc
Set param1 = cmd.CreateParameter("articlenr", adInteger, adParamInput, , 47)
Set param2 = cmd.CreateParameter("storenr", adInteger, adParamInput, , 281)
Set param3 = cmd.CreateParameter("cweek", adVarChar, adParamInput, 10, "201705")

'Next line not needed
'Set param4 = cmd.CreateParameter("prc", adVariant, adParamOutput, , Null)

cmd.Parameters.Append param1
cmd.Parameters.Append param2
cmd.Parameters.Append param3

'Next line not needed
'cmd.Parameters.Append param4

Set rs = cmd.Execute

Това работи, очевидно спецификацията ref_cursor не е необходима и се случва по подразбиране :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при инсталиране на клиент Oracle 12c

  2. Колоната се актуализира въз основа на предишен запис

  3. Динамична заявка за PIVOT In Clause

  4. Как да ВИЗИРАТЕ_ЗВУК в Oracle Forms

  5. SQL Developer 4.1.2