2013-05-01 35 views
0

我試圖用這個連接格式無法連接到Oracle數據庫在Ubuntu

sqlplus user/[email protected]:1521/dbname

連接到公司的DB和我越來越

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

這是我用來連接到數據庫與蟾蜍和查詢數據庫相同的連接字符串。我究竟做錯了什麼?

+0

is port == 1521? – 2013-05-01 15:06:52

+0

yessir,我只是把格式放在隱藏我公司的信息。現在將編輯。 – 2013-05-01 15:09:15

+0

試試'user/pwd @ // url:1521/servicename' – 2013-05-01 15:11:02

回答

0

Easy Connect格式只接受服務名稱而不接受SID。從documentation

這種命名方法提供了 數據庫外的現成的TCP/IP連接。它通過 使客戶端延伸主機命名方法的功能,與可選的端口 和服務名的同時連接到數據庫服務器的數據庫的主機名:

CONNECT [email protected][//]host[:port][/[service_name][:server]][/instance_name]] 
Enter password: password 

的連接標識符轉換爲以下連接描述符:

(DESCRIPTION= 
    (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=port)) 
    (CONNECT_DATA= 
    (SERVICE_NAME=service_name) 
    (SERVER=server) 
    (INSTANCE_NAME=instance_name))) 

如果dbname在原來的企圖表示SID,那麼你就需要找出服務名代替。你可以從服務器上的lsnrctl servicesselect value from v$parameter where name = 'service_names'(如果你有權限),或者從SQL * Plus中獲得show parameter service_names,但是如果你無法連接到SQL * Plus,那麼這對你沒有任何幫助。蟾蜍正在使用TNS別名,那麼它可能已經在您的tnsnames.ora