用ms的oracle驱动,不支持blob类型,使用oracle提供驱动,对汉字的处理上有问题。难到一定要两个驱动各建一个连接,分开处理数据才行吗。

解决方案 »

  1.   

    setup sql (oracle)ODBC//user sql link (sql insert\update\delete...)
    select * from openquery(svr_iqcjl,'select * from mdr')
    /****** Object:  LinkedServer [svr_iqcjl]    Script Date: 02/05/2009 20:58:35 ******/
    EXEC master.dbo.sp_addlinkedserver @server = N'svr_iqcjl', @provider=N'SQLOLEDB', @datasrc=N'172.20.100.12'
     /* For security reasons the linked server remote logins password is changed with ######## */
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'svr_iqcjl',@useself=N'False',@locallogin=NULL,@rmtuser=N'IQC',@rmtpassword='########'GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'collation compatible', @optvalue=N'false'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'data access', @optvalue=N'true'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'dist', @optvalue=N'false'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'pub', @optvalue=N'false'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'rpc', @optvalue=N'false'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'rpc out', @optvalue=N'false'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'sub', @optvalue=N'false'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'connect timeout', @optvalue=N'0'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'collation name', @optvalue=null
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'lazy schema validation', @optvalue=N'false'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'query timeout', @optvalue=N'0'
    GOEXEC master.dbo.sp_serveroption @server=N'svr_iqcjl', @optname=N'use remote collation', @optvalue=N'true'
    GO
      

  2.   

    还从来没有碰到过说使用oracle的驱动会有汉字处理上面的问题。对于编码上的问题是可以自己进行转换解决的。
      

  3.   

    以前用的oracle的ado驱动,在查询字段类型为char的时候出现的无返回值,参数为汉字,想是不是char加空格的原因,后用变量长度截取字段内容仍然没有返回值,用ms的oracle ado驱动正常,后来由于char使用起来比较麻烦,本身记录也不是很多就把数据表中的字段类型都转换成varchar2 ,但在用两个驱动时问题依然存在,我的系统是xp 服务器字符集是us7ascii
      

  4.   

    由于我的程序密码经过计算后有部分隐藏字符,不能用trim去处理。所以就转能varchar2了。
      

  5.   

    后来就使用两个驱动,对汉字及blob进行处理,现在程序已做完,对于以上的问题还是没有解决。