zoukankan      html  css  js  c++  java
  • C#获取并写入ORACLE数据库中中英文字符集问题

    背景

    开发语言:C#

    开发工具:VS2010

    A方ORACLE数据库:中文字符集

    B方ORACLE数据库:英文字符集

    传递方式:webservice方式(取数据,并把取出的数据放到DataTable中,循环回写入B方的存储过程中)

    问题

         从A方库里获取数据插入到B方库里写的存储过程里,到B方数据库后,汉字都变为乱码(问号较多)

    解决方法

      方法一:最初从A方库取数据时用ORACLE的转换函数UTL_RAW.CAST_TO_RAW转换下该字段,即select UTL_RAW.CAST_TO_RAW(a) from A

    B方库里接收数据的存储过程应该用utl_raw.cast_to_varchar2()函数解析之后插入到B方库里

      结果:B方库未接收到任何数据

     方法一失败原因,经过跟踪方向直接查询select UTL_RAW.CAST_TO_RAW(a) from A在A方库里是显示出二进制码的,但是查询出的数据不能存到DataTable中,到DataTable中就变成了System.Data[],显示是查出的不是字符串造成的,由此想到把转换的数据查询时转换为字符串

    方法二:

        用ORACLE的字符截取函数来转换为字符串(to_char不可行),语句为:select substr(UTL_RAW.CAST_TO_RAW(a),0,length(UTL_RAW.CAST_TO_RAW(a))) from A;B方库里接收数据时存储过程仍用utl_raw.cast_to_varchar2()函数解析之后插入到B方库里

      结果:汉字在B方库里显示正常

  • 相关阅读:
    Cookie和Seesion
    Forms组件
    分页器组件
    关于Django的Ajax操作
    Oracle常用数据库表操作
    redis的缓存穿透 缓存并发 缓存失效
    Struts2的拦截器
    Struts2的各种标签库
    Struts2基础知识
    Java常用数据结构和算法
  • 原文地址:https://www.cnblogs.com/mengzhixingping/p/5854072.html
Copyright © 2011-2022 走看看