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方库里显示正常
C#获取并写入ORACLE数据库中中英文字符集问题的更多相关文章
- 将Oracle数据库中的数据写入Excel
将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...
- Oracle数据库中字段定义为Char类型,Hibernate用该字段进行动态绑定参数查询,获取不到结果的问题
一.问题背景 产生环境:oracle数据库,hibernate操作 定义了一个表 create table STORE_INFORMATION ( id CHAR(32) not null, name ...
- ODP方式,大批量数据写入ORACLE数据库
项目中在同步数据的时候,需要把获得的数据DataTable,写入oracle数据库 因为System.Data.OracleClient写入方式写入大批量数据特别慢,改用Oracle.DataAcce ...
- Oracle数据库中插入日期型数据(to_date的用法)(转载)
往Oracle数据库中插入日期型数据(to_date的用法) INSERT INTO FLOOR VALUES ( to_date ( '2007-12-20 18:31:34' , 'YYY ...
- ORACLE数据库中执行计划出现INTERNAL_FUNCTION一定是隐式转换吗?
ORACLE数据库中,我们会使用一些SQL语句找出存在隐式转换的问题SQL,其中网上流传的一个SQL语句如下,查询V$SQL_PLAN的字段FILTER_PREDICATES中是否存在INTERNAL ...
- 查看Oracle数据库中的执行计划
1.set autotrace traceonly命令 2.explain plan for命令 1)explain plan for select * from dual; 2)select * f ...
- --关于null在oracle数据库中是否参与计算,进行验证,
--关于null在oracle数据库中是否参与计算,进行验证,with td as (select null id,1 name from dual ),td1 as ( select null id ...
- Oracle数据库中SYS、SYSTEM、DBSNMP、SYSMAN四用户的区别
[转] SYS.SYSTEM.DBSNMP. Oracle 数据库中 SYS.SYSTEM.DBSNMP.SYSMAN 四用户的区别 用户: SYS 用户: SYS,默认密码为 CHANGE_ON ...
- Oracle数据库中调用Java类开发存储过程、函数的方法
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日 浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...
随机推荐
- Centos7永久修改主机名
最近在编写centos6.x的启动脚本,考虑到以后系统会升到7.x,故想让脚本兼容7.x,还是有一些和6版本不一样的地址,修改主机名比较常用,特此记录一下 1.命令行修改: hostnamectl s ...
- XArp汉化破解专业版,强大易用的ARP欺骗检测器
汉化作者:Bluefish 破解来自:http://www.52pojie.cn/thread-464808-1-1.html官方网站:http://www.xarp.net/ ----------- ...
- 构建ceph deb 安装包
前言:本文基于ubuntu 14.04.5 LTS 和ceph v0.94.3 之上做的实验 一.编译ceph包1.1.克隆ceph代码,切换分支 git clone --recursive http ...
- [转]vb socket通信(TCP/UDP)一对一、多对一
VB Socket编程(Winsock控件创建TCP/IP客户机/服务器程序) Winsock控件建立在TCP.UDP协议的基础上,完成与远程计算机的通信.即使对TCP/IP不太熟悉的用户,使用 ...
- strom的使用02
1.grouping分组策略 stream grouping就是用来定义一个stream应该如果分配给Bolts上面的多个Tasks. storm里面有6种类型的stream grouping: 1. ...
- java回调初步学习
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢以前不理解什 ...
- 移动端页面 弹出框滚动,底部body锁定,不滚动 / 微信网页禁止回弹效果
需求:页面有弹出层菜单,当弹出层菜单超出屏幕可视区域时,不能滚动.加上滚动后,底部body的滚动事件如何禁止,加上了overflow:hidden;还是不可用. 如下图:地区弹出框可以滚动,而底部的b ...
- C# 实现HTML转换成图片的方法
/// <summary> /// 通过WebBrowser控件来实现从HTML到Bmp图片的生成. /// </summary> / ...
- Table样式
.tb_org th { background-color: #; color: #ffffff; } .tb_org { border-right: 1px solid silver; border ...
- Oracle Deadlock / 死锁 处理
Get the directory of alert log sqlplus / as sysdba show parameters udmp SQL> show parameters dump ...