控制台连接oracle11g报ORA-12560异常

摘要:
而client的sqlplus需要通过listener访问数据库,即非本地连接。server的sqlplus在listener没有启动的情况下依然可以登录:网友分析:LOCAL=NO:非本地连接,即网络连接。它是通过Listener连接到服务器的。客户端的应用通过客户端的监听向服务器的监听发送请求,服务器的监听接收后,在与数据库连接,执行相关操作,在把结果返回给客户端。后来用pl/sqldev,可以读出连接为,却读不出数据库,按照网上的方法,添加TNS_ADMIN环境变量,值为tnsnames.ora文件所在路径,是为了能够找到tnsnames.ora。

oracle11g R2 64bit

oracleClient 11.2 32bit

PL/SQL Developer11.0.2 32bit

今天发现了一个奇怪的现象,如图:

控制台连接oracle11g报ORA-12560异常第1张

后来发现机器上既有server的sqlplus,又有client的sqlplus,而client的环境变量在server的前面,优先使用了client的sqlplus。

而client的sqlplus需要通过listener访问数据库,即非本地连接。server的sqlplus在listener没有启动的情况下依然可以登录:

控制台连接oracle11g报ORA-12560异常第2张

网友分析:

LOCAL=NO:非本地连接,即网络连接。它是通过Listener连接到服务器的。客户端的应用通过客户端的监听向服务器的监听发送请求,服务器的监听接收后,在与数据库连接,执行相关操作,在把结果返回给客户端。这是通过监听的流程。所以在客户端需要配置监听,即配置tnsnames.ora。

LOCAL=YES:本地连接。本地连接不走监听,所以在服务监听没有启动的情况下,通过本地的sqlplus还是可以连上数据库的。

后来用pl/sql dev,可以读出连接为,却读不出数据库,按照网上的方法,添加TNS_ADMIN环境变量,值为tnsnames.ora文件所在路径(如:NETWORKADMIN),是为了能够找到tnsnames.ora。(这步很重要)

连接成功了。

免责声明:文章转载自《控制台连接oracle11g报ORA-12560异常》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇10种 分布式ID生成方式(新增MongoDB的ObjectId)vue实现简单日历下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CollabNet SubversionEdge1.3.0安装配置及管理(转载)

到CollabNet SubversionEdge-1.3.0的用户管理等相关问题 用户管理      SubversionEdge分两类用户:版本库授权用户和控制台用户。   控制台默认用户是:admin,密码admin;版本库默认用户admin,密码admin。但两者保存位置是分开的,账户和密码都是可以分开的。    控制台用户管理默认是只能增加用户,...

.Net ( C# ) 调用控制台程序并取得输出结果

.Net ( C# ) 调用控制台程序并取得输出结果  摘自:http://www.cnblogs.com/sjcatsoft/archive/2009/01/02/1366980.html.Net本身的功能虽然很强,但是,有些时候,控制台、命令行的功用还是不可忽视的,恰当的使用命令行,可以起到事半功倍的效果 这里要说的是以 .net 的程序为宿主,调用 ...

如何修改cmd控制台默认编码为utf-8

如何修改cmd控制台默认编码为utf-8 1.打开cmd窗口后,在窗口顶部右击选择属性,选中选项后会看到默认编码为gbk 2.然后我们在默认窗口路径内,输入chcp命令后回车 936就表示gbk编码 3.然后在窗口中输入chcp 65001,然后回车,即可看到窗口默认编码为utf-8编码了 (65001代表utf-8编码) 4.上面的方法每次都要重新...

var和let区别简述

   因为习惯用var声明变量,以至于ES6出了let来替代var,我依然继续用var,直到后来慢慢了解let之后,开始尝试使用     不同点:       ①:var属于ES5规范,let属于ES6规范      ②:var有预处理机制,let没有。预处理机制也就是常说的声明提前       声明提前:不管变量被声明在函数什么位置,所有变量声明都会被提...

C++ 创建进程的方法

1. C++中创建进程的代码示例: //ProcessDemo.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include<windows.h>#include <iostream> using namespacestd; intmain() { STARTUPINFO startu...

Linux 利用黑洞实现“取消在控制台输出日志”

知识点 在linux中,有三个常用的IO设备 0:代表stdin标准输入。类似Java中的System.in.scan().接收用户在键盘的信息,传递给标注输入设备 1:代表stdout标准输出。类似Java中的System.out.print(),将信息输出到标准输出设备! 2:代表stderr标准错误。类似Java中的System.err.print...