Oracle数据库ORA-12514错误的解决办法
2014-09-17来源:易贤网

问题提示

错误提示:ERROR:ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect

解决方法:

代码如下:

1. 打开/network/admin/listener.ora文件,找到:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = D:oracleproduct10.1.0db_1)

(PROGRAM = extproc)

)

)

2. 添加:

代码如下:

(SID_DESC =

(GLOBAL_DBNAME = ORACLE)

(ORACLE_HOME = D:oracleproduct10.1.0db_1)

(SID_NAME = ORACLE)

)

3. 最后变成:

代码如下:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = D:oracleproduct10.1.0db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = ORACLE)

(ORACLE_HOME = D:oracleproduct10.1.0db_1)

(SID_NAME = ORACLE)

)

)

4. 保存文件,重启服务中的TNSListener,OK!

注意,一定要重启TNSListener,

方法:命令模式

代码如下:

C:>lsnrctl

LSNRCTL>stop

LSNRCTL>start

搞定,好使了.

另一种出一这种问题的情况是:Ora-12514:TNS:无监听程序

解决办法:TNSListener服务没有启动,把服务启动就可以了。

通常的名字:OracleOraDb10g_home1TNSListener:

该服务对应 %Oracle_HoembinTNSLSNR.EXE

Ora-12514:TNS:监听程序当前无法识别链接描述符中请求的服务。

对于这个错误,网上的做法通常是这样的:

打开:%Oracle_Hoem%/network/admin/listener.ora文件

代码如下:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = D:OracleOracle10g)

(PROGRAM = extproc)

)

后面添加:

代码如下:

(SID_DESC =

(GLOBAL_DBNAME = ORACLE)

(ORACLE_HOME = D:OracleOracle10g)

(SID_NAME = ORACLE)

)

最后变成:

代码如下:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = D:OracleOracle10g)

(PROGRAM = extproc)

) (SID_DESC =

(GLOBAL_DBNAME = ORACLE)

(ORACLE_HOME = D:OracleOracle10g)

(SID_NAME = ORACLE)

)

)

不过我觉得不用这么费力。首先关闭监听器服务,然后关闭数据库服务,启动数据库服务,启动监听器服务。就是这么简单。

更多信息请查看IT技术专栏

推荐信息