oracle連接

oracle裝在虛擬機裏邊,用JDBC連接數據庫寫url的時候不知道數據庫名是什麼,去init.ora裏一看49行db_name='ORCL',以爲這就是數據庫名,連接的時候報錯:Exception in thread "main" java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
192.168.0.50:1521:orcl

然後網上查報listener does not currently know of SID given in connect descriptor的原因,說監聽出毛病的較多,其中有個只這樣改的# listener.ora Network Configuration File: e:\oracle\product\10.2.0\db_1\network\admin\listener.ora 
# Generated by Oracle configuration tools. 
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = PLSExtProc) 
      (ORACLE_HOME = e:\oracle\product\10.2.0\db_1) 
      (PROGRAM = extproc) 
    ) 
    (SID_DESC = 
      (GLOBAL_DBNAME = oracle
      (ORACLE_HOME = e:\oracle\product\10.2.0\db_1) 
      (SID_NAME = oracle
    ) 
  ) 
LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
  ) 

結果還是報這個錯.接着查到這句-->oracle配置文件:tnsnames.ora、listener.ora 裏面寫明瞭遠程連接的實例名和端口號,也就是SERVICE_NAME。
實際上還有另外一種查看方式,那就是用SQL語句查詢。用管理員身份system登陸後輸入“show parameter service_name;”命令便可查看出來。

tnsnames.ora中

MAX1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = mx7vm)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = max1)
    )
  )

原來數據庫對象的名字是max1....

 ok 測試結果:oracle.jdbc.driver.T4CConnection@64f6cd 成功 也許這就是花1個多小時的樂趣

其中他到某位網友這句話,最近其實深有感觸啊--->jdbc:oracle:thin:@localhost:1521:orcl"; @ 後面是主機地址。1521是端口號。這個端口號你在安裝的時候應該記住。orcl是oracle的簡寫。也就是數據庫名稱。你下了oracle,在它的文檔裏有它的鏈接方式。你應該在那裏面去查。這纔是最好的使用新東西。以後工作了也是這樣。

發佈了19 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章