0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

久しぶりにWindowsへSQL*Plusをインストールしようとしたら罠にハマった話

Last updated at Posted at 2025-03-11

はじめに

Oracle Databaseに接続するCLIベースのクライアントは最近専らSQLclを使用していたのですが、諸般の事情によりSQL*Plusをインストールする必要になりました。
インストール作業はOracle Database 12cの頃以来だったのですが、当時と手順はさして変わらないだろうと思って臨んだら、思わぬ罠にハマってしまいましたので、備忘録として残します。

クライアント端末の環境

Windows 11 Pro 22H2

誤った手順

  1. 上記「Oracle Software Delivery Cloud」で「Oracle Database Client 23」と検索し、「Oracle Database Client 23.5.0.0.0」を選択、ダウンロード実行
    ※要Oracleアカウント
  2. 前項でダウンロードしたexeファイル(ダウンロードマネージャ)を実行し、S/Wのzipファイルをローカルにダウンロードする
  3. 前項でダウンロードしたzipファイルを解凍する
  4. 解凍したファイルを開き、フォルダ内の「setup.exe」を実行する
  5. Oracleホームのユーザー選択画面で「Windows組み込みアカウントの使用」(デフォルト)を選択し「次へ」ボタンをクリック
    この時点で不穏な臭いを感じる
    🤔Oracleホーム...?JAVA_HOMEはよくいじる環境変数だけど、ORACLE_HOMEなんて環境変数触ったことないぞ...?
  6. Oracleベースのフォルダに適当なパスを設定し、「次へ」をクリック
  7. 「選択したOracleホームはOracleベースの外部に設定されています。」と怒られる。いったん無視して「はい」ボタンをクリックして続行
    ハマった罠。警告を無視してはいけない
  8. サマリー画面が表示される。「インストールボタン」をクリック
  9. 「Oracle Clientのインストールが成功しました。」と表示されるので、インストーラを閉じる
  10. コマンドプロンプトを起動しsqlplus -vでパスが通っていることを確認
  11. 前項「6.」でインストールしたフォルダを起点にtnsnames.oraを格納するadminフォルダを探すが、見つからない
    罠の終点

上記サイトでダウンロードできるクライアントは、 Oracle Databaseがインストールされた端末向けの インストーラでした。
そもそも、最初のステップから全く違いました。

正しい手順

  1. 上記URLから「 Instant Client for Microsoft Windows (x64)」のリンクをクリック
  2. Basicパッケージ「instantclient-basic-windows.x64-バージョンdbru.zip」のリンクをクリックしてダウンロード
  3. SQL*Plus パッケージ「instantclient-sqlplus-windows.x64-バージョンdbru.zip」のリンクをクリックしてダウンロード
  4. 「instantclient-basic-windows.x64- バージョン dbru.zip」を任意のフォルダで解凍し、フォルダ名を「client」にリネーム
    ※フォルダのリネームは省略してもOKです。ここでは以降の説明を簡易にすることを目的としてリネームしています。
  5. 「instantclient-sqlplus-windows.x64-バージョンdbru.zip」を解凍
  6. 前項で解凍したフォルダ内の下記ファイルをすべてコピー or 切り取り
    • glogin.sql
    • Orasqlplusic.dll
    • sqlplus.exe
    • sqlplus.sym
  7. 「client\instantclient_バージョン番号」フォルダへ前項でコピーしたファイルをペースト
  8. 「client\instantclient_バージョン番号\network\admin」フォルダ内にtnsnames.oraを作成・格納
  9. 「client\instantclient_バージョン番号」を環境変数PATHに追加

あとは以下のようにコマプロから起動するだけです。

cmd
sqlplus scott/tiger@dbname

SQL*Plus: Release 21.0.0.0.0 - Production on aaa mon d hh:mi:ss yyyy Version 21.9.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Last Successful login time: aaa mon dd yyyy hh:mi:ss +09:00

Connected to:
Oracle Database xxx Release xx.x.x.x.x - Production Version x.x.0.0.0

SQL>

まとめ

バイナリをダウンロードして解凍するだけになったので、レジストリの汚染を気にせずとも良くなった点と、やたらめったらサイズの大きいファイルをダウンロードする必要も無くなったので、作業の流れさえ覚えてしまえば現行手順も悪くないと感じました。
ただ、SQL*Loaderを使う必要がないのであれば、SQLclで事足りてしまうんだよなぁ...

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?