<目次>
Power BI Desktopで Oracle ORA-12504 エラーが出た時の対処方法
エラー内容
再現手順
原因
対処方法
関連するエラーについて
Power BI Desktopで “Oracle: ORA-12504: TNS:listener was not given SERVICE_NAME in CONNECT_DATA” エラーが出た時の対処方法について
エラー内容
Power BI Desktopで「ホーム」→「データを取得」の画面から「Oracle Database」に接続する際に、下記エラーが発生しました。
(図111)
(エラーメッセージ)
接続しようとしているときにエラーが発生しました。 詳細 : "Oracle: ORA-12154: TNS:could not resolve the connect identifier specified"
再現手順
・① Power BI Desktopで「ホーム」→「データを取得」から「Oracle Database」を選択し、「接続」を押下。
(図110①)
↓
・②「DBサーバ名 / データソース名(tnsnames.ora の左辺)」を入力
(例)tk2-262-40837.vs.sakura.ne.jp/orcl
(図110②)
↓
・③ ユーザー名 / パスワードを入力
(図110③)
↓
▲ 冒頭のエラーが発生
原因
- 原因として考えられるのは、DBの「tnsnames.ora」が設定されていないことです。
- 「tnsnames.ora」は、DB接続時の接続情報(ネットワークサービス名 vs ホスト名・ポート・SID)を定義するファイルです。
- DBサーバ側でこのファイルが正しく設定されていない場合、クライアントから接続に失敗する可能性があります。
- また、「tnsnames.ora」は存在していても、(図110②)の画面で「データソース名(tnsnames.oraの左辺)」を正しく入力していない場合も、同様のエラーが発生します。
対処方法
以下の作業を DB サーバ上で実施します。
(※ Oracle DB をローカル端末にインストールしている場合は、ご自身の端末上での作業になります)
・① tnsnames.ora ファイルのサンプルを以下ディレクトリから取得し、(Admin 配下に無い場合)1つ上の Admin 配下にコピーします。
[ご自身のディレクトリ]\product\12.2.0\client_1\Network\Admin\Sample
(図112①)
↓
(図112②)
・② コピーした tnsnames.ora を以下のように修正します。
(Before)
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = )
)
)
↓
(After)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tk2-262-40837.vs.sakura.ne.jp)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
(備考)
<hostname or IP> ⇒ DBサーバのホスト名またはIPアドレス
<port> ⇒ Oracle DBのポート番号
<data source alias> ⇒ SID
(図113)
・③ 再度接続
⇒ 接続成功
(図114)
>目次にもどる
関連するエラーについて
● エラー
(図211)
(エラーメッセージ)
接続しようとしているときにエラーが発生しました。 詳細:"Oracle: ORA-12504: TNS:listener was not given SERVICE_NAME in CONNECT_DATA"
● 原因
サーバ名入力欄で「ホスト名 / データソース名(tnsnames.ora の左辺)」を入力すべきところ、ホスト名のみを指定していたため、リスナーがサービス名を識別できなかったことが原因です。
(NG例)tk2-262-40837.vs.sakura.ne.jp
(図212)
● 対策
サーバ名は「ホスト名 / データソース名(tnsnames.ora の左辺)」で指定します。
※ ホスト名とデータソース名の間はスラッシュ「/」で区切ります。
(OK例)tk2-262-40837.vs.sakura.ne.jp/orcl
(図213)
>目次にもどる