甲骨文公司推出Oracle Data Provider for .NET之后,微软公司随后就宣布停止对.NET Managed Provider for Oracle的支持。技术总监说要Oracle,于是开始使用ODP.NET的日子。安装ODP.NET后,多次出现无法连接到Oracle数据库的尴尬局面,所以就有了这篇文章。

  首先下载,ODP.NET可以在Oracle官网找到,上Google一搜“ODP.NET”第一条结果就是了,这里还是附上最近的下载页面:http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

  然后开始安装之路:

    1,解压缩、双击之后,出现了一个黑框(DOS命令框)。不慌,稍等后就会出现欢迎使用的界面:

    2,下一步,进入选择安装Oracle客户端,还是服务端的界面。

    3,选择客户端,下一步,进入选择安装路径的界面。选择的路径不能包含空格,不然无法通过下一步。

    4,选好路径后,就是验证界面了。如果有错误或者警告,会告诉你。上一步的路径有空格的话,这里就会有个错误,导致无法下一步。

    5,通过所有验证后,就是选择安装哪些组件的界面了。不管那么多,下一步直到安装完成。打卡PL/SQL,输入用户名那些,点击Ok,出现了下面的界面:

  下面开始配置之路:

    1,新建系统环境变量。变量名:ORACLE_HOME,值:安装路径\Administrator\product\11.1.0\client_1,这个client_1不是固定的,不管叫什么,反正11.1.0下面就一个文件夹。

    2,修改系统环境变量path。在path值的最前面加上ORACLE_HOME的值,就是上面的那个路径,用“;”隔开。

    3,添加tnsnames.ora文件。在安装路径\Administrator\product\11.1.0\client_1路径下找到Network文件夹进入,再进入,完整路径为:安装路径\Administrator\product\11.1.0\client_1\Network\Admin。在这个路径下有个Sample文件夹,把里面的tnsnames.ora文件拷贝到Admin文件下。

    4,修改tnsnames.ora文件。打开,就是下面的样子:

# Every line that begins with # is a comment line
#
#
Create Oracle net service names, or aliases, for each database server
# you need
to connect to.
#
# TNSNames.ora sample entry
#
# alias
=
# (DESCRIPTION
=
# (ADDRESS
= (PROTOCOL = TCP)(HOST = myserver.mycompany.com)(PORT = 1521))
# (CONNECT_DATA
=
# (SERVER
= DEDICATED)
# (SERVICE_NAME
= orcl)
# )
# )
#
# You can modify the entry below
for your own database.
#
<data source alias> = Name to use in the connection string Data Source
#
<hostname or IP> = name or IP of the database server machine
#
<port> = database server machine port to use
#
<database service name> = name of the database service on the server

<data source alias> =
(DESCRIPTION
=
(ADDRESS
= (PROTOCOL = TCP)(HOST = <hostname or IP>)(PORT = <port>))
(CONNECT_DATA
=
(SERVER
= DEDICATED)
(SERVICE_NAME
= <database service name>)
)
)

其实上面的英文注释说的很清楚了:data source alias -数据库名,"HOST = "右边是域名或者IP,"POST = "右边是端口,"SERVICE_NAME ="右边是数据库服务的名称。例,连接字符串“Data Source=test;User ID=admin;Password=123;”(用户名和密码是DBA给的,不会在配置里):

test =
(DESCRIPTION
=
(ADDRESS_LIST
=
(ADDRESS
= (PROTOCOL = TCP)(HOST = 192.168.1.3)(PORT = 1500))
)
(CONNECT_DATA
=
(SERVICE_NAME
= example)
)
)

至此,还差一步,重启机器。

  如何在项目里使用呢?添加引用,选择Oracle.DataAccess。