PLSQL没有“登录为“选项 ,并且监听程序当前无法识别连接描述符中请求的服务

事实是这样的,我在用支付宝是把应用停了,所以登陆的时候,就显示监听程序无法识别连接描述符中的请求,修改了LISTENER.ORA , tnsnames.oRA   ,无法正确,无奈,重装了,接下来是这样一个错误

PLSQL没有“登录为“选项 ,并且监听程序当前无法识别连接描述符中请求的服务_第1张图片







,没有连接为,尝试了办法:

PLSQL没有“登录为“选项 ,并且监听程序当前无法识别连接描述符中请求的服务_第2张图片

















PLSQL没有“登录为“选项 ,并且监听程序当前无法识别连接描述符中请求的服务_第3张图片










我的就是那个样子的,后来,我在网上找到这个:


1)安装Oracle 11g 64位
 
2)安装32位的Oracle客户端( instantclient-basic-win32-11.2.0.1.0)
 

下载instantclient-basic-win32-11.2.0.1.0.zip (一定得是32位的,不要下错了版本,Oracle官网有下载),将其解压至Oracle安装目录的Product下(本机命名为:instantclient_11_2):D:\Oracle\app\YM\product\instantclient_11_2。
 
拷贝数据库安装根目录下的一个目录D:\Oracle\app\YM\product\11.2.0\dbhome_1\NETWORK到Oracle客户端目录下D:\Oracle\app\YM\product\instantclient_11_2(其实只需要 NETWORK\ADMIN\tnsnames.ora)
 
3)安装PL/SQL Developer
 
安装 PL/SQL Developer,在perference->Connection里面设置OCI Library和Oracle_Home,例如本机设置为:
 
Oracle Home :D:\Oracle\app\YM\product\instantclient_11_2
 
OCI Library :D:\Oracle\app\YM\product\instantclient_11_2\oci.dll

4) 设置环境变量(修改PATH和TNS_ADMIN环境变量)
 
对于NLS_LANG环境变量, 最好设置成和数据库端一致, 首先从数据库端查询字符集信息:
 SQL> select userenv('language') nls_lang from dual;
 NLS_LANG
 ----------------------------------------------------
 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
 
右击"我的电脑" - "属性" - "高级" - "环境变量" - "系统环境变量":
 1>.选择"Path" - 点击"编辑", 把 "D:\Oracle\app\YM\product\instantclient_11_2;" 加入;
 2>.点击"新建", 变量名设置为"TNS_ADMIN", 变量值设置为"D:\Oracle\app\YM\product\instantclient_11_2;", 点击"确定";
 3>.点击"新建", 变量名设置为"NLS_LANG", 变量值设置为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK", 点击"确定";
 最后点击"确定"退出.


最后点击"确定"退出.我的是32位的,对照着修改,在环境变量里新建了两个变量,在服务重启了服务,就是Oracle11g监听程序当前无法识别连接描述符中请求的服务,我把LISTENER.ORA 的文件,添加了 

     

(GLOBAL_DBNAME = orcl)   
     (ORACLE_HOME = D:\ENVIRONMENT\oracle\product\11.2.0\dbhome_1)   
     (SID_NAME = orcl)   
   ) 

文件夹位置是:D:\ENVIRONMENT\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN。

 
  

添加之后LISTENER.ORA就是这个样子的:

# listener.ora Network Configuration File: D:\ENVIRONMENT\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\ENVIRONMENT\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\ENVIRONMENT\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
(SID_DESC =   
     (GLOBAL_DBNAME = orcl)   
     (ORACLE_HOME = D:\ENVIRONMENT\oracle\product\11.2.0\dbhome_1)   
     (SID_NAME = orcl)   
   )  
  )


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )


ADR_BASE_LISTENER = D:\ENVIRONMENT\oracle

添加之后tnsnames.ora是这个样子的:

# tnsnames.ora Network Configuration File: D:\ENVIRONMENT\oracle\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

重启了服务就可以运行了。





你可能感兴趣的:(oracle)