oracletns中不存在名称为_关于数据库:向SQL Developer添加新连接时未显示Oracle TNS名称...
我正在嘗試使用SQL Developer連接到oracle數據庫。
我已經安裝了.Net oracle驅動程序并將tnsnames.ora文件放在
C:\Oracle\product\11.1.0\client_1
etwork\Admin
我在tnsnames.ora中使用以下格式:
dev =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = idpdev2)
)
)
在SQL Developer中,當我嘗試創建新連接時,沒有TNS名稱顯示為選項。
有什么我想念的嗎?
SQL Developer將按以下順序在以下位置查找tnsnames.ora文件
$ HOME / .tnsnames.ora
$ TNS_ADMIN / tnsnames.ora
注冊表中的TNS_ADMIN查找鍵
/etc/tnsnames.ora(非Windows)
$ ORACLE_HOME / network / admin / tnsnames.ora
LocalMachine SOFTWARE ORACLE ORACLE_HOME_KEY
LocalMachine SOFTWARE ORACLE ORACLE_HOME
若要查看正在使用哪個SQL Developer,請在工作表中發出命令show tns
如果您的tnsnames.ora文件未被識別,請使用以下過程:
定義一個名為TNS_ADMIN的環境變量,以指向包含您的tnsnames.ora文件的文件夾。
在Windows中,這是通過導航到"控制面板">"系統">"高級系統設置">"環境變量..."來完成的。
在Linux中,在主目錄的.profile文件中定義TNS_ADMIN變量。
確認操作系統正在識別此環境變量
在Windows命令行中:
回聲%TNS_ADMIN%
從Linux:
回聲$ TNS_ADMIN
重新啟動SQL Developer
現在,在SQL Developer中,右鍵單擊Connections,然后選擇New Connection...。在下拉框中選擇TNS作為連接類型。您從tnsnames.ora中輸入的內容現在應顯示在此處。
對我來說:$ HOME / .tnsnames.ora沒有用...我改用$ HOME / tnsnames.ora。另請注意:您將需要轉至工具->首選項,搜索" tns"并將目錄指向$ HOME。
盡管在SQL開發人員1.5版本的發行說明中有此說明,但我發現在Ubuntu 12.04 LTS上,僅#5起作用。請嘗試以下步驟來檢查您的情況是否正確:forums.oracle.com/message/2769285#2769285。值得注意:作者在Win Vista上遇到了問題。
在Windows中為我工作。永遠記錄東西!
設置TNS_ADMIN對我不起作用。相反,我在計算機上搜索了所有TNSNAMES文件,并更新了所有文件的內容。不知道為什么Windows 7 Sql Developer堅持使用一些舊文件夾中的其他TNSNAMES文件。
注意:$TNS_ADMIN是目錄,而不是實際的.ora文件
我發現TNS_ADMIN的env var需要以斜杠結尾的路徑。如果沒有斜杠,SQL Developer將看不到tnsnames.ora文件。
打開SQL Developer。
轉到工具->首選項->數據庫->高級
然后顯式設置Tnsnames目錄
我的TNSNAMES設置正確,可以連接到Toad,SQL * Plus等,但是我需要這樣做才能使SQL Developer正常工作。也許這是Win 7的問題,因為安裝也很麻煩。
這是最簡單的解決方案,并且有效
接受的答案對我不起作用,但對我有用(Windows Server 2008R2)
在SQLDeveloper中,瀏覽Tools --> Preferences,如下圖所示。
在"偏好設置"選項expand Database --> select Advanced --> under"Tnsnames Directory" --> Browse the directory中,其中存在tnsnames.ora。
然后單擊"確定"。
如下圖所示。
You have Done!
現在,您可以通過TNSnames選項進行連接。
找不到" Databse:Advanced" ==>我的版本是1.5.5
對于低于2.1的版本,或者如果您沒有在2.1或更高版本上指定Tnsnames目錄,請按照@JasonAnderson答案中的指定休假。
我在"工具"->"首選項"->"數據庫"->"高級參數"菜單中沒有Tnsnames目錄選項。我正在使用SqlDeveloper v1.1.3
通過運行TNSPING來檢查連接性(9i或更高版本),您始終可以找到正在使用的tnsnames.ora文件的位置:
C:\>tnsping dev
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38
Copyright (c) 1997, 2005, Oracle. ?All rights reserved.
Used parameter files:
C:\oracle\product\10.2.0\client_1
ETWORK\ADMIN\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)
C:\>
有時,問題出在您在tnsnames.ora中輸入的內容,而不是系統找不到它。就是說,我同意設置tns_admin環境變量是一件好事,因為它避免了在確定具有多個oracle主目錄的系統中準確使用哪個tnsnames文件時不可避免的問題。
如何安裝tnsping工具?
在客戶端安裝中,有一個用于數據庫工具或類似工具的復選框。
Jason提到的步驟非常好,應該可以使用。但是,SQL Developer有一點點扭曲。第一次讀取tnsnames.ora文件時,它將緩存連接規范(主機,服務名稱,端口)。然后,當從tnsname.ora文件中刪除原始條目時,它不會使規范無效。即使在終止并重新啟動SQL Developer之后,緩存仍然存在。這不是處理這種情況的不合邏輯的方式。即使tnsnames.ora文件暫時不可用,只要原始規格仍然正確,SQL Developer仍可以建立連接。問題在于他們的下一個小轉彎。解析連接時,SQL Developer將tnsnames.ora文件中的服務名稱視為區分大小寫的值。因此,如果您以前在文件中使用條目名稱ABCD.world并用名為abcd.world的新條目替換了該條目,則SQL Developer不會更新ABCD.world的連接規范-它將abcd.world視為其他條目完全連接。
為什么我不驚訝Oracle產品將區分大小寫的由oracle開發的文件格式的內容視為大小寫?
@allen:您知道如何強制其清除此列表嗎?如果是這樣,請回復stackoverflow.com/q/6412559/168646
在Sql Developer中,導航到Tools-> preferences-> Datababae-> advanced->將Tnsname目錄設置為包含tnsnames.ora的目錄
上述變化對我的情況沒有任何影響。我可以在命令窗口中運行TNS_PING,但是SQL Developer無法確定tnsnames.ora在哪里。
在我的情況下(Windows 7-64位-Enterprise),問題是Oracle安裝程序將"開始"菜單快捷方式指向了錯誤版本的SQL Developer。安裝程序似乎附帶了三個SQL Developer實例。一個位于%ORACLE_HOME% client_1 sqldeveloper 中,兩個位于%ORACLE_HOME% client_1 sqldeveloper bin 中。
安裝程序安裝了一個開始菜單快捷方式,該快捷方式指向bin目錄中根本無法運行的版本。每當我啟動SQL Developer時,它都會要求輸入密碼,而不記得我選擇了TNS作為連接機制時所做的選擇并顯示空白列表。在其他帖子中引用的數據庫高級設置中,它也沒有TNS目錄字段。
我拋棄了舊的"開始"快捷方式,并安裝了%ORACLE_HOME% client_1 sqldeveloper sqldeveloper.exe的快捷方式。這種變化解決了我的問題。
總結
以上是生活随笔為你收集整理的oracletns中不存在名称为_关于数据库:向SQL Developer添加新连接时未显示Oracle TNS名称...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea测试连接mysql报错08001
- 下一篇: Java里a和b哪个大_Java中 a+