C#使用OracleClient连接Oracle数据库小记

依旧使用微软的System.Data.OracleClient对象连接Oracle(v12),因为旧代码的原因而没有使用比较新的ODP.NET,折腾了几天,最开始一直没有效果,最近两天总算是折腾好了。

暂时总结的要点:

1)服务器要配置正确。

通过“Net Configuration Assistant”将监听程序配置好,在新增监听程序的时候需要区别于已有监听器的额名称(LISTENER)和端口号(默认1521)。同时这个也可在文件(安装目录下\NETWORK\ADMIN\listener.ora)更新,删减。

2)服务器的listener要启动好

可使用服务器bin目录中的LSNRCTRL start来启动对应。如果已启动,会提示

3)对应的用户名与密码,服务名称(不是SID)要记得清楚,权限要足够

首先以管理员登录sqlplus更新用户信息,切记切记即将更新的用户名是以C##开头,同样在客户端也是。赋予connnect,resource等权限(暂时还没涉及太多)。

4)下载的OracleClient

可以从官网下载(需要账号密码登录),或者网盘(链接:https://pan.baidu.com/s/1IOijGWMOYVv-S3OZsjAn7g 密码:7lvl)解压后里面有这个文件夹:instantclient_12_2)的版本要对,否则会提示版本问题,貌似与编译对象的版本有关,没有测试与服务器版本的关系(按理说是无关的,反正是网络嘛)。将这个文件夹路径放写入PATH环境变量,或者拷贝三个dll(oci.dll,oraociei12.dll,oraons.dll,其中第二个有190M之巨)到程序运行目录(子目录貌似不行),基本上就完成了。

5)连接字符串使用

注意user_name,password,ip_host,service_name,可以查看服务器的tnsnames.ora中对应服务的字符串

User ID=user_name;Password=password;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = ip_host)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = service_name)))

参照了很多,包括 C# 使用OracleClient链接的新方式 C# 连接 Oracle 的几种方式,Oracle 12C 新建用户为什么要在用户名前加C##?

没接触过Oracle,暂时一个礼拜,了解了这么多,有真有假,慢慢摸索。

猜你喜欢

转载自my.oschina.net/ev4n/blog/1635289
今日推荐