1 Reply Latest reply: Aug 29, 2011 11:44 AM by Jenny -Oracle RSS

    pass a parameter - Array of Bolbs

    885034
      hi,
      i'm tring to pass to a procedure in oracle an array of blob and i get the error : ORA-03113: end-of-file on communication channel
      my code:

      using System;
      using System.Data;
      using Oracle.DataAccess.Client;

      public class simplenumberarray
      {
      public static void Main()
      {
      using (OracleConnection con = new OracleConnection("data source=orcl;user id=scott;password=tiger;"))
      {
      con.Open();
      using (OracleCommand cmd = new OracleCommand("mypack8.total_the_array", con))
      {
      cmd.CommandType = CommandType.StoredProcedure;
      OracleParameter param1 = new OracleParameter();
      param1.ParamName = "p_return_list";
      param1.OracleDbType = OracleDbType.Blob;
      param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
      param1.Direction = ParameterDirection = Output;
      param1.value=null;
      param1.Size=3;
      cmd.Parametes.Add(param1);
      cmd.ExecuteNonQuery();
      }
      }
      }
      }

      and if i change it to int evreything is fine.

      does oracle support a Array of blob as paramter?

      thanks for any help.
      yoni.
        • 1. Re: pass a parameter - Array of Bolbs
          Jenny -Oracle
          Hi Yoni,

          No. BLOBs are not supported.

          You can review the list of data types supported in the documentation.

          ODP.NET supports binding parameters of PL/SQL Associative Arrays which contain the following data types.


          ■ BINARY_FLOAT
          ■ CHAR
          ■ DATE
          ■ NCHAR
          ■ NUMBER
          ■ NVARCHAR2
          ■ RAW
          ■ ROWID
          ■ UROWID
          ■ VARCHAR2


          Using unsupported data types with associative arrays can cause an ORA-600 error. Hence, this is why you see the 3113 on the client side.

          HTH
          Jenny