OracleのユーティリティSQL*Plusについてまとめています。
SQL*Plusって何?
SQL*Plusは、Oracleデータベースをインストールすると、本体と一緒にインストールされるバッチ問い合わせツールです。コマンドラインユーザインタフェース(CLI)にて、操作を行います。
SQL*Plusには、専用コマンドや環境設定をおこなってOracleデータベースにアクセスが可能。SQLやPL/SQL、SQL*Plus用のコマンドを入力することで、以下が可能です。
- クエリ結果の書式設定、計算式の実行、データ格納、表示・印刷
- 表の定義、オブジェクト定義の検証
- バッチ・スクリプトの実行
- データベースの管理・チューニング
【関連記事】
▶SQL*PLUS(エスキューエルプラス)とは?基本情報と基本的な使い方を確認しよう!
SQL*Plusの基本操作
SQL*Plusを起動するには、コマンドラインから以下のコマンドを実行します。
sqlplus SQL*Plus: Release 12.2.0.1.0 Production on Wed Jul 6 18:33:32 2016 Copyright (c) 1982, 2016, Oracle. All rights reserved.
SQL*Plusのリリース番号や現在の日付、著作権番号に続いてユーザ名とパスワードを入力するプロンプトが表示されます。
なお、コマンドラインで各種オプションや接続識別子を指定して、デフォルト以外のユーザやデータベースへの接続が可能です。
以下は、ユーザ名user1、パスワードpasswd、ホスト名sales-server、ポート番号1521、サービス名sales.us.acme.comのデータベースに接続する例です。パスワードはコマンドラインで指定が可能ですが、セキュリティ上の問題がありますので、パスワード指定を省略し、都度入力するほうが良いでしょう。
sqlplus user1/passwd@\"sales-server:1521/sales.us.acme.com\"
ログインに成功すると、デフォルトデータベースに接続され、SQL>というコマンドプロンプトが表示されます。
SQL*Plus: Release 12.2.0.1.0 Production on Wed Jul 6 18:33:32 2016 Copyright (c) 1982, 2016, Oracle. All rights reserved. Last Successful login time: Tue Jul 05 2016 23:35:38 -07:00 Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL>
この状態から、SQL*PlusのコマンドやSQL、PL/SQLを実行可能です。
SQL*Plusを終了するには「exit」または「quit」と入力します。
【関連記事】
▶SQL*Plusへ接続する方法を解説【初心者向け】
SQL*PlusのHelpページ
SQL*`Plus起動中は、SQLとは異なるSQL*Plus独自のコマンドが使用できます。
関連)Oracle公式Help Center:SQL*Plusの基本
例えば、describeは指定したデータベースオブジェクトの詳細の定義情報を表示します。以下は、EMP_DETAILS_VIEWというビューの詳細を表示した例です。
SQL>DESCRIBE EMP_DETAILS_VIEW Name Null? Type ----------------------------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) JOB_ID NOT NULL VARCHAR2(10) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4) LOCATION_ID NUMBER(4) COUNTRY_ID CHAR(2) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) DEPARTMENT_NAME NOT NULL VARCHAR2(30) JOB_TITLE NOT NULL VARCHAR2(35) CITY NOT NULL VARCHAR2(30) STATE_PROVINCE VARCHAR2(25) COUNTRY_NAME VARCHAR2(40) REGION_NAME VARCHAR2(25)
プロシージャを指定すると、引数(IN)と返値(OUT)を表示します。以下は、customer_lookupというプロシジャを指定した例です。
SQL>DESCRIBE customer_lookup PROCEDURE customer_lookup Argument Name Type In/Out Default? ---------------------- -------- -------- --------- CUST_ID NUMBER IN CUST_NAME VARCHAR2 OUT
また、SQL*Plusにて、SQLを実行するにはSQLの最後に「/」(スラッシュ)を入力します。以下は、departmentテーブルをcreate tableする例です。
SQL>CREATE TABLE department (DEPARTMENT_ID NUMBER, PERSON EMPLOYEE, LOC NUMBER ); / Table created. SQL>DESCRIBE department Name Null? Type ----------------------------------------- -------- ---------------------- DEPARTMENT_ID NUMBER PERSON EMPLOYEE LOC NUMBER
【関連記事】
▶SQL*Plusコマンド一覧と使い方まとめ
まとめ
- SQL*Plusは、oracle用のコマンドラインインタフェースのユーティリティ
- sqlplusコマンドにオプション指定で、デフォルト以外のユーザ、データベースに接続可能
- SQL*Plus独自のコマンドやSQL、PL/SQLが実行可能