Provider=oraoledb.oracle;Data Source=%s;User ID=%s;Password=%s",szServer,szUser,szPassword   和
Provider=MSDAORA.1;Data Source=datasourceName这两种方式连接ORCAL数据库,有什么区别?谢谢。

解决方案 »

  1.   

    使用的oledb提供程序不一样,对数据类型的支持也不一样.
    Oracle provider 的情况
    provide types -- 这是通过DBSCHEMA_PROVIDER_TYPES取出的类型信息
    本地类型  OLEDB类型
    char       130
    date       135
    float      5
    number     131
    bunber     139
    varchar2   130
    long raw   128
    raw        128
    blob       128
    clob       130
    bfile      128
    nclob      130
    nchar      130
    nvarchar   130
    MS Oracle provider 的情况provide types -- 这是通过DBSCHEMA_PROVIDER_TYPES取出的类型信息
    本地类型  OLEDB类型
    float      5
    long raw   128
    raw        128
    char       129
    long       129
    varchar2   129
    number     131
    number     139
    date       135可以看出MS oracle provider支持的类型很少,重要的是不支持UNICODE类型.而Oracle provider支持的类型就很全了.
      

  2.   

    连接oracle最好不要用微软提供的接口,稳定性在不同的机器上表现都不一样,要小心。
    oledb是oracle自己的东西,用起来放心的多,不过我以前用的时候无法向数据库中插入lob类型的值,不知道为什么,最保险的方法是使用OCI。
      

  3.   

    嗯,连接Oracle数据库最好使用oracle自己的