笔者环境:Oracle 11g 64位,win7 64位,vs2005 team版,instantclient-basic 32位 12.0版,instantclient-odbc 32位 12.0版,PLSQLDeveloper11绿色版 32位
为了方便起见,把PLSQLDeveloper一起设置了吧
Oracle 11g安装之后建议先把scott/tiger用户解锁,以便后面的设置(注意scott账户在12c中已经被删除,创建的新账号必须以C##开头)
把当前用户添加到ora_dba用户组
net localgroup ora_dba [当前用户名] /add解锁scott账户,#后为注释,不要复制
sqlplus /nolog #不登录进入sqlplus conn /as dba #当前用户作为管理员登录 alter user scott account unlock; #解锁默认scott账户 alter user scott identified by tiger; #更改scott的密码为tiger conn scott/tiger #用scott/tiger登录 select * from emp; #查询
将instantclient-basic和instantclient-odbc解压到同一文件夹下:如F:\instantclient_12_1
将Oracle安装目录(笔者为F:\app\LENOVO\product\11.2.0\dbhome_1\NETWORK\ADMIN\)下的tnsnames.ora复制到F:\instantclient_12_1下
双击odbc_install,安装odbc驱动,安装之后可以在32位odbc数据源中找到名为Oracle in instantclient_12_1的驱动程序
双击PLSQLDeveloper中的plsqldev.exe,登录界面点取消,进入主界面Tools-->Preferences
Oracle Home填:F:\instantclient_12_1
OCI library填:F:\instantclient_12_1\oci.dll
新建批处理文件start.bat内容如下:
@echo off set path=F:\instantclient_12_1 set ORACLE_HOME=F:\instantclient_12_1 set TNS_ADMIN=F:\instantclient_12_1 set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK start plsqldev.exe保存后双击start.bat启动PLSQLDeveloper
Username填:scott
Password填:tiger
Database填:ORCL(如果安装时没有改的话默认是这个)
点击OK
进入主界面后,把左边Object窗口最大化,选择CURRENT USER、My objects
展开Table可以找到默认创建的4个表,对表右键-->Query可以得到表中的数据
在64位windows系统中从控制面板默认打开的是64位数据源,其路径为:C:\Windows\System32\odbcad32.exe,64位系统的32位数据源的路径为C:\Windows\SysWOW64\odbcad32.exe
在32位windows系统中只有一个数据源,其路径为C:\Windows\System32\odbcad32.exe
所以我们需要打开C:\Windows\SysWOW64\odbcad32.exe配置,
但是我们首先需要配置几个环境变量
环境变量设置
原来有的变量:ORACLE_HOME=F:\app\LENOVO\product\11.2.0\dbhome_1
1.将F:\instantclient_12_1添加到Path
2.将TNS_ADMIN改为OCI的ora文件如F:\instantclient_12_1,由于在这个例子中是直接复制过来的可以不用设置(不设置时会在%ORACLE_HOME%/network/admin/tnsnames.ora路径找,如果ORACLE_HOME也没有设置,那么它会在TNS_ADMIN的目录寻找ora文件)
3.将NLS_LANG改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK(或者AMERICAN_AMERICA.ZHS16GBK),如果原来有值就不要改
然后我们打开32为数据源:C:\Windows\SysWOW64\odbcad32.exe
系统DSN-->添加,选择Oracle in instantclient_12_1,其中Data Source Name和Description随便填,这里都填MYDS,重要的是TNS Services Name默认情况下填127.0.0.1:1521/orcl,格式为:主机名:端口名/实例名,User ID填scott
点击Test Connectiion,在弹出的窗口中输入密码tiger,点击OK,如果出现Connection Succcessful的对话框说明连接成功
打开VS2005,工具-->连接到数据库
点击左侧窗口中的 数据连接-->右键-->添加连接,选择Microsoft ODBC 数据源,点击确定
在弹出的 添加连接 的窗口中
选择使用用户名或使用系统数据源名称,点击刷新,然后选择刚才创建的数据源MYDS,用户名填scott,密码填tiger,点击测试连接,如果弹出窗口显示测试连接成功,说明配置成功。若点击确定,在左侧可以看到具体的表和视图信息。
由于上面配置的是32位数据源,所以编译平台要从AnyCPU改成x86(AnyCPU在64位系统下编译的是64位程序,使用的是64位的数据源)
using System; using System.Collections.Generic; using System.Text; using System.Data.Odbc; using System.Data.OleDb; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //ODBC连接 string conString = "DSN=MYDS;uid=scott;pwd=tiger"; //数据源名,用户名,密码 string sql = "select count(*) from emp"; //emp为orcl实例中的一个表 OdbcConnection con = new OdbcConnection(conString); con.Open(); OdbcCommand com = new OdbcCommand(sql, con); int i = Convert.ToInt32(com.ExecuteScalar()); Console.WriteLine(i); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } } }运行结果