Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Microsoft OracleDB PowerBI

Power BI Desktopで Oracle ORA-12504 エラーが出た時の対処方法

投稿日:2023年1月6日 更新日:

 

<目次>

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)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Microsoft, OracleDB, PowerBI
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Windowsでバッチ処理を定期的に実行する方法(タスクスケジューラ使用)

  <目次> (1) Windowsでバッチ処理を定期的に実行する方法(タスクスケジューラ使用)  (1-1) タスクスケジューラの設定手順  (1-2) スケジューラの周期を更に細かく(例 …

Azure Storageをネットワークドライブに割り当てする方法

  <目次> (1) Azure Storageをネットワークドライブに割り当てする方法  (1-1) Azure Storageについて  (1-2) ネットワークドライブへの割り当て手順 …

Azureの仮想ネットワーク(VNet)とは?

<目次> (1) Azureの仮想ネットワーク(VNet)とは?  (1-1) 仮想ネットワーク(VNet)の概要  (1-2) Azureで仮想ネットワーク(VNet)を作る手順  (1-3) 超イ …

Azure Cosmos DBの使い方入門(作成~データ登録~SQL発行)

  <目次> (1) Azure Cosmos DBの使い方入門(作成~データ登録~SQL発行)  (1-0) Azure Cosmos DBとは?  (1-1) STEP1: Cosmos …

SharePointとエクスプローラーの同期方法

<目次> ■SharePointとエクスプローラーの同期方法  ■やりたいこと  ■設定手順  ■同期の解除方法  ■SharePointとOneDriveの違い  ■補足・2025年の注意点と訂正 …

  • English (United States)
  • 日本語
Top