300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C# 操作American_America.US7ASCII编码的Oracle数据库出现乱码的问题。

C# 操作American_America.US7ASCII编码的Oracle数据库出现乱码的问题。

时间:2022-01-07 02:50:04

相关推荐

C# 操作American_America.US7ASCII编码的Oracle数据库出现乱码的问题。

最近一个项目,需要连接Oracle数据库,

使用Oracle.ManagedDataAccess库连接,出现中文乱码,

排查发现,Oracle服务端是采用American_America.US7ASCII编码,再Oracle.ManagedDataAccess库中未找到支持中文编码的格式或属性(不确定是否支持英文编码)

尝试解决方法:更换为使用System.Data.OleDb连接数据库

ConnectionString= "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)))(CONNECT_DATA = (SID = xxx))) ;User Id=xxx;Password=xxx";

运行报错:未在本地计算机上注册“OraOLEDB.Oracle”提供程序。

解决方法:

安装ODAC

1.到Oracle官方网站下载ODAC安装包。在网页上找到你要的版本。我下载的是ODAC112040Xcopy_64bit.zip

2.解压缩到D:\ODAC112040Xcopy_64bit,然后打开cmd,进入到这个文件夹。

3.安装ODAC

在cmd中运行install.bat批处理文件:输入"install.bat all D:\OracleClient ODAC"

“all”是安装全部,“D:\OracleClient”是安装目录 "ODAC" 是用于写注册表的 ORACLE HOME NAME

4. 设置环境变量

ORACLE_HOME=D:\OracleClient

NLS_LANG=American_America.US7ASCII

PATH=%ORACLE_HOME%;%ORACLE_HOME%\bin;

5. 根据需要配置tnsnames.ora文件

如果要用组件访问Oracle数据库,那么就要根据需要配置tnsnames.ora文件,并存放于%ORACLE_HOME%\network\admin目录下。

以下tnsnames.ora文件格式如下,供参考:

ORA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.26.231)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = ora)

)

卸载ODAC的方法

用cmd进入到ODAC的安装路径下,然后运行该路径下的uninstall.bat批处理文件。这里也是要注意参数的运用。

若要卸载掉所有组件,可以这样:

uninstall.bat all ODAC

或者

uninstall.bat all D:\OracleClient

手动删除掉安装目录,并把之前添加的环境变量也一并删除即可

(PS:摘自百度经验,并结合自己实际情况有所改动)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。