设为首页 加入收藏

TOP

关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate失败,返回代码为-1,但错误消息文本不可用
2015-11-21 01:51:25 来源: 作者: 【 】 浏览:0
Tags:关于 vs2008 使用 oracleclient 链接 oracle 数据库 OCIEnvCreate 失败 返回 代码 错误 消息 文本 可用
用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理员身份,这些都试过了没有用,查了好久还是没有解决问题,只好换一种方式链接oracle数据了。

我使用的是ODAC方式链接oracle数据库,这样就不需要安装oracle客户端了,我的操作步骤如下:
1.从[url=http://download.oracle.com/otn/other/ole-oo4o/ODTwithODAC1110621.zip?AuthParam=1427792567_926a5eb7e7f7456724673afbdb80c825][/url] 下载安装ODAC安装文件,因为我需要安装文件下面的几个DLL,下载下来的文件为ODTwithODAC1110621.zip 压缩文件。

2.我们解压之后里面有安装setup.exe.点击执行,之后弹出一个dos界面,等待几十秒之后弹出安装界面。按提示点击下一步完成安装。到90%的时候安装会比较慢。

3.安装完之后我们在安装路径下(我的是E:\app\Administrator)可以找到oci.dll,ociw32.dll,orannzentr11,orannzmcs11,orannzsbb11,oraocci11,oraociei11,orasql11.dll,orasqlplusic11,sqora32,sqresja,就这么多DLL,最关键的一个DLL是在(我的是E:\app\Administrator\odp.net\bin)路径下里面有两个文件夹,你对应自己的.Net Framework 选择Oracle.DataAccess.dll。

4.将上面提到的DLL拷贝到DeBug的路径下面,我的 asp.net程序,我拷贝到了bin目录下面

5.重新生成解决方案,写段使用 Oracle.DataAccess.Client方式链接Oracle的方式试一下,是否可以链接成功。

6.我提供下我的例子

测试例子

public void connByOracleClient()
    {
        string connString = @"user id=XXXXpassword=XXXX;Data Source=(DESCRIPTION ="
    + "(ADDRESS = (PROTOCOL = TCP)(HOST = XX.xx.xx.xx)(PORT = 1521))"
   + " (CONNECT_DATA ="
     + " (SERVER = DEDICATED)"
     + " (SERVICE_NAME = xx)"
    + "))";
        OracleConnection conn = new OracleConnection(connString);
        conn.Open();
        string sql = "select * from xx";

        OracleCommand comm = new OracleCommand(sql, conn);
        OracleDataReader rdr = comm.ExecuteReader();
        while (rdr.Read())
        {
            string s = rdr.GetString(5);
        }
运行成功没有任何错误和异常。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇windows下安装不同版本oracle的一.. 下一篇JPA缓存

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: