Oracle使用ODBC连接配置

Posted HandsomeBoy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle使用ODBC连接配置相关的知识,希望对你有一定的参考价值。

该配置是在windows 7 32位下进行的,程序已经通过了测试(使用VBS进行的测试)

1.文件下载

--------------------------------------------------------------------------

下载地址http://www.oracle.com/technetwork/topics/winsoft-085727.html

需要下载两个文件 instantclient-basic-nt-12.1.0.2.0.zip "http://download.oracle.com/otn/nt/instantclient/121020/instantclient-basic-nt-12.1.0.2.0.zip"   

         instantclient-odbc-nt-12.1.0.2.0.zip  "http://download.oracle.com/otn/nt/instantclient/121020/instantclient-odbc-nt-12.1.0.2.0.zip"

到官网下载需要登陆 用户名: ****  密码:*****

将两压缩包进行解压。

将"instantclient-odbc-nt-12.1.0.2.0.zip"里面的所有文件和文件夹拷贝到"instantclient-basic-nt-12.1.0.2.0.zip"解压到的文件里面

假设将文件都放到了"xxx\instantclient_12_1"文件夹里面

--------------------------------------------------------------------------

 

2.安装client

-------------------------------------------------------------------------------------------

打开instantclient_12_1文件夹找到 cmd.exe(若没有则在system32下找到并拷贝过来) 右键"cmd.exe"文件点击以管理员身份运行。

输入"odbc_install.exe"点击Enter运行,若安装成功则会出现"Oracle ODBC Driver is installed successfully"

-----------------------------------------------------------------------------------------

 

3.环境变量需要配置的内容

鼠标右键计算机-->属性-->高级系统设置-->高级-->环境变量-->系统变量

-----------------------------------------------------------

ORACLE_HOME      xxx\instantclient_12_1

Path  添加         xxx\instantclient_12_1

TNS_ADMIN         xxx\instantclient_12_1\network\ADMIN

------------------------------------------------------------

其中xxx\instantclient_12_1\network\ADMIN 文件夹中的 tnsnames.ora文件内容需要进行修改  将"TESTDB"中的"HOST=192.168.19.176"做修改若无tnsnames.ora文件则需要自己建

"SERVICE_NAME=ORCL" ORCL是SID

 

4.odbc需要配置的内容 开始-->控制面板-->管理工具-->数据源(ODBC)-->用户DSN-->添加

---------------------------------------------------------------

点击 "Oracle in instantclient_12_1" 点击 完成 在Oracle ODBC Driver Configuration对话口进行内容填写

=================================================================

Data Source Name    自己随便取个名字如:"bbb"

Description        连接描述如:"xxxxxxxxx"

TNS Service Name     有两种方式进行一种是点击下拉tnsnames.ora配置的名称如"TESTDB"    

             另一种填写    IP地址+端口号+SID 如:  "192.168.19.176:1521/ORCL"

UserID   访问数据库的用户名

======================================================================

点击测试弹出"Oracle ODBC Driver Connect"对话口 填写好密码 点击"OK" 若连接成功则提示 "Connection successful"

至此odbc配置成功

---------------------------------------------------------------

测试
----------------------------------------------------------------------------------

BVS版
以下是一段vbs测试程序  拷贝下列文件取拓展名为".vbs"双击文档可以进行测试
其中的"database=sys"表示要访问的数据库名称是sys
找到"audit_actions"表中的行数并显示出来

‘*******************************************‘从我开始拷贝****************************************

Dim objConnection                          CONNECTION对象实例 
Dim objRecordSet                                   RECORDSET对象实例        
Dim objCommand                                命令对象实例 
Dim strConnectionString                        连接字符串 

Sub ConnectDatabase() 
    Set objConnection = CreateObject("ADODB.CONNECTION")                1 - 建立CONNECTION对象的实例
    strConnectionString = "Dsn=bbb;uid=bips48;pwd=m123;database=sys"                                2 - 建立连接字符串 
    objConnection.Open strConnectionString
    
    Set objRecordSet = CreateObject("ADODB.RECORDSET")                4 - 建立RECORDSET对象实例 
    Set objCommand = CreateObject("ADODB.COMMAND")              5 - 建立COMMAND对象实例 
    objCommand.ActiveConnection = objConnection 
    objCommand.CommandText = "select count(*) from audit_actions" 
        objRecordSet.CursorLocation = 3 
        objRecordSet.Open objCommand                            6 - 执行SQL语句,将结果保存在RECORDSET对象实例中 
    
    intArrayLength = objRecordSet.RecordCount                  将查询结果的行数作为数组的长度 
    MsgBox intArrayLength
    
    If intArrayLength > 0 Then 
      Do While NOT objRecordSet.EOF                                                将数据库查询的列值赋值给数组             
          MsgBox objRecordSet("COUNT(*)")
             objRecordSet.MoveNext 
       Loop     
    End If 
End Sub 

ConnectDatabase

 

 

‘***************************************‘拷贝到我结束*********************************

C#版

        static void Main(string[] args)
        {

            Console.WriteLine(DateTime.Now);
            System.Data.Odbc.OdbcConnectionStringBuilder connBuilder = new System.Data.Odbc.OdbcConnectionStringBuilder();
            connBuilder.Dsn = "bbb";
            connBuilder.Add("uid", "bips48");
            connBuilder.Add("pwd", "m123");
            connBuilder.Add("database", "sys");
            string sss = connBuilder.ToString();
            Console.WriteLine(connBuilder.ToString());
            System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection(connBuilder.ToString());
            try
            {
                conn.Open();
                System.Data.Odbc.OdbcCommand comm = new System.Data.Odbc.OdbcCommand("select count(*) from audit_actions", conn);
                var reader = comm.ExecuteReader();
                while (reader.Read())
                {
                    Console.WriteLine(reader[0].ToString());
                }
                Console.WriteLine("连接成功!");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                conn.Close();
            }
            Console.Read();
        }

 

----------------------------------------------------------------------------------

 

以上是关于Oracle使用ODBC连接配置的主要内容,如果未能解决你的问题,请参考以下文章

oracle已经配置好odbc数据源为啥打开access还是无法连接oracle

Access怎样配置odbc数据源连接ORACLE数据库

配置oracle ODBC问题

linux下odbc连接oracle

kettle5.4ODBC和OCI连接配置

求救:jdbc_odbc链接oracle数据库失败,代码如下,运行后,显示:常连接到数据库。 但没有抓到资料。