首页 > 数据库 >Oracle安装临时客户端使用总结

Oracle安装临时客户端使用总结

时间:2022-12-08 10:07:12浏览次数:73  
标签:总结 LANG NLS TNS -- instantclient Oracle 环境变量 客户端


由于把oracle 11g全部装在机器上,导致机器太卡,于是卸载oracle装上客户端,果然效果明显。

首先要去官网上下载oracle 11客户端,(我用的是64位系统)地址:

​http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html​

下载:instantclient-basic-win-x86-64-***;核心包

instantclient-sqlplus-windows.x64- **;sqlplus包

 

instantclient-jdbc-win32-11.1.0.7.0.zip  包含JDBC Driver的包

 

将其全部解压到 D:\Program Files\instantclient_11_2目录下。

 

在D:\Program Files\instantclient_11_2中新建 NETWORK\ADMIN\文件夹。

在ADMIN下面建 tnsnames.ora文件。

 

自定义DatabaseName=

(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 服务器IP地址)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 服务器SID)
)
)

 

打开pl /SQL-->Toos-->Preferences-->Oracle-->Connection中有ORACLE_HOME和OCI两个选项框,如下:

在ORACLE_HOME中写入连接驱动;

OCI中写入oci.dll文件。

 

这一步我做了下尝试,好像不配也是没有问题的。关键是环境变量的配置,

属性值一定要对,千万不要用分号结尾。

 

添加环境变量:

TNS_ADMIN: D:\ProgramFiles\instantclient_11_2\NETWORK\ADMIN;(nsnames.ora文件所在位置)

NLS_LANG : SIMPLIFIEDCHINESE_CHINA.ZHS16GBK;

LANG : zh_CN.GBK (解决中文乱码)

ORACLE_HOME : D:\ProgramFiles\instantclient_11_2;(户端文件夹所有位置)

  在环境变量PATH中加入 D:\ProgramFiles\instantclient_11_2; (sqlplus所在位置)

测试:开始+R-->cmd-->sqlplus "​​user/passwd@TNS_NAME​​"

OK!!

PS:如果出现ORA-12705:无法访问NLS数据文件,或者指定的环境无效错误,把环境变量中NLS_LANG的变量删除掉!

如果直接去掉很可能会导致中文乱码的问题。

​​TNS_NAME​​是在tnsnames.ora文件配置的TNS名称,如ORCL_188。而不是数据库的实例名称或监听名称。

Oracle安装临时客户端使用总结_oracle

 

注意:这里sqlplus后面的信息一定要用双引号包起来,不然会出现如下异常:

Oracle安装临时客户端使用总结_instantclient_02

 

安装过程中问题汇总:

一、出现ORA-12705:无法访问NLS数据文件,或者指定的环境无效错误

产生原因:

1.可能是由于以前安装过Oracle,没有卸载完全,注册表中还有残留文件。

      Windows平台下,一般的输入cmd运行regedit进入注册表,进入HKEY_LOCAL_MACHINE  -->  SOFTWARE  -->  Wow6432Node  --> Oracle  -->  HEY_DevSuiteHome1,在右边列表中找到NLS_LANG,如果要设置为英文语言,即设置为:AMERICAN_AMERICA.ZHS16GBK ,也可以设置成中文字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

     如果没有安装其他Oracle程序,可以直接将整个Oracle注册表文件删除。

2.在环境变量中设置NLS_LANG出错。由于这里的NLS_LANG的值是一个单一属性值,而不是多个路径,

所以一定 不能再末尾加上分号,不然会一直报错。

 

 

 

二、在PL/SQL developer的登录界面上配置的TNS一直不能显示出来

 

1.首先检查在环境变量中是否配置了TNS_ADMIN。在对应路径下是否正确创建了tnsnames.ora文件。

实例:

ORCL_188=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ip地址)(PORT = 1521)))(CONNECT_DATA = (SID = orcl)))


ORCL_100=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ip地址)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = orcl)))

这里的CONNECT_DATA中配置SID 和SERVICE_NAME 都可以。

 

2.检查是否在环境变量的Path中指定了sqlplus的路径

 在环境变量PATH中加入 D:\Program Files\instantclient_11_2 (sqlplus所在位置)

 注意:环境变量中,配置在最后的属性值不要在属性值最后加“;”分号结尾。

如:

 

TNS_ADMIN的属性值末尾以分号结尾,打开PL/SQL发现,读取不到对应的TNS配置文件信息。

 

 

三、登录的时候一直出现TNS:无监听程序。

 

1.检查TNS配置的端口是否正确。

      我出错的原因就是端口的末位数错了。

 

 

四、监听程序无法识别对应的请求服务

 

这个就提示的比较明显了,TNS中配置的服务实例SERVICE_NAME不存在。

一般对应的是数据库的实例名称,如:orcl

 

打开pl/sql developer出现NLS_LANG和字符集(Character  set)问题

        公司最近培训pl/sql,我安装完毕后打开,遇到如图问题。

Oracle安装临时客户端使用总结_异常_03

        PS:我的操作系统是英文的。

        这是因为系统没有设置NLS_LANG系统变量。有两种方式查看。

1. 查看电脑属性。

Oracle安装临时客户端使用总结_异常_04

2. 命令行查看。

Oracle安装临时客户端使用总结_属性值_05

        PS:这里我已经设置过了,所以仅仅是作个示意。

        如果遇到如下图中的问题,说明客户端字符集与Oracle数据库的字符集不同。

Oracle安装临时客户端使用总结_oracle_06

        查看数据库的字符集的方法:

Oracle安装临时客户端使用总结_环境变量_07

        对方的pl/sql语句是:


 


  1. ​Select * from V$NLS_PARAMETERS where PARAMETER='NLS_CHARACTERSET';​
  2. ​Select USERENV('LANGUAGE') from DUAL;​

        将NLS_LANG的值改为所查到的SIMPLIFIED CHINESE_CHINA.UTF8即可。

PS:我们简介一下字符集的含义。以SIMPLIFIED CHINESE_CHINA.UTF8为例。

  • SIMPLIFIED CHINESE为语言(简体中文);
  • CHINA为国家(中国);
  • UTF8为字符编码;

标签:总结,LANG,NLS,TNS,--,instantclient,Oracle,环境变量,客户端
From: https://blog.51cto.com/u_15905482/5920406

相关文章

  • sql生成数据库字典 Oracle sql server
    SELECT--A.COLUMN_IDAS字段序号,A.TABLE_NAME表名,TT.comments表说明,A.COLUMN_NAMEAS字段名,D......
  • MarkDown入门学习总结教程
    Webelievethatwritingisaboutcontent,aboutwhatyouwanttosay–notaboutfancyformatting.译文:我们坚信写作写的是内容,所思所想,而不是花样格式.Markd......
  • CTT2022总结 DAY1
    感觉vscode不太舒服。时间规划8.30~8.50看了一遍题,T1T3是常规题,T2很怪异。先交了个T1的暴力20pts8.50~9.20先想了想T2的前两档,画了画图发现可以用最远点对算。求了......
  • Oracle数据库PL/SQL学习笔记(一)
    Oracel数据库的基本管理:<spanstyle="font-size:18px;">createtablespacetestdatafile'E:\app\Administrator\oradata\orcl\test.dbf'--注意:名称test不要......
  • Oracle数据库PL/SQL学习笔记三——复合数据的定义
    --自定义记录recorddeclaretypedemo_record_typeisrecord(idnumberdefault1,valuevarchar2(10):='one');demodemo_record_type;begindbms_ou......
  • Oracle数据库PL/SQL学习笔记二——基础控制语句
    <spanstyle="font-size:18px;font-family:Arial,Helvetica,sans-serif;">--简单的if判断</span><spanstyle="font-size:18px;">beginif&var>10and&var<=50......
  • Oracle数据库PL/SQL学习笔记——函数定义
    小技巧:如果在sqlwindow窗口下创建函数,但是创建的函数一直是无效函数(有个小红叉),那么可以再新建-》programwindow-》function 窗口中重写创建函数,这里面有相信的错误信......
  • Oracle数据库学习笔记四——存储过程的值传递和引用传递
    编程语言中的4种子例程:由两种行为定义,即形式值是否返回以及参数列表是值传递还是引用传递。如果返回输出,子例程就是函数,如果不返回,就是过程。所以4中子例程为:1.值传递函......
  • 总结数据监视
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title><!--Vue监视数据原理1.vue会监视data中所有......
  • Java题目集6~8总结Blog
    一、前言题目集六:知识点:Java基本语法,对类的继承、抽象以及多态和容器的应用。题量:较少。难度:难。题目集七:知识点:Java基本语法,类的设计、继承和容器及其容器中排序;迭......