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方库里显示正常

  • 相关阅读:
    JavaScript高级第01天笔记
    JavaScript基础第06天笔记
    JavaScript基础第05天笔记
    JavaScript基础第04天笔记
    JavaScript基础第03天笔记
    JavaScript基础第02天笔记
    JavaScript基础第01天笔记
    03-CSS文字文本样式
    CSS第二天笔记
    浮动
  • 原文地址:https://www.cnblogs.com/mengzhixingping/p/5854072.html
Copyright © 2011-2022 走看看