簡體   English   中英

無法使用12c jar創建Eclipse數據源到Oracle 12c。 然而11g的作品

[英]Unable to create Eclipse Data Source to Oracle 12c using 12c jar. However 11g works

當我打開Data Source Explorer窗口並嘗試創建新的連接配置文件時,我選擇“Oracle”,Oracle Thin Driver,然后將其指向我PC上的以下JAR文件:

C:\oracle_12101_64bit\product\12101_64bit\CLIENT_1\jdbc\lib\ojdbc7.jar

提供連接參數后,它使用以下格式導出以下格式的連接URL

jdbc:oracle:thin:@host:PORT:SID

但是,我想要它得出的是(注意冒號而不是正斜杠)

jdbc:oracle:thin:@host:PORT/SID

我似乎能夠使用生成的URL連接到11g數據庫,但是,不是12c,我不知道這是巧合還是我有不同的問題。

在我的程序中,我使用JPA,它從我的配置文件中以所需的正斜杠格式讀取連接URL,並且程序能夠連接,如果我更改url使用冒號而連接失敗。

如果我無法控制派生連接URL以生成帶斜杠而不是冒號的URL,如何在Eclipse的Data Source Explorer視圖中創建連接配置文件? 我得到的錯誤是:

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

更新1

我注意到的一件事是,即使我關聯了Oracle 12c附帶的jdbc7.jar文件,驅動程序仍然顯示為“Oracle 11”。

在此輸入圖像描述

更新2:

以下是我的tnsnames.ora文件中的示例:

AFDEDEV.MYCO.COM =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = servername.sys.MYCO.com)(PORT = 2))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = afdedev.MYCO.com)
    )
  )

在此輸入圖像描述

看起來連接字符串構建器只需要一個SID。 我的SID是什么,或者我怎么知道? 我試過了AFDEDEV和AFDEDEV.MYCO.COM。 在11g確實有效的情況下,我使用了相當於AFDEDEV的東西。 對不起,我真的不太了解SID與服務名稱。 是否有我可以對數據庫執行的查詢告訴我SID?

這似乎是對Eclipse“Oracle Thin Driver”模板的限制。 它只允許您為連接指定SID,而不是服務名稱; 並且您要么不知道SID,要么沒有向偵聽器注冊(您的DBA需要解析)。

如果您從“Oracle Database 11g驅動程序”模板而不是“Oracle Thin Driver”模板創建新驅動程序,並將其指向12c ojdbc7.jar文件,那么您將能夠選擇提供服務名稱。 然后,它將生成一個類似jdbc:oracle:thin:@//servername.sys.MYCO.com:2/afdedev.MYCO.com的URL jdbc:oracle:thin:@//servername.sys.MYCO.com:2/afdedev.MYCO.com

它仍然是相同的瘦驅動程序,Eclipse似乎更好地理解它,

您還可以從“其他驅動程序”模板創建配置文件,在“添加Jars”部分中添加ojdbc7.jar。

現在,您可以自己指定URL字符串和其他參數,模板不會自動為您填充任何內容。 這樣,您可以使用前面的“/”提供服務名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM