title: Unsupported column datatype
body: <p>I have Oracle 12C installed in my system. I have created one SP which is returning a Table When I am trying to execute it in SQL Developer, it is giving me correct result, But When I am calling it from my DOTNET application it is giving me the error --"Unsupported column datatype". I am trying to fill dataset using Data adapter. To check I commented all the code in the procedure and returned the table using below code.</p>
  
  <pre><code>Declare  
  rc sys_refcursor;  
  Begin  
     OPEN rc FOR SELECT 'Sayam' AS "Error" FROM dual;  
     SYS.DBMS_SQL.RETURN_RESULT (rc, TRUE) ;  
  END;  
  </code></pre>
  
  <p>But Still the problem was same. Below is the trace of the same.</p>
  
  <blockquote>
    <p>Oracle.ManagedDataAccess.Client.OracleException was caught
        HResult=-1450
        Message=Unsupported column datatype
        Source=Oracle Data Provider for .NET, Managed Driver   ErrorCode=-1450   DataSource=""   Number=-1450   Procedure=""<br>
    StackTrace:
           at Oracle.ManagedDataAccess.Client.OracleParameter.PreBind(OracleConnectionImpl
    connImpl, ColumnDescribeInfo cachedParamMetadata, Boolean&amp;
    bMetadataModified, Int32 arrayBindCount, ColumnDescribeInfo&amp;
    paramMetaData, Object&amp; paramValue, Boolean isEFSelectStatement)
           at OracleInternal.ServiceObjects.OracleCommandImpl.InitializeParamInfo(ICollection
    paramColl, OracleConnectionImpl connectionImpl, ColumnDescribeInfo[]
    cachedParamMetadata, Boolean&amp; bMetadataModified, Boolean
    isEFSelectStatement, MarshalBindParameterValueHelper&amp;
    marshalBindValuesHelper)
           at OracleInternal.ServiceObjects.OracleCommandImpl.ProcessParameters(OracleParameterCollection
    paramColl, OracleConnectionImpl connectionImpl, ColumnDescribeInfo[]
    cachedParamMetadata, Boolean&amp; bBindMetadataModified, Boolean
    isEFSelectStatement, MarshalBindParameterValueHelper&amp;
    marshalBindValuesHelper, Boolean&amp; bAllInputBinds)
           at OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteReader(String
    commandText, OracleParameterCollection paramColl, CommandType
    commandType, OracleConnectionImpl connectionImpl,
    OracleDataReaderImpl&amp; rdrImpl, Int32 longFetchSize, Int64
    clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, Int64[]
    scnForExecution, Int64[]&amp; scnFromExecution, OracleParameterCollection&amp;
    bindByPositionParamColl, Boolean&amp; bBindParamPresent, Int64&amp;
    internalInitialLOBFS, OracleException&amp; exceptionForArrayBindDML,
    Boolean isDescribeOnly, Boolean isFromEF)
           at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteReader(Boolean
    requery, Boolean fillRequest, CommandBehavior behavior)
           at Oracle.ManagedDataAccess.Client.OracleDataAdapter.Fill(DataSet
    dataSet, Int32 startRecord, Int32 maxRecords, String srcTable,
    IDbCommand command, CommandBehavior behavior)
           at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
           at DataAccessLayer.DataAccessService.OracleGetData_Load(String SPName, XElement QueryParam, Exception&amp; e, Boolean bFlag) in
    d:\Sayam\April\Multiplay\DataAccessLayer\DataAccessLayer\DAS.cs:line
    187</p>
  </blockquote>
  
  <p>I have tried this link also.</p>
  
  <p><a href="https://stackoverflow.com/questions/25489730/unsupported-column-datatype-odp-net">Unsupported column datatype ODP.NET</a></p>
  
  <p>Please let me know if I need to change any where.</p>
  
  <pre><code> using Oracle.ManagedDataAccess.Client;
  </code></pre>
  
  <p>and the code goes</p>
  
  <pre><code>                if (this.ConOracle.State == ConnectionState.Closed)
                      ConOracle.Open();
                  oraCmd.Connection = ConOracle;
                  oraCmd.CommandTimeout = 0;
                  oraCmd.CommandType = CommandType.StoredProcedure;
                  OracleGetQuery(ref oraCmd, SPName.Split('.')[1],QueryParam);
  
                  using (OracleDataAdapter oraDA = new OracleDataAdapter(oraCmd))
                  { oraDA.Fill(ds); }
  </code></pre>
  
  <p>Thanks
  Sayam</p>