У меня есть следующая хранимая процедура, которую я должен вызвать из VBA.
declare
p_segment1 varchar(25);
p_segment2 varchar(25);
p_segment3 varchar(25);
p_segment4 varchar(25);
p_segment5 varchar(25);
p_valid_flag varchar(1);
begin
p_segment1 := 'code segment here';
p_segment2 := 'code segment here';
p_segment3 := 'code segment here';
p_segment4 := 'code segment here';
p_segment5 := 'code segment here';
apps.key_validate_gl_code_comb(p_segment1, p_segment2, p_segment3, p_segment4, p_segment5, p_valid_flag);
dbms_output.put_line('Flag: ' || p_valid_flag);
end;
Мне нужно вызвать эту процедуру в VBA из Excel, но я получаю сообщение об ошибке, выполнив следующий код:
Set pCommand = New Command
Set pProcedureRecordset = New Recordset
With pCommand
Set .ActiveConnection = pConnection
.CommandType = adCmdStoredProc
Set p_Segment1 = .CreateParameter("p_segment1", adVarChar, adParamInput, 25, 'code segment here')
Set p_Segment2 = .CreateParameter("p_segment2", adVarChar, adParamInput, 25, 'code segment here')
Set p_Segment3 = .CreateParameter("p_segment3", adVarChar, adParamInput, 25, 'code segment here')
Set p_Segment4 = .CreateParameter("p_segment4", adVarChar, adParamInput, 25, 'code segment here')
Set p_Segment5 = .CreateParameter("p_segment5", adVarChar, adParamInput, 25, 'code segment here')
Set p_Valid_Flag = .CreateParameter("p_valid_flag", adVarChar, adParamInputOutput, 1)
.Parameters.Append p_Segment1
.Parameters.Append p_Segment2
.Parameters.Append p_Segment3
.Parameters.Append p_Segment4
.Parameters.Append p_Segment5
.Parameters.Append p_Valid_Flag
.CommandText = "apps.key_validate_gl_code_comb(?,?,?,?,?,?)"
Set pProcedureRecordset = .Execute
End With
Когда я запускаю это в SQL Developer, я получаю желаемый вывод, но когда я запускаю его из VBA, я получаю сообщение Unspecified Error
.
Как я могу вызвать хранимую процедуру из VBA, чтобы получить вывод?