今天我們來談一談Oracle數據庫管理系統中,可能會遇到的一個錯誤:ORA-12504。在使用Oracle過程中,我們可能會遇到該錯誤,但該錯誤的含義和出現場景可能不盡相同。下面,我們將詳細介紹該錯誤的原因、解決方法和相關注意事項。
首先,我們需要了解該錯誤的含義。錯誤代碼ORA-12504表示TNS列表中不存在當前所請求的連接描述符。當我們嘗試連接Oracle數據庫時,若連接描述符不存在,就會出現該錯誤。
那么,問題出在哪里呢?最常見的情況是數據庫實例名錯誤或不存在。例如,我們使用SQLPlus嘗試連接數據庫,若實例名輸入錯誤或不存在,就會出現該錯誤。
$ sqlplus scott/tiger@ORCL
SQL*Plus: Release 12.2.0.1.0 Production on Fri Nov 27 23:11:35 2020
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
問題在于,我們未指定SERVICE_NAME,導致連接出現錯誤。
還有一種情況是,數據服務名稱在監聽程序的配置文件中未正確配置,也會導致該錯誤出現。例如,在Oracle11g中,我們可使用netca或手動修改listener.ora文件配置監聽程序。如果服務名稱未正確配置,就會出現ORA-12504錯誤。
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
)
)
ADR_BASE_LISTENER = /u01/app/oracle
下一篇css樣式怎么隱藏代碼