也是老问题了,干脆总结一下写在这里,免得下次碰到又是无头苍蝇一般狂翻资料。
通过OleDB连接Oracle数据库,一般有两种provider
A:provider=MSDAORA.1
B:provider=OraOLEDB.Oracle
第一种为微软公司的oracle组件,第二种为oracle的访问组件。
Oracle数据库经常使用的两种字符集
C:英文:SIMPLIFIED CHINESE_CHINA.US7ASCII
D:中文:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
A与C、D搭配,数据读写没有乱码问题,如果出现乱码,则修改系统级(非用户级)的环境变量nls_lang为数据库所使用的字符集,重启电脑即可。
缺点:不支持long/Clob/Blob大字段。
B支持大字段,与D搭配最为完美。如果BC搭配使用,读出无乱码,写入为乱码,做为where条件传进去的中文参数为乱码。无法使用。如果数据库字符集为C,则只能使用A。如果要读取大字段,只得使用B新建连接。
通过OleDB连接Oracle数据库,一般有两种provider
A:provider=MSDAORA.1
B:provider=OraOLEDB.Oracle
第一种为微软公司的oracle组件,第二种为oracle的访问组件。
Oracle数据库经常使用的两种字符集
C:英文:SIMPLIFIED CHINESE_CHINA.US7ASCII
D:中文:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
A与C、D搭配,数据读写没有乱码问题,如果出现乱码,则修改系统级(非用户级)的环境变量nls_lang为数据库所使用的字符集,重启电脑即可。
缺点:不支持long/Clob/Blob大字段。
B支持大字段,与D搭配最为完美。如果BC搭配使用,读出无乱码,写入为乱码,做为where条件传进去的中文参数为乱码。无法使用。如果数据库字符集为C,则只能使用A。如果要读取大字段,只得使用B新建连接。