转自: https://www.cnblogs.com/LittleJin/p/5336828.html
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(); }