Я пытаюсь вызвать блок PL/SQL с ADO и VBA, но я не могу передавать входные данные и/или выходные переменные связывания (возможно, также параметры).С ADO, как я могу вызвать блок PL/SQL Oracle и указать переменные связывания ввода/вывода (параметры?)
dim cn as ADODB.connection
' ... open connection ...
dim plsql as string
plsql = "declare"
plsql = plsql & " num_in number := ?;"
plsql = plsql & " num_out number; "
plsql = plsql & "begin"
plsql = plsql & " num_out := num_in * 5;"
plsql = plsql & " ? := num_out;"
plsql = plsql & "end;"
dim cm as ADODB.command
set cm = new ADODB.command
set cm.activeConnection = cn
cm.commandText = plsql
cm.commandType = adCmdText
cm.parameters.append cm.createParameter(, adDouble, adParamInput,, 5)
cm.parameters.append cm.createParameter(, adDouble, adParamOutput )
cm.execute ' FAILS HERE
msgBox(cm.parameters(2))
Сниппет выше не на cm.execute
линии с ORA-01008: не все переменные, связанные с
Я бы признателен за любую помощь в направлении решения для моей проблемы.
Я не уверен, что Oracle позволяет вам определять переменные внутри анонимного блока PL/SQL. Что ты пытаешься сделать? –
Это, очевидно, сокращенная версия того, что я на самом деле хочу достичь. Реальная задача - создать экземпляр типа объекта PL/SQL, передать экземпляр процедуре, а затем затем оценить несколько методов и memeber по типу объекта. –
Очень хороший вопрос ... бесконечно странные способы, в которых оракул и адо попадают в конфликт, бесконечно много ... –