該配置是在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(); }
----------------------------------------------------------------------------------