こんにちは、かつコーチです。
Oracle Database編の2本目です。
前回はOracle Databaseとは何かを解説しました。
今回は、Oracle Databaseに接続してSQLを実行するための代表的な2つのツール、SQL*PlusとSQL Developerの基本操作を解説します。
MySQLでいうmysqlコマンド、PostgreSQLでいうpsqlにあたるものがSQL*Plus、GUIツール(MySQL WorkbenchやpgAdminに相当)がSQL Developerというイメージを持つと理解しやすいです。
SQL*PlusとSQL Developerとは?
CLIツールSQL*Plusの特徴
SQL*Plusは、Oracle Databaseに標準で付属するコマンドライン(CUI)ツールです。
ターミナルからSQLやPL/SQLを直接実行でき、動作が軽量なため、サーバー上での作業やスクリプトの自動実行に向いています。
インストール直後から使えることが多く、GUI環境がないサーバーでの作業では必須のツールです。
GUIツールSQL Developerの特徴
SQL Developerは、オラクル社が無償で提供しているGUI(グラフィカルユーザーインターフェース)のクライアントツールです。
テーブル構造をツリー表示で確認できたり、SQLの実行結果を表形式で見やすく表示してくれたりと、初心者にとってはSQL*Plusよりも直感的に操作できます。
MySQL WorkbenchやpgAdmin、DBeaverを使ったことがある方であれば、操作感は近いものがあります。
基本操作・接続手順
SQL*Plusでの接続
SQL*Plusでの接続方法はいくつかありますが、代表的なのが「Easy Connect」という記法です。
# 書式: sqlplus ユーザー名/パスワード@ホスト名:ポート番号/サービス名
sqlplus system/mypassword@localhost:1521/FREEPDB1
FREEPDB1は、Oracle Database Freeをデフォルト設定でインストールした場合のPDB(プラガブル・データベース)名です。
接続に成功すると、SQL>というプロンプトが表示され、そこにSQL文を入力していきます。
-- 接続後、現在の日時を確認する
SELECT SYSDATE FROM DUAL;
MySQLやPostgreSQLでは不要だったFROM DUALという記述に驚く方も多いはずです。
Oracleでは「テーブルを指定しないSELECT文」という書き方ができないため、値を1つだけ返す仮想テーブルDUALを経由する必要があります。
SQL Developerでの接続設定
SQL Developerでは、接続情報をGUIの入力フォームで設定します。
- 「新規接続」を開き、接続名(任意の名前)を入力する
- ユーザー名・パスワードを入力する
- ホスト名・ポート・サービス名(またはSID)を入力する
- 「テスト」ボタンで接続確認をしてから「接続」する
サービス名を使う接続とSID(旧来の識別方式)を使う接続の2種類があり、Oracle Database Freeでは基本的に「サービス名」方式(FREEPDB1など)を選択します。
よくあるつまずきポイント・エラー対処
ORA-12154:接続識別子が解決できない
Oracle初学者が最初につまずくのが、このORA-12154というエラーです。
❌ Before:接続文字列の書き方を誤り、接続識別子が解決できない
sqlplus system/mypassword@FREEPDB1
ORA-12154: TNS:could not resolve the connect identifier specified
筆者も初めてOracle Database Freeを触ったとき、まさにこのエラーで30分近く詰まった経験があります。
原因は、tnsnames.ora(接続先の名前を定義する設定ファイル)に該当のサービス名が登録されていないことでした。
✅ After:Easy Connect記法でホスト名・ポート・サービス名を直接指定する
sqlplus system/mypassword@localhost:1521/FREEPDB1
tnsnames.oraを都度編集しなくても、Easy Connect記法でホスト・ポート・サービス名を直接書けば接続できます。
初学者のうちは、tnsnames.oraの設定を頑張るよりも、まずEasy Connect記法で動作確認する方が挫折しにくいのでおすすめです。
ORA-01017:パスワードが間違っている
もう1つ多いのが、ユーザー名かパスワードの誤りによるORA-01017エラーです。
Oracleではデフォルトでパスワードの大文字・小文字を区別するため、systemユーザーのパスワードを設定したときの入力ミスに気づかないケースがよくあります。
エラーが出たら、まず「パスワードの大文字小文字」「サービス名のスペルミス」の2点を疑うと解決が早いです。
応用・一歩先の使い方
SQLcl(次世代CLI)への移行
近年のOracle Databaseでは、SQL*Plusの後継としてSQLcl(SQL Command Line)というツールが提供されています。
SQL*Plusと同じくCUIツールですが、コマンド履歴の補完やカラーハイライト、SQLの整形機能など、モダンなCLIツールに近い使い勝手が特徴です。
基本的な使い方はSQLPlusとほぼ同じなので、まずはSQLPlusで基礎を身につけたうえで、日常的な作業ではSQLclに乗り換えるという流れがスムーズです。
まとめ
この記事のポイント
- SQL*PlusはCUIツール、SQL DeveloperはGUIツールで、それぞれMySQLの
mysqlコマンドやMySQL Workbenchに近い立ち位置 - 接続にはEasy Connect記法(
ホスト:ポート/サービス名)を使うと初学者でもつまずきにくい SELECT SYSDATE FROM DUAL;のように、値だけを取得する場合もFROM DUALが必要- ORA-12154(接続識別子エラー)・ORA-01017(パスワードエラー)はOracle初学者の定番エラー
- 次世代CLIのSQLclも合わせて覚えておくと実務で役立つ
次に読むべき記事
- Oracle Databaseとは?エンタープライズ商用RDBMSを初心者向けに解説
- PL/SQLの基本:手続き型でロジックを書く
タグ: Oracle, 初心者向け, 環境構築