【Oracle Database】SQL*Plus・SQL Developerの基本操作

Oracle Database

こんにちは、かつコーチです。

Oracle Database編の2本目です。

前回はOracle Databaseとは何かを解説しました。

今回は、Oracle Databaseに接続してSQLを実行するための代表的な2つのツール、SQL*PlusSQL 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の入力フォームで設定します。

  1. 「新規接続」を開き、接続名(任意の名前)を入力する
  2. ユーザー名・パスワードを入力する
  3. ホスト名・ポート・サービス名(またはSID)を入力する
  4. 「テスト」ボタンで接続確認をしてから「接続」する

サービス名を使う接続と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, 初心者向け, 環境構築

タイトルとURLをコピーしました