Java JDBC - SIDではなくサービス名を使用してOracleに接続する方法
JDBC(JPA経由)を使用したJavaアプリケーションで、ホスト名、ポート、Oracle SIDを使用して開発用データベースに接続していましたが、以下のようになりました。
jdbc:oracle:thin:@oracle.hostserver1.mydomain.ca:1521:XYZ
XYZはOracle SIDでした。現在、私はSIDを使用せず、代わりにOracle "Service Name"を使用する別のOracleデータベースに接続する必要があります。
これを試してみましたが、うまくいきません。
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522:ABCD
ABCDは、もう一方のデータベースのサービス名です。
何が間違っているのでしょうか?
240
3
http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA
シン・スタイルのサービス名は、JDBC Thinドライバでのみサポートされています。その構文は
ホスト名:ポート番号:サービス名
jdbc:oracle:thin:scott/tiger@//myhost:1521/myservicename
そこで、私は試してみます。
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
また、Robert Greathouse'さんの回答によると、以下のようにJDBCのURLでTNS名を指定することもできます。
JDBCのURLに以下のようにTNS名を指定することもできます。
お試しください:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522/ABCD
編集:以下のコメントによると、実際には次のようになります:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
(//
に注意)参考になる記事へのリンクをご紹介します。