Oracle学习之常见错误整理

一、ORA-12154: TNS: 无法解析指定的连接标识符

在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方式连接,但是Oracle则需要通过Oracle客户端配置网络服务名的方式来连接。否则就会出现“ORA-12154: TNS: 无法解析指定的连接标识符”。配置Oracle客户端详细步骤如下:
    安装好Oracle客户端之后,在开始菜单中依次找到“Oracle - OraClient10g_home1—>配置和移植工具—>Net Manager”并打开(Win7,Win8用户如果没有取得Administrator账号登陆需要以管理员方式运行),依次展开“Oracle Net配置—>本地—>服务命名”点击左侧“加号”配置新的网络服务。

最后,点击“下一步”完成即可,如果不知道或者忘记Oracle服务名可以通过查看服务获得,比如我这里配置的主机名是我本机,在我的电脑服务中找到oracle相关的服务

通过上面的服务名称,可以看出我安装的服务名就是“ORCL”,或者在服务端通过SQL Plus使用sys账号登陆,输入命令
show parameter service_name查看。
OracleDBConsoleORCL是Oracle网页端管理工具的服务,访问地址一般为“http://127.0.0.1:1158/em/console/logon/logon”,如果不习惯用这个来管理数据库可以不用启动。
OracleJobSchedulerORCL是管理Oracle中计划任务的,一般不用启动。
OracleOraDb10g_home1iSQL*Plus是SQL Plus的服务,如果不习惯在命令行下面操作数据库,可以不用启动。
OracleServiceORCL,OracleOraDb10g_home1TNSListener都需要开启,前者是主服务,后者是监听服务。

当在Oracle客户端中配置好Net Manager中配置好服务后就可以通过我们配置的网络服务名访问Oracle数据库了,此配置实质想D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中增加了一行配置(由于我的Oracle是安装在D盘Oracle目录中,具体路径根据安装时选择的路径而定)。

 1 # tnsnames.ora Network Configuration File: d:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
 2 # Generated by Oracle configuration tools.
 3
 4 ORCL =
 5   (DESCRIPTION =
 6     (ADDRESS_LIST =
 7       (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
 8     )
 9     (CONNECT_DATA =
10       (SERVICE_NAME = ORCL)
11     )
12   )

如果在同一台电脑上面同时安装了Oracle客户端和服务端,那么在服务端的安装目录中也会存在同样的配置文件D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,在这种情况下如果我们配置好了客户端Net Manager然后连接Oracle数据库,可能会出现“ORA-12154: TNS: 无法解析指定的连接标识符”这时,你就应该怀疑,我到底访问的是哪个路径下的配置文件呢?此时可以使用tnsping命令。

如果你是在客户端Net Manager中配置的网络服务,但是此时解析出来的使用参数文件却是D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\sqlnet.ora,那么我想你应该明白了。这种情况有两种解决办法:
    第一:在服务端的Net Manager也配置相同的网络服务,或者直接拷贝D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中的配置到D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,每次配置了新的网络服务你都需要这么做,如果不想这么麻烦那就使用第二种解决办法。     
      第二:修改系统环境变量Path值,将D:\Oracle\product\10.2.0\client_1\bin;路径移至D:\Oracle\product\10.2.0\db_1\bin;前面即可一劳永逸。
      注意:造成以上这种情况出现的原因是:在一台电脑上同时安装了oracle客户端和数据库服务,并且是先安装客户端,再安装数据库服务造成的,如果先安装数据库服务,再安装客户端就不会出现这种情况了。
      根据以上方式配置完oracle后,相信在程序中就可以正常连接oracle数据库了。

当我安装好PLSQL Developer软件后登陆时任然出现了“ORA-12154: TNS: 无法解析指定的连接标识符”,如果是Win7,Win8用户甚至可以会出现弹出一个白框的情况,这时需要以管理员身份运行PLSQL Developer,并且确保你的PLSQL Developer是读取的oracle客户端配置,直接取消登陆,在PLSQL Developer工具栏中找到“Tools—>Preferences”,在Oracle的Connection节点中找到Oracle Home选择OraClient10g_home1,保存后关闭PLSQL Developer就可以正常登陆了。

需要注意的是,在安装PLSQL Developer时不能安装在带有括号的目录中,如64bit系统的Program Files (x86)目录,就会出现无论你怎么设置,它依然不停的弹出“ORA-12154: TNS: 无法解析指定的连接标识符”。同样的问题也会出现在其他Oracle数据库管理软件中,比如Toad for Oracle

“ORA-12154: TNS: 无法解析指定的连接标识符”是使用Oracle数据库的新手遇到的比较常见的问题之一,只要我们了解了它的工作方式,冷静排查,相信很容易就能够找到问题的解决办法的。

本人的解决方案:将oracle服务器端下的tnsnames文件(F:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames)文件复制到客户端相同目录下即可。

时间: 2024-08-10 08:26:49

Oracle学习之常见错误整理的相关文章

Hibernate常见错误整理

Hibernate常见错误合集 1.错误:object references an unsaved transient instance - save the transient instance before flushing: com.xxxx.bean.java.Sysblog; nested exception is org.hibernate.TransientObjectException: object references an unsaved transient instanc

JNI常见错误整理

ndk开发常见错误1. android.mk文件不存在 $ ndk-buildAndroid NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk /cygdrive/h/heima6/jni2/ziliao/android-ndk-r7b/build/core/add-application.mk:133: *** Android NDK: Aborting... . 停止. 2.android.mk文件

javascript学习笔记 常见错误和调试

常见错误一:未定义的变量 abc=23; var abc=23; 若没有var也可运行,隐式地创建了一个新的全局变量abc,严格定义变量应该使用var关键字. 常见错误二:区分大小写 var myName="Jim"; If (myName=="jim") alert(myName.toUppercase()); 以上代码中有三处错误:Jim和jim的首字母J不一样,关键字if写成了If,toUpperCase()方法中的字母C应该是大写的. 常见错误三:不匹配的大

github常见错误整理!

1.fatal: remote origin already exists.错误 如果输入$ Git remote add origin [email protected]:github帐号名/项目名.git 提示出错信息:fatal: remote origin already exists. 解决办法如下: 1>.先输入$ git remote rm origin 2>.再输入$ git remote add origin [email protected]:djqiang/gitdemo

MySQL安装常见错误整理

问题一:#mysql ERROR 1045 :Access denied for user 'root'@'localhost' (using password:NO) 问题原因:初始化问题 解决方法:删除data目录重建,重新初始化. 问题二: 当各位在安装.重装时出现could not start the service mysql error:0原因: 卸载mysql时并没有完全删除相关文件和服务,需要手动清除 问题三: make[2]: *** No rule to make targe

ios 常见错误整理 持续更新

本文转载至 http://blog.csdn.net/yesjava/article/details/8086185 1. mutating method sent to immutable object' 从字面上理解:可变的消息发给了不可变的对象.比如NSDictionary类型的对象调用setValue方法.应该把NSDictionary 改成NSMutableDictionary类型.   2.Local declaration of 'content' hides instance v

Django笔记-常见错误整理

1.csrf错误 解决方法:在settings.py里注释掉相关内容即可 MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', #'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.Authenticat

Java常见错误整理(一)

1.配置完Java环境变量之后,仍然不能使用java命令. 解决方法: 如果是Windows10系统出现此问题,是因为个别Windows10系统不识别"JAVA_HOME"环境变量,将path中所有的"%JAVA_HOME%"改成JDK的真实文件夹路径. 环境变量配置有误.仔细核对JDK文件夹地址是否正确. JDK未能正常安装,请重新安装. 2.正确Java代码无法在控制台运行 Java文件可以通过javac命令编译,但无法使用java命令运行. 解决方法: 如果使

Qt中常见错误整理(不定期更新)

(1)error: LNK1104: cannot open file 'libboost_thread-vc120-mt-gd-1_57.lib 编译boost库程序时出现问题 解决方法如下: 1.首先运行D:\boost_1_54_0目录下的bootstrap.bat文件.此时在该目录下生成文件b2.ext 2.执行b2.exe文件,在当前目录下生成/stage/lib 3.把生成的lib文件加入到工程文件中即可.