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

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

関連記事

APサーバ(Java)⇒DBサーバ(OracleDB 11g)へJDBC接続する方法まとめ

  (0)目次 (1) 前提条件 (2) JDBCドライバーのインストール  (2-1) JDBCドライバーをダウンロード  (2-2) APサーバにアップロード・解凍 (3) プログラムの …

Azureの「NSG」と「Azure Firewall」の違いについて

  <目次> (1) Azureの「NSG」と「Azure Firewall」の違いについて  (1-1) Azure Firewallとは?  (1-2) Azure Firewallの設 …

Outlookで予定を自動で転送する手順をご紹介

  <目次> (1) Outlookで予定を自動で転送する手順をご紹介  (1-1) 概要/イメージ  (1-2) 設定手順 (1) Outlookで予定を自動で転送する手順をご紹介 本記事 …

Azure Machine LearningでDataStoreを作成してAzure Storage File Shares(ファイル共有)のデータを操作する方法

  <目次> (1) Azure Machine LearningでDataStoreを作成してAzure Storage File Shares(ファイル共有)のデータを操作する方法  ( …

OracleDB11g で新規表領域とスキーマの作成

  (0) 目次 (1) 表領域の作成 (2) スキーマの作成 (3) スキーマの接続権限を付与 (4) 用語解説 (1) 表領域の作成 表領域とデータベースファイル(dbf)を以下のコマン …

  • English (United States)
  • 日本語
Top