title: Visual Basic with Oracle 11g using REF CURSOR NOT working
body: <p>I am using Visual Basic 6 to connect to Oracle 11g.
  Yes, I can successfully connect to the database.
  The problem is to receive the recordsets from the database.
  I have created an oracle package like below:</p>
  
  <p>Package:</p>
  
  <pre><code>CREATE OR REPLACE PACKAGE PKG_BASECODE AS
  
  TYPE T_CURSOR IS REF CURSOR;
  
  --// customer
  PROCEDURE CustomerCode (
      I_CUST_CODE          IN VARCHAR2
      , I_CUST_NAME        IN VARCHAR2
      , customer_cursor    OUT T_CURSOR
  );
  
  END PKG_BASECODE;
  /
  </code></pre>
  
  <p>Body:</p>
  
  <pre><code>CREATE OR REPLACE PACKAGE BODY PKG_BASECODE AS
  
  --// customer
  PROCEDURE CustomerCode (
      I_CUST_CODE          IN VARCHAR2
      , I_CUST_NAME        IN VARCHAR2
      , customer_cursor    OUT T_CURSOR
  )
  IS
      BEGIN
      OPEN customer_cursor FOR
      SELECT  CUST_CODE      AS KEYVALUE
              , CUST_NAME    AS DATAVALUE
      FROM    CUSTOMER_MASTER
      WHERE   CUST_CODE      LIKE I_CUST_CODE || '%'
      AND     CUST_NAME      LIKE I_CUST_NAME || '%'
      ORDER BY CUST_NAME ASC
      ;
      END CustomerCode;
  
  
  END PKG_BASECODE;
  /
  </code></pre>
  
  <p>It works great with C#.
  I have already tested.</p>
  
  <p>Now I have my Visual Basic 6 source codes below:</p>
  
  <pre><code>Dim rst As ADODB.Recordset
  Dim cmd As ADODB.Command
  Dim input1 As ADODB.Parameter
  Dim input2 As ADODB.Parameter
  Dim output1 As ADODB.Parameter
  Set cmd = CreateObject("ADODB.Command")
  With cmd
      .ActiveConnection = tmpDB_Total
  
      .CommandText = "PKG_BASECODE.CustomerCode"
      .CommandType = adCmdStoredProc
  
      .Parameters.Append .CreateParameter("I_CUST_CODE", adVarChar, adParamInput, 10, "")
      .Parameters.Append .CreateParameter("I_CUST_NAME", adVarChar, adParamInput, 50, "")
      .Parameters.Append .CreateParameter("CustomerCode", adVarChar, adParamReturnValue)
      Set rst = .Execute
  End With
  
  If Not rst.BOF And Not rst.EOF Then
      Do Until rst.EOF
          Debug.Print rst.Fields(1).Value &amp; "," &amp; rst.Fields(0).Value
          rst.MoveNext
      Loop
  End If
  </code></pre>
  
  <p>And the connection source is below:</p>
  
  <pre><code>tmpDB_Total.Open "Provider=OraOLEDB.Oracle;" _
                   &amp; "Password=mes123;" _
                   &amp; "User ID=mes;" _
                   &amp; "Persist Security Info=True;" _
                   &amp; "Data Source=stmdev;"
  </code></pre>
  
  <p>And I receive an error something about parameters.
  The error message is written in Korean language, so I cannot write straight away.
  Please understand me.
  Could anyone help me with this problem?</p>