Попытка вернуть набор записей из Oracle.Процедура имеет входной параметр с типом данных Number и входным / выходным параметром с Oracle ref cursor datatype.
Получение ошибки:
PLS-00306 неверное количество типов аргументов при вызове "get_random_tube_colors_pr".
Oracle
procedure get_random_tube_colors_pr(in_tube_color_id in number,
tubeset in out tubetab)
VBA
conStr = "User ID=ops$scxpoly;Password=password;Data Source=source;Provider=OraOLEDB.Oracle;"
With db
If .state = adStateClosed Then
.ConnectionString = conStr
.CursorLocation = adUseClient
.Open
End If
End With
With cmd
.ActiveConnection = db
.NamedParameters = False
.CommandType = adCmdStoredProc
.CommandText = "OPS$SCXPOLY.mfg_tube_colors_pk.get_random_tube_colors_pr"
.Parameters.Append .CreateParameter("in_tube_color_id", adBigInt, adParamInput, , 2679)
.Properties("PLSQLRSet") = True
Set rst = .Execute()
MsgBox Err.Number & vbNewLine & Err.Description
End with
Я закомментировал .CreateParameter, вызывающий тип данных курсора Oracle:
' .Parameters.Append .CreateParameter("tubeset", adVariant, adParamReturnValue)
Но та же ошибка - Вызов хранимой процедуры Oracle с VBA с использованием рефкурсора
Добавлен Properties("PLSQLRSet") = TRUE
, но все еще та же проблема - https://docs.oracle.com/cd/B28359_01/win.111/b28431/using.htm
Также установлен .NamedParameters = True
, нет.
Заранее спасибо за вашу помощь.