Hi!!!
I create a package in Oracle.
When I run the line:
Set adoRS = mCmd.Execute

VB sent me the next error:

Run-time error '-214721700 (80040E14)':
Ora-06550: line 1, column 33: PLS-002001: Identifier 'P_IC' must be declare.
Ora-06550: line1, column 7: PLS/SQL: Statemnt ignored.

What I am doing wrong????????
This is the code


CREATE OR REPLACE PACKAGE LAWSON1.PACK_ICTRANS AS
CURSOR c1 IS
SELECT ITEM,DOC_TYPE,DOCUMENT FROM ICTRANS;
 
TYPE t_row IS REF CURSOR  RETURN c1%ROWTYPE;
PROCEDURE CL_CURSOR(p_item in varchar2, P_IC  OUT t_row);
 
END PACK_ICTRANS;
 
CREATE OR REPLACE PACKAGE BODY LAWSON1.PACK_ICTRANS AS
PROCEDURE CL_CURSOR(p_item in varchar2, P_IC  OUT t_row)
  IS
 
  BEGIN
 
     OPEN P_IC FOR
     SELECT ITEM,DOC_TYPE,DOCUMENT FROM ICTRANS WHERE ITEM=p_item;
  END CL_CURSOR;
END PACK_ICTRANS;


This is the code in VB:

Private Sub cmdTestOracle_Click()
Dim mCmd As ADODB.Command
Dim mCmdPrm1 As New ADODB.Parameter
Set adoRS = New ADODB.Recordset
If Open_cnOracle Then

adoRS.CursorType = adOpenDynamic
    sSQL = "{call PACK_ICTRANS.CL_CURSOR(?, {resultset  1000, P_IC})}"
      ' adoRS.Open sSQL, gcnOracle, , , adCmdTable
      Set mCmd = New ADODB.Command
      With mCmd
        .CommandText = sSQL
        .CommandType = adCmdText
        .ActiveConnection = gcnOracle
      
        Set mCmdPrm1 = .CreateParameter("p_item", adVarChar, adParamInput, 32, "0010096")
         .Parameters.Append mCmdPrm1
      End With
    Set adoRS = New ADODB.Recordset
    mCmdPrm1 = "0010096"
    Set adoRS = mCmd.Execute <-----Error here
    MsgBox adoRS.Fields(0)


End If
End Sub


Function Open_cnOracle() As Boolean

Dim oMsgSplitter As New LawsonErrMsgSplitter.Splitter
Dim vaPieces As Variant

On Error GoTo ErrorConectarOracle:
Set gcnOracle = New ADODB.Connection
With gcnOracle
.ConnectionString = "Provider=OraOLEDB.Oracle.1;Password=burke00;Persist Security Info=True;User ID=lawson1;Data Source=LAWS"
.CommandTimeout = 0
.Open
Open_cnOracle = True
End With


Exit Function
ErrorConectarOracle:
vaPieces = oMsgSplitter.SplitMsg(Err.Description)
MsgBox vaPieces(mpText)
Open_cnOracle = False

End Function


Reply via email to