C# 遇到不支持的Oracle数据类型101

C# 遇到不支持的Oracle数据类型101,c#,.net,oracle,oracle11g,C#,.net,Oracle,Oracle11g,在执行此代码时,我得到一个错误: OracleDataAdapter oAdp = new OracleDataAdapter("select * from " + TABLE_NAME, SourceConnStr); oAdp.Fill(dtTable); 所以我搜索了大致相同的内容,结果发现.NET目前不支持或识别二进制float/double以及它所指的表中的一列;数据类型为二进制双精度。请建议一种方法来确定表中的一列是否为二进制float/double数据类型,并将其转换为不同的数据

在执行此代码时,我得到一个错误:

OracleDataAdapter oAdp = new OracleDataAdapter("select * from " + TABLE_NAME, SourceConnStr);
oAdp.Fill(dtTable);
所以我搜索了大致相同的内容,结果发现.NET目前不支持或识别二进制float/double以及它所指的表中的一列;数据类型为二进制双精度。请建议一种方法来确定表中的一列是否为二进制float/double数据类型,并将其转换为不同的数据类型,如number或varchar,这是合适的

Unsupported Oracle data type 101 encountered.
  • 确定结构:

    Name           Null     Type          
    -------------- -------- -------------       
    EMPID          NOT NULL VARCHAR2(20)  
    EMPNAME        NOT NULL VARCHAR2(50)  
    EMPTYPE        NOT NULL NUMBER(38)    
    EMPPHOTO                BINARY_DOUBLE  
    DATEOFJOINING           DATE                 
    CONTACTNO               VARCHAR2(20)  
    
  • 解决方法: 在
    中选择
    ,将列替换为数据转换,例如使用
    到字符

    select * from all_tab_columns where data_type  like 'BINARY%' ;
    

  • 您使用哪个
    OracleDataAdapter
    ?我猜它来自
    System.Data.OracleClient.OracleDataAdapter
    ,如果您正在使用Oracle DB,请使用ODAC,
    Oracle.DataAccess.Client.OracleDataAdapter
    ,它可以很好地处理Oracle数据类型。

    show tablestructre@MuhammadMuazzam我刚刚编辑了一个问题,希望帮助您使用哪个DataAccess库?System.Data.OracleClient或Oracle.DataAccess.Client或Oracle.ManagedDataAccess.Client?@Arie System.Data.OracleClientSystem.Data.OracleClient不推荐使用。由于Oracle Database 10g中添加了BINARY_DOUBLE和BINARY_FLOAT,因此可能不支持它。这里的问题是用户选择要操作的表,因此我不能根据假设随机转换单个列。当然,它必须动态识别导致问题的列,并纠正错误。使用相同的表格列出表格名称中的列:
    “从表格名称=“+表格名称”
    new OracleDataAdapter("select column_a, column_b, to_char(column_c_binary_smthg) from " 
        + TABLE_NAME, SourceConnStr);