Oracle客户端使用

Oracle客户端使用

1.Oracle客户端的安装及配置

大部分时间,Oracle数据库我们都是安装在服务器端,然后再在本地使用其他工具进行连接。例如:PL/SQL、Navicat Premium等其他工具来进行连接。但是Oracle与mysql和MSSQLServer不一样,在服务器端安装好数据库后,Oracle还需要在本地配置客户端,然后才能由其他管理工具连接。

第一步:通过官网下载Oracle的客户端,Oracle 11g及Oracle 11g Clent,Oracle虽说是收费的,但是对于个人学习而言还是可以免费使用的。并且Oracle 的收费规则也并不是对软件本身收费,而是通过对Oracle的服务进行收费。

第二步:安装Oracle Client。解压下载的安装包,就可以看到如下图片,点击安装即可:
客户端
点击setup.exe后,等一会就会弹出安装的图形化界面,选择安装类型为管理员(功能多一点,嘿嘿),然后一直下一步,或者选择安装路径,就可以安装成功了。
不过如果已经安装过Oracle客户端,然后卸载再安装,可能会出现Oracle 11.2.0.1 INS-32025 错误:所选安装与指定Oracle主目录中已安装的软件冲突。这个问题可能是以前安装过的文件在注册表中没有删除干净,将安装目录换一个其他名字就好了。

第三步:在开始第3步之前,首先要明确一点,Oracle Client在服务器上和我们自己的电脑上都需要安装一个。在服务器上,用Oracle Client开启监听;在自己电脑上,配置本地Net服务名。服务器监听,本地Net服务。这个弄明白之后,就可以进行下面的操作。
在开始菜单找到下面的文件夹
Net配置
打开这个配置程序,可以看到如下界面:
配置
在这个几面用到最多的2个选项就是监听程序配置本地Net服务配置。通过前面的说明,监听程序配置是在服务器端配置的。在服务器端安装数据库时,好像会附带安装好Client,直接在安装好的目录找到,然后配置就好了。这里会有个小小的问题,等会讲。

监听程序配置:监听程序的配置比较简单,选择监听程序配置,点击下一步,填写监听程序的名称,后面在一直下一步就好了,就不具体截图了。

本地Net配置本地Net配置会有几个参数需要注意一下,选择本地Net服务名配置,点击下一步,可以选择要做的工作(监听配置是也大致是这样);
这里写图片描述
选择添加,然后下一步:
这里写图片描述
这里的服务名是Oracle数据库实例的名称,安装oracle时,如果没有修改默认数据库实例的名称,会自动新建一个名称为orcl的数据库实例。这里可以填写orcl,接着点下一步,下面要填写的内容就比较容易了。

2.Oracle管理工具的使用

管理工具推荐:PL/SQL(免费,也好用,不过个人不是很喜欢这个界面风格);
Navicat Preminum(好用,界面也好看,不过是收费的,但是大家都懂的,嘿嘿)
这里就介绍一下Navicat Preminum吧。

1.新建连接
点击界面上的连接->选择Oracle,就会弹出下面的窗口:
这里写图片描述
连接名:自己随便起一个就好了,只要自己以后还认的就好。
主机名或IP地址:服务器的IP。
用户名:Oracle的用户名
密码:Oracle的密码

2.用户设置
在刚才的图片中,需要输入用户名和密码。刚开始没有创建新的用户是,一般都是输入管理员的账号。这时候,需要用这个工具创建新的用户。在Oracle中,一般只有一个数据库实例,然后通过创建不同的用户来区分不同的schema(可以等价于MySql或MSSqlServer中的数据库吧)。

添加用户
这里写图片描述
打开连接(双击左侧那个灰色的树形列表),然后点击用户,接着点击添加用户,就会弹出下面的界面:
这里写图片描述
输入用户名、密码,然后点击成员属于,配置成员角色归属。这个属于根据自己需求配置即可,由于我这里需要远程连接和操作数据库,我这里配置了CONNECT和DBA。
这里写图片描述
接着配置一下服务器权限。由于我要对表进行操作,股我勾选了UNLIMITED TABLESPACE这个权限。
这里写图片描述
其他内容可以根据自己需求配置,配置完之后,可以在SQL预览中看到,具体的操作语句(也可以用这个语句直接在数据库中运行)。
这里写图片描述
配置好之后,点击保存,用户的添加就完成了。添加完之后就可以用新增的用户名和密码打开新的连接(相当于连接到新的数据库了吧),然后就可以愉快的操作其他内容了。

3. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

首先说一说出现这个错误的过程。
第一次:使用visual studio开发的WebService部署到服务器上的IIS上,由于项目发布时,目标平台选择的是X86,故在IIS上开始是报错是找不到dll的依赖项,所以必须开启应用池的启用32位应用程序。启用之后,通过部署的WCF服务来从数据库获取数据时,通过调试就可以看到出现了这个异常。
解决办法:既然它提示这个错误,那么我将项目全部编译成64位,这个问题就解决了。但是这种办法不是很通用。

第二次:将正式项目的服务部署在服务器的IIS上,也和上面的原因一样,出现了这个异常,但是正式项目不可能更改全部的目标平台。就只能通过其他方面去更改。
代码生成目标平台不能更改,就只能从数据库入手。现在部署的项目是由于要将测试环境和正式环境区分开来,对比了一下测试服务器和正式服务器的数据库版本,都是64位。那在来回顾一下通过代码或者Oracle管理工具访问Oracle的流程:
代码/Oracle管理工具->Oracle Client配置的Net服务->Oracle Client的监听->Oracle数据库(大致是这样吧,个人理解,如果有错误还请大佬指导)
部署到服务器的IIS上的代码将会通过服务器上的Oracle Client来进行中间2步操作,通过所报的错误,大致能推理出错误应该出现在Oracle Client上,于是从Oracle官网下载了一个32位的Oracle Client,安装到了服务器上,通过这个新安装的客户端配置了Net服务,就发现这个异常消失了。

不过本人还是有一点不是很清楚,那就是服务器上有多个Oracle Client,配置Net服务时不会有太多问题,但是配置监听时,只有通过Oracle数据库安装时附带的Oracle Client进行配置才会生效,其他客户端配置都没用。百度了一下好像说通过下面的内容来配置,但是不怎么会改,还望有大佬指教。
这里写图片描述

Oracle 数据库客户端 在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容: MWDB= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = MWDB) ) ) 2、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径。比如我的本机为:D:/instantclient_11_2/network/admin 3、设置ORACLE的语言,添加环境变量NLS_LANG ,值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK 第一个黄色字块:表示定义远程服务器的在本地主机名 第二个黄色字块:远程数据库实例名 如果不清楚远程数据库的ORACLE 语言,可以ssh或者telnet到远程机器,在命令界面输入,用命令行连接到数据库。 select * from nls_instance_parameters; 查看NLS_LANGUAGE 的值 NLS_LANGUAGE NLS_TERRITORY 4、下载并安装PL.SQL.Developer配置应用 貌似把环境变量Path添加了instantclient就可以了,不需要具体的设置。 配置tools->preferences->connection Oracle Home     D:/instantclient_11_2 OCI library     D:/instantclient_11_2/oci.dll 中文的PL/SQL Developer就是 工具–>首选项–>连接 Oracle主目录     D:/instantclient_11_2 OCI库     D:/instantclient_11_2/oci.dll 5.添加系统属性中的环境变量Path:D:/instantclient_11_2/可以保证在cmd中使用sqlplus链接到远程的oracle sqlplus TAXYS1_1/TAXYS1_1 @'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.225)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED) (SERVICE_NAME = ORCL)))’ sqlplus TAXYS1_1/TAXYS1_1@'(description=(address_list=(address=(proto=tcp)(host=192.168.0.225)(port=1521)))(connect_data=(service_name=orcl)))’ sqlplus TAXYS1_1/TAXYS1_1@192.168.0.225:1521/orcl --------------------- 作者:我在爱的国 来源:CSDN 原文:https://blog.csdn.net/magaiou/article/details/80322685 版权声明:本文为博主原创文章,转载请附上博文链接!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值