Unsupported Oracle data type USERDEFINED encountered 的一种解决方案

System.NotSupportedException:Unsupported Oracle data type USERDEFINED encountered

原来是由于web service调用的oracle数据库的表结构中有oracle spatial字段,所以不能正确返回。

解决问题思路:纵向分解,横向对比。

通过与访问其他具有简单字段的表对比得出的结论。

—————————————————————————————————————————

  [WebMethod]  //返回dataset可以,但是返回datatable比较复杂 added by zhangjun at 2011-02-16

    public DataSet DoQueryEx(string sqlStr)

    {

        if (String.IsNullOrEmpty(sqlStr))

        {

            return null;

        }

        DataSet result = new DataSet();

        using (OracleConnection conn = new OracleConnection(_connStr))

        {

            try

            {

                if (conn.State == ConnectionState.Closed)

                {

                    conn.Open();

                }

                OracleDataAdapter adapter = new OracleDataAdapter(sqlStr, conn);

                adapter.Fill(result);  //既可以fill dataset,也可以fill datatable

                adapter.Dispose();

                return result;

            }

            catch (Exception ex)

            {

                throw ex;

            }

        }

    }

原文地址:https://www.cnblogs.com/zhangjun1130/p/1955965.html