370
SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース 8.1

ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plus

ユーザーズ・ガイドおよびリファレンス

リリース 8.1

Page 2: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusユーザーズ・ガイドおよびリファレンス リリース 8.1

部品番号:A62714-1

第 1版 : 1999年 5月(第 1刷)

原本名 : SQL*Plus User’s Guide and Reference, Release 8.1.5

原本部品番号 : A66736-01

原本著者 : Frank Rovitto

原本協力者 : Larry Baer、Lisa Colston、Roland Kovacs、Karen Denchfield-Masterson、Alison Holloway、Sanjeev Jhala、Christopher Jones、Anita Lam、Nimish Mehta、Luan Nim、Bud Osterberg、Irene Paradisis、Richard Rendell、Farokh Shapoorjee、Larry Stevens、Andre Touma

Copyright © 1996, 1999, Oracle Corporation. All rights reserved.

Printed in Japan.

制限付権利の説明

プログラムの使用、複製または開示は、オラクル社との契約に記された制約条件に従うものとします。著作権、特許権およびその他の知的財産権に関する法律により保護されています。

当ソフトウェア(プログラム)のリバース・エンジニアリングは禁止されております。

このドキュメントの情報は、予告なしに変更されることがあります。オラクル社は本ドキュメントの無謬性を保証しません。

* オラクル社とは、Oracle Corporation(米国オラクル)または日本オラクル株式会社(日本オラクル)を指します。

危険な用途への使用について

オラクル社製品は、原子力、航空産業、大量輸送、医療あるいはその他の危険が伴うアプリケーションを用途として開発されておりません。オラクル社製品を上述のようなアプリケーションに使用することについての安全確保は、顧客各位の責任と費用により行ってください。万一かかる用途での使用によりクレームや損害が発生いたしましても、日本オラクル株式会社と開発元である Oracle Corporation(米国オラクル)およびその関連会社は一切責任を負いかねます。 当プログラムを米国国防総省の米国政府機関に提供する際には、『Restricted Rights』と共に提供してください。この場合次の Legendが適用されます。

Restricted Rights Legend

Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication and disclosure of the Programs shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-14, Rights in Data -- General, including Alternate III (June 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065.

このドキュメントに記載されているその他の会社名および製品名は、あくまでその製品および会社を識別する目的にのみ使用されており、それぞれの所有者の商標または登録商標です。

Page 3: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

i

目次目次目次目次

はじめにはじめにはじめにはじめに ............................................................................................................................................................................ ix

第第第第 I部部部部 SQL*Plusについてについてについてについて

1 概要概要概要概要

SQL*Plusの概要の概要の概要の概要..................................................................................................................................................... 1-2

基本概念............................................................................................................................................................ 1-2

SQL*Plusの対象ユーザー.............................................................................................................................. 1-3

その他の Oracleの処理 .................................................................................................................................. 1-3

このマニュアルの使用方法このマニュアルの使用方法このマニュアルの使用方法このマニュアルの使用方法.................................................................................................................................... 1-4

コマンド構文の規則........................................................................................................................................ 1-5

サンプル表........................................................................................................................................................ 1-6

SQL*Plusの実行に必要なものの実行に必要なものの実行に必要なものの実行に必要なもの............................................................................................................................. 1-7

ハードウェアおよびソフトウェア................................................................................................................ 1-7

オペレーティング・システムに固有の情報................................................................................................ 1-7

ユーザー名およびパスワード........................................................................................................................ 1-7

サンプル表へのアクセス................................................................................................................................ 1-8

2 SQL*Plusの基本の基本の基本の基本

ご使用になる前にご使用になる前にご使用になる前にご使用になる前に.................................................................................................................................................... 2-2

キーボードの使用方法.................................................................................................................................... 2-2

SQL*Plusの起動 .............................................................................................................................................. 2-3SQL*Plusを起動するためのショートカット...................................................................................... 2-4

SQL*Plusの終了 .............................................................................................................................................. 2-4

Page 4: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ii

コマンドの入力と実行コマンドの入力と実行コマンドの入力と実行コマンドの入力と実行............................................................................................................................................ 2-5コマンドの入力........................................................................................................................................ 2-5

ヘルプの表示............................................................................................................................................ 2-6コマンドの実行........................................................................................................................................ 2-6

SQLコマンドの実行 ....................................................................................................................................... 2-6

SQLコマンドの構文について ............................................................................................................... 2-7SQLバッファ ......................................................................................................................................... 2-10コマンド・プロンプトからの現行 SQLコマンドまたは PL/SQLブロックの実行 ................... 2-10

PL/SQLブロックの実行.............................................................................................................................. 2-10

SQL*Plusコマンドの実行 ............................................................................................................................ 2-11SQL*Plusコマンドの構文について.................................................................................................... 2-12

コマンドの実行に影響を及ぼす変数.......................................................................................................... 2-13

データベースへの変更の自動保存.............................................................................................................. 2-14

実行中のコマンドの停止.............................................................................................................................. 2-15

実行したコマンドのタイミング統計の収集.............................................................................................. 2-16

ホスト・オペレーティング・システムの実行.......................................................................................... 2-16役立つ情報役立つ情報役立つ情報役立つ情報.............................................................................................................................................................. 2-16

表定義のリスト表示...................................................................................................................................... 2-16

PL/SQL定義のリスト表示.......................................................................................................................... 2-17

表示の制御...................................................................................................................................................... 2-17

エラー・メッセージの解釈.......................................................................................................................... 2-18

3 コマンド操作コマンド操作コマンド操作コマンド操作

編集コマンド編集コマンド編集コマンド編集コマンド............................................................................................................................................................ 3-2

バッファ内容のリスト表示............................................................................................................................ 3-3

現在行の編集.................................................................................................................................................... 3-4

新しい行の追加................................................................................................................................................ 3-5

行へのテキストの追加.................................................................................................................................... 3-6

行の削除............................................................................................................................................................ 3-7

システム・エディタを使用したコマンドの編集........................................................................................ 3-7後で使用するコマンドの保存後で使用するコマンドの保存後で使用するコマンドの保存後で使用するコマンドの保存................................................................................................................................ 3-8

コマンド・ファイルへのコマンドの格納.................................................................................................... 3-8

バッファ内容を保存することによるコマンド・ファイルの作成.................................................... 3-8INPUTおよび SAVEを使用したコマンド・ファイルの作成 ......................................................... 3-9システム・エディタを使用したコマンド・ファイルの作成.......................................................... 3-11

コマンド・ファイルへのコメントの挿入.................................................................................................. 3-11

Page 5: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

iii

REMARKコマンドの使用方法 ........................................................................................................... 3-11/*...*/の使用方法.................................................................................................................................. 3-12

--の使用方法.......................................................................................................................................... 3-12

コマンド・ファイルの取出し...................................................................................................................... 3-13

コマンド・ファイルの実行.......................................................................................................................... 3-14

SQL*Plus起動時のコマンド・ファイルの実行................................................................................ 3-15

コマンド・ファイルのネスト...................................................................................................................... 3-15

コマンド・ファイルの変更.......................................................................................................................... 3-16

リターン・コードを伴ったコマンド・ファイルの終了.......................................................................... 3-17

SQL*Plus環境の設定 .................................................................................................................................... 3-17LOGINファイルの変更 ....................................................................................................................... 3-17

SQL*Plusシステム変数の格納および復元................................................................................................ 3-18

システム変数の復元.............................................................................................................................. 3-18対話型コマンドの作成対話型コマンドの作成対話型コマンドの作成対話型コマンドの作成.......................................................................................................................................... 3-19

ユーザー変数の定義...................................................................................................................................... 3-19

置換変数の使用方法...................................................................................................................................... 3-20置換変数を使用する位置および方法.................................................................................................. 3-21値の入力を求める不要なプロンプトの回避...................................................................................... 3-23

制限.......................................................................................................................................................... 3-25システム変数.......................................................................................................................................... 3-25

STARTコマンドを使用してパラメータを渡す方法 ................................................................................ 3-25

ユーザーとの通信.......................................................................................................................................... 3-27ユーザー変数値のプロンプトおよびアクセプト.............................................................................. 3-27置換変数の入力を求めるプロンプトのカスタマイズ...................................................................... 3-28

メッセージの送信および [Return]の入力のアクセプト................................................................. 3-30画面の消去.............................................................................................................................................. 3-30

バインド変数の使用方法バインド変数の使用方法バインド変数の使用方法バインド変数の使用方法...................................................................................................................................... 3-30

バインド変数の作成...................................................................................................................................... 3-31

バインド変数の参照...................................................................................................................................... 3-31

バインド変数の表示...................................................................................................................................... 3-31

REFCURSORバインド変数の使用方法バインド変数の使用方法バインド変数の使用方法バインド変数の使用方法............................................................................................................ 3-32文のトレース文のトレース文のトレース文のトレース.......................................................................................................................................................... 3-35

レポートの制御.............................................................................................................................................. 3-35

Execution Plan ............................................................................................................................................... 3-36

統計.................................................................................................................................................................. 3-37

パラレル問合せおよび分散問合せのトレース.......................................................................................... 3-40

Page 6: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

iv

4 問合せ結果の書式の設定問合せ結果の書式の設定問合せ結果の書式の設定問合せ結果の書式の設定

列の書式設定列の書式設定列の書式設定列の書式設定............................................................................................................................................................ 4-2

列ヘッダーの変更............................................................................................................................................ 4-2

NUMBER列の書式設定 ................................................................................................................................. 4-4

データ型の書式設定........................................................................................................................................ 4-6

列の表示属性のコピー.................................................................................................................................... 4-8

列の表示属性のリスト表示およびリセット................................................................................................ 4-9

列の表示属性の抑止および復元.................................................................................................................. 4-10

折り返した列の値の後で文字の行を出力する方法.................................................................................. 4-10間隔の設定およびサマリー行によるレポートの明確化間隔の設定およびサマリー行によるレポートの明確化間隔の設定およびサマリー行によるレポートの明確化間隔の設定およびサマリー行によるレポートの明確化.................................................................................. 4-11

ブレーク列内の値の重複の抑止.................................................................................................................. 4-12

ブレーク列の値が変更されたときの空白の挿入...................................................................................... 4-13

各行の後に空白を挿入する方法.................................................................................................................. 4-14

複数の間隔設定技法の使用方法.................................................................................................................. 4-14

ブレーク定義のリスト表示および取消し.................................................................................................. 4-16

ブレーク列の値が変更されたときにサマリー行を計算する方法.......................................................... 4-16

レポートの終わりでのサマリー行の計算.................................................................................................. 4-20

複数のサマリー値およびサマリー行の計算.............................................................................................. 4-21

COMPUTE定義のリスト表示および取消し............................................................................................. 4-22ページおよびレポートのタイトルとサイズの定義ページおよびレポートのタイトルとサイズの定義ページおよびレポートのタイトルとサイズの定義ページおよびレポートのタイトルとサイズの定義.......................................................................................... 4-23

上部タイトルと下部タイトルおよびヘッダーとフッターの設定.......................................................... 4-23

タイトルの中にページ番号およびその他のシステム管理値を表示する方法...................................... 4-28

ページ・タイトル定義のリスト表示、抑止、復元.................................................................................. 4-30

タイトル内に列の値を表示する方法.......................................................................................................... 4-30

タイトル内に現在の日付を表示する方法.................................................................................................. 4-32

ページ・サイズの設定.................................................................................................................................. 4-32

ファイルへの結果の格納.............................................................................................................................. 4-35

問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果の格納および印刷.............................................................................................................................. 4-35フラット・ファイルの作成.................................................................................................................. 4-36

プリンタへの結果の出力.............................................................................................................................. 4-36

5 データベース管理データベース管理データベース管理データベース管理

概要概要概要概要............................................................................................................................................................................ 5-2データベースの起動および停止の概要データベースの起動および停止の概要データベースの起動および停止の概要データベースの起動および停止の概要................................................................................................................ 5-2

データベースの起動........................................................................................................................................ 5-2

Page 7: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

v

データベースの停止........................................................................................................................................ 5-3REDOログ・ファイルログ・ファイルログ・ファイルログ・ファイル........................................................................................................................................... 5-4

ARCHIVELOGモード ................................................................................................................................... 5-4データベースの回復データベースの回復データベースの回復データベースの回復................................................................................................................................................ 5-5

6 SQLデータベースへのアクセスデータベースへのアクセスデータベースへのアクセスデータベースへのアクセス

デフォルト・データベースへの接続デフォルト・データベースへの接続デフォルト・データベースへの接続デフォルト・データベースへの接続.................................................................................................................... 6-2リモート・データベースへの接続リモート・データベースへの接続リモート・データベースへの接続リモート・データベースへの接続........................................................................................................................ 6-2

SQL*Plusからのリモート・データベースへの接続.................................................................................. 6-3

SQL*Plus起動時のリモート・データベースへの接続.............................................................................. 6-3

データベース間でのデータのコピーデータベース間でのデータのコピーデータベース間でのデータのコピーデータベース間でのデータのコピー.................................................................................................................... 6-4

COPYコマンドの構文について.................................................................................................................... 6-5

宛先の表の扱いを制御する方法.................................................................................................................... 6-6

COPYで表示されるメッセージの解釈........................................................................................................ 6-8

別ユーザーの表の指定.................................................................................................................................... 6-81つのデータベース上にある表の間でのデータのコピーつのデータベース上にある表の間でのデータのコピーつのデータベース上にある表の間でのデータのコピーつのデータベース上にある表の間でのデータのコピー................................................................................. 6-9

第第第第 II部部部部 リファレンスリファレンスリファレンスリファレンス

7 SQL*Plusの起動およびヘルプの表示の起動およびヘルプの表示の起動およびヘルプの表示の起動およびヘルプの表示

SQLPLUSコマンドによるコマンドによるコマンドによるコマンドによる SQL*Plusの起動の起動の起動の起動 .................................................................................................... 7-2

サイト・プロファイルの設定........................................................................................................................ 7-4

ユーザー・プロファイルの設定.................................................................................................................... 7-4リターン・コードの受信........................................................................................................................ 7-4

ヘルプの表示ヘルプの表示ヘルプの表示ヘルプの表示............................................................................................................................................................ 7-5

8 コマンド・リファレンスコマンド・リファレンスコマンド・リファレンスコマンド・リファレンス

SQL*Plusコマンド一覧コマンド一覧コマンド一覧コマンド一覧......................................................................................................................................... 8-2@(アット・マーク)(アット・マーク)(アット・マーク)(アット・マーク)............................................................................................................................................... 8-6

@@(二重アット・マーク)(二重アット・マーク)(二重アット・マーク)(二重アット・マーク).................................................................................................................................... 8-8/(スラッシュ)コマンド(スラッシュ)コマンド(スラッシュ)コマンド(スラッシュ)コマンド..................................................................................................................................... 8-10ACCEPT.................................................................................................................................................................. 8-11

APPEND................................................................................................................................................................. 8-13ARCHIVE LOG .................................................................................................................................................... 8-15ATTRIBUTE .......................................................................................................................................................... 8-19

Page 8: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

vi

BREAK.................................................................................................................................................................... 8-21BTITLE ................................................................................................................................................................... 8-26

CHANGE ............................................................................................................................................................... 8-27CLEAR .................................................................................................................................................................... 8-30COLUMN............................................................................................................................................................... 8-32

COMPUTE ............................................................................................................................................................. 8-43CONNECT ............................................................................................................................................................. 8-49COPY ...................................................................................................................................................................... 8-51

DEFINE .................................................................................................................................................................. 8-54DEL.......................................................................................................................................................................... 8-56DESCRIBE ............................................................................................................................................................. 8-58

DISCONNECT...................................................................................................................................................... 8-65EDIT ........................................................................................................................................................................ 8-66EXECUTE ............................................................................................................................................................... 8-68

EXIT ........................................................................................................................................................................ 8-69GET ......................................................................................................................................................................... 8-71HELP ....................................................................................................................................................................... 8-73

HOST ...................................................................................................................................................................... 8-74INPUT..................................................................................................................................................................... 8-75LIST......................................................................................................................................................................... 8-77

PASSWORD .......................................................................................................................................................... 8-79PAUSE..................................................................................................................................................................... 8-81PRINT ..................................................................................................................................................................... 8-82

PROMPT ................................................................................................................................................................ 8-83RECOVER .............................................................................................................................................................. 8-85REMARK ............................................................................................................................................................... 8-90

REPFOOTER ......................................................................................................................................................... 8-91REPHEADER ........................................................................................................................................................ 8-93RUN ........................................................................................................................................................................ 8-97

SAVE ....................................................................................................................................................................... 8-98SET ........................................................................................................................................................................ 8-100SHOW................................................................................................................................................................... 8-123

SHUTDOWN ...................................................................................................................................................... 8-127SPOOL .................................................................................................................................................................. 8-129START................................................................................................................................................................... 8-130

STARTUP ............................................................................................................................................................. 8-132STORE .................................................................................................................................................................. 8-136TIMING ............................................................................................................................................................... 8-137

Page 9: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

vii

TTITLE ................................................................................................................................................................. 8-139UNDEFINE .......................................................................................................................................................... 8-143

VARIABLE ........................................................................................................................................................... 8-144WHENEVER OSERROR................................................................................................................................... 8-150WHENEVER SQLERROR ................................................................................................................................ 8-152

A COPYコマンドのメッセージおよびコードコマンドのメッセージおよびコードコマンドのメッセージおよびコードコマンドのメッセージおよびコード

B リリースリリースリリースリリース 8.1.5での拡張機能での拡張機能での拡張機能での拡張機能

C SQL*Plusの制限の制限の制限の制限

D SQLコマンド・リストコマンド・リストコマンド・リストコマンド・リスト

E セキュリティセキュリティセキュリティセキュリティ

F 旧リリースの旧リリースの旧リリースの旧リリースの SQL*Plusコマンドコマンドコマンドコマンド

用語集用語集用語集用語集

索引索引索引索引

Page 10: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

viii

Page 11: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ix

はじめにはじめにはじめにはじめに

『SQL*Plus(「シークェル・プラス」と発音します)ユーザーズ・ガイドおよびリファレンス』では、SQL*Plusプログラムおよびその使用方法について紹介します。 それぞれのSQL*Plusコマンドについても詳細に説明します。

Page 12: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

x

対象読者対象読者対象読者対象読者このマニュアルは、SQLデータベース言語の基礎知識がある業務専門職および技術専門職の方を対象としています。 このデータベース・ツールについて知識がない場合は、『Oracle8i SQLリファレンス』を参照してください。SQL*Plusとともに PL/SQLデータベース言語を使用する計画がある場合、PL/SQLの使用方法については『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

マニュアルの使用方法マニュアルの使用方法マニュアルの使用方法マニュアルの使用方法次の表に、このマニュアルで説明するトピックの一覧、各トピックの説明およびそのトピックが説明されている章番号について示します。

第Ⅰ部第Ⅰ部第Ⅰ部第Ⅰ部 SQL*Plusについてについてについてについて

トピックトピックトピックトピック 説明説明説明説明 章番号章番号章番号章番号

概要 SQL*Plusの概要、このマニュアルの使用方法および SQL*Plusを実行するための情報について説明します。

1

SQL*Plusの基礎知識 SQL*Plusの起動方法、およびコマンドを入力して実行する方法について説明します。 ここでは、サンプル表を使って、ステップごとに例を学習します。

2

コマンド操作 いくつかの例を使って、コマンドの編集方法、コマンドを後で使用するために保存する方法、対話型コマンドの作成方法について説明します。

3

問合せ結果の書式設定 列を書式設定する方法、間隔を設定したり、サマリー行を使ったりしてレポートを見やすくする方法、ページのサイズおよびタイトルを定義する方法、問合せ結果の格納および出力方法について説明します。 ステップごとに例も使用します。

4

データベース管理 この章は、データベース管理者(DBA)が使用することを目的としています。SQL*Plusでの基本的なデータベース管理機能について説明します。

5

データベースへのアクセス

デフォルト・データベースおよびリモート・データベースに接続する方法、データベース間および同じデータベースでの 2つの表の間でデータをコピーする方法について説明します。

6

Page 13: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

xi

第Ⅱ部第Ⅱ部第Ⅱ部第Ⅱ部 リファレンスリファレンスリファレンスリファレンス

トピックトピックトピックトピック 説明説明説明説明 章番号章番号章番号章番号

SQL*Plusの起動およびヘルプの表示

オペレーティング・システムのプロンプトからSQL*Plusにアクセスする方法、およびオンライン・ヘルプにアクセスする方法について説明します。

7

コマンド・リファレンス

SQL*Plusコマンドの概要、それぞれの SQL*Plusコマンドの詳細をアルファベット順で説明します。

8

COPYコマンドのメッセージおよびコード

COPYコマンドのエラー・メッセージ、原因、およびエラーから回復するための適切な処置を示します。

付録 A

リリース 8.1.5での機能強化

リリース 8.1.5での SQL*Plusの機能強化について説明します。

付録 B

SQL*Plusの制限 SQL*Plusの要素の最大値を示します。 付録 C

SQLコマンド・リスト

主要な SQLコマンドおよび句を示します。 付録 D

セキュリティ 特定の SQL*Plusおよび SQLコマンドへのアクセスを制限する方法について説明します。

付録 E

旧リリースのSQL*Plusコマンド

旧リリースからの SQL*Plusコマンドについての情報を提供します。

付録 F

用語集 Oracleおよび SQL*Plusに関連した専門用語について説明します。

用語集

Page 14: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

xii

関連マニュアル関連マニュアル関連マニュアル関連マニュアル次に、関連マニュアルを示します。

■ 『SQL*Plusクイック・リファレンス』

■ 『PL/SQLユーザーズ・ガイドおよびリファレンス』

■ 『Oracle8i SQLリファレンス』

■ 『Oracle8i概要』

■ 『Oracle8i管理者ガイド』

■ 『Oracle8iバックアップおよびリカバリ・ガイド』

■ 『Oracle8iアプリケーション開発者ガイド』

■ 『Oracle8i分散システム』

■ 『Oracle8iレプリケーション・ガイド』

■ 『Oracle8iユーティリティ・ガイド』

■ 『Oracle8iエラー・メッセージ』

■ 『Oracle8i移行ガイド』

■ 『Oracle8iリファレンス・マニュアル』

■ 『Oracle8iチューニング』

■ 『Oracle8i Parallel Server概要および管理』

■ 『Oracle8i Net8管理者ガイド』

■ 『Oracle8iコール・インタフェース・プログラマーズ・ガイド』

■ 『Pro*COBOLプリコンパイラ・プログラマーズ・ガイド』

■ 『Pro*C/C++プリコンパイラ・プログラマーズ・ガイド』

■ ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンス

Page 15: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

第第第第 I部部部部SQL*Plusについてについてについてについて

この部では、SQL*Plusの概要について説明します。 SQL*Plusの実行方法の概要、およびさまざまな例を使用して SQL*Plusを説明します。

この部では、次の章について説明します。

■ 概要

■ SQL*Plusの基本

■ コマンド操作

■ 問合せ結果の書式の設定

■ データベース管理

■ SQLデータベースへのアクセス

Page 16: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース
Page 17: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

概要 1-1

1概要概要概要概要

この章では、SQL*Plusの概要を紹介し、次のトピックについて説明します。

■ SQL*Plusの概要

■ このマニュアルの使用方法

■ SQL*Plusの実行に必要なもの

Page 18: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusの概要

1-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusの概要の概要の概要の概要SQL*Plusプログラムは、SQLデータベース言語およびそのプロシージャ型言語拡張機能である PL/SQLと一緒に使用できます。 SQLデータベース言語を使用すると、Oracle内のデータの格納および取出しができます。 PL/SQLを使用すると、プロシージャ型ロジックを通して複数の SQLコマンドへリンクできます。

SQL*Plusを使用すると、SQLコマンドおよび PL/SQLブロックを操作できるほか、多数の作業ができます。 SQL*Plusを通して実行できることは、次のとおりです。

■ SQLコマンドおよび PL/SQLブロックの入力、編集、取出し、および実行

■ レポートの書式の設定、レポートの書式に基づいた計算の実行、レポートへの格納、および問合せ結果のレポート・フォームへの出力

■ 表の列定義のリスト表示

■ SQLデータベース間でのデータへのアクセスおよびデータのコピー

■ エンド・ユーザーへのメッセージの送信、およびエンド・ユーザーからの応答のアクセプト

■ データベースの管理

基本概念基本概念基本概念基本概念次に、SQL*Plusの主要な概念の定義を説明します。

コマンド ユーザーが SQL*Plusまたは Oracleに与える命令

ブロック プロシージャ型ロジックによって相互に関連付けられている SQLおよび PL/SQLコマンドのグループ

表 Oracleでの記憶域の基本単位

問合せ 1つ以上の表から情報を取り出す SQLコマンド(正確には SQL SELECTコマンド)

問合せ結果 問合せによって取り出したデータ

レポート ユーザーが SQL*Plusコマンドによって書式を設定した問合せ結果

Page 19: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusの概要

概要 1-3

SQL*Plusの対象ユーザーの対象ユーザーの対象ユーザーの対象ユーザーSQL*Plus、SQL、および PL/SQLコマンド言語は、データベースの操作経験があるユーザーのニーズに応える十分な機能を備えている一方、Oracleでの作業を学習中の新規ユーザーにも十分に分かりやすい設計になっています。

SQL*Plusコマンド言語は、使いやすいように設計されています。 たとえば、データベース内の ENAMEというラベルが付いた列に、"Employee"というもっとわかりやすいヘッダーを付けるには、次のコマンドを入力します。

COLUMN ENAME HEADING EMPLOYEE

同様に、EMPという表の列定義をリスト表示するには、次のコマンドを入力します。

DESCRIBE EMP

その他のその他のその他のその他の Oracleの処理の処理の処理の処理ネットワーク・コンピューティング・アーキテクチャ用の Oracle Toolsは、ネットワーク・コンピューティング用の高性能で頑強な企業アプリケーションを開発者が効率よく経済的に構築し、管理し、実行する助けとなります。

JDeveloper Suite Javaに対応したコンポーネント・ベースのサーバー中心アプリケーションをビルドする 3GL開発ツール

Oracle Enterprise Developer Suite

企業クラスのクライアント /サーバーおよびWeb用データベース・アプリケーションをビルドするための統合された柔軟性のあるツール・セット

Oracle Application Server

Webブラウザおよびインターネットを通してデータベースにアクセスできるようにするツール

Oracle Designer データベース・アプリケーション用の一連のクライアント /サーバー設計ツール

Oracle Developer 一連のクライアント /サーバーおよびWeb開発ツール

Oracle Discoverer 一連のエンド・ユーザー問合せツール

Oracle Programmer 一連の 3GLプログラミング言語インタフェース

Oracle Reports 社内のイントラネットまたはインターネットを通じて動的に情報を展開するためのパブリッシングおよびレポーティング・ソリューション

Oracle Workflow ビジネスのプロセス定義および自動化をサポートするワークフロー管理システム

Oracle Express 財務、販売、および市場分析用の強力な OLAP(Online Analytical Processing)サーバー、ツール、および事前ビルド・アプリケーション

Page 20: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

このマニュアルの使用方法

1-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

このマニュアルの使用方法このマニュアルの使用方法このマニュアルの使用方法このマニュアルの使用方法このマニュアルでは、すべてのオペレーティング・システムに適用される SQL*Plusについて説明します。 ただし、SQL*Plusのいくつかの点は、オペレーティング・システムごとに異なります。 それらのオペレーティング・システム固有の詳細は、ご使用のシステムの Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。 これらのオペレーティング・システム固有のマニュアルは、『SQL*Plusユーザーズ・ガイドおよびリファレンス』と併用してください。

このマニュアルの全編を通じて、コマンドの入力方法を示す例では、共通のコマンド構文および共通のサンプル表セットを使用しています。それらについて、次に説明します。 コマンド構文の規則は、このマニュアルの「コマンド・リファレンス」を参照する場合に特に役立ちます。

Oracle Media Objects

オブジェクト指向マルチメディア・アプリケーション用の開発ツール

Oracle Mobile Agents

モバイルまたは切り離されたクライアント(あるいはその両方)を使用するアプリケーションのためのツール

Page 21: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

このマニュアルの使用方法

概要 1-5

コマンド構文の規則コマンド構文の規則コマンド構文の規則コマンド構文の規則次の 2つの表に、このマニュアルで使用するコマンド構文の表記法および規則を示します。

その他の単語については、前後関係から意味が判断できない場合、その単語が使用されている場所で説明します。

表表表表 1-1 コマンド、項および句コマンド、項および句コマンド、項および句コマンド、項および句

機能機能機能機能 例例例例 説明説明説明説明

英大文字 BTITLE 記載されているとおりに正確に入力してください。大文字でなくてもかまいません。

英小文字のイタリック

column 句の値。適切な値に置き換えてください。

特定の意味がある単語

c 単一の文字。

char CHAR型の値(引用符で囲んだリテラル)またはCHAR型の値を伴った式。

dまたはe 日付、または DATE型の値を伴った式。

expr 指定されていない式。

mまたはn 数値、または NUMBER型の値を伴った式。

text 引用符付き、または引用符なしの CHAR型の定数。

variable ユーザー変数(テキストで別の型の変数タイプを指定した場合以外)。

表表表表 1-2 句読点句読点句読点句読点

機能機能機能機能 例例例例 説明説明説明説明

垂直バー | オプションまたは必須の代替構文要素の区切り。

大カッコ [OFF|ON] 1つ以上のオプション項目。 2つの項目が |で区切られている場合は、|で区切られている項目のどちらかを入力します。 大カッコおよび |は入力しないでください。

中カッコ {OFF|ON} 必須の選択項目。|で区切られている項目のいずれかを入力します。 中カッコおよび |は入力しないでください。

下線 {OFF|ON} デフォルト値。何も入力しなかった場合は、下線が付いた値を指定したものとみなされます。

省略記号 n... 前にある項目を何回でも繰り返すことができます。

Page 22: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

このマニュアルの使用方法

1-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

その他の句読記号(カッコなど)がコマンド構文で示されている場合には、それらの記号を入力してください。

サンプル表サンプル表サンプル表サンプル表このマニュアルで説明する概念および操作の多くは、一連のサンプル表に示されています。 それらのサンプル表には、架空の会社の人事記録が入っています。 このマニュアルに示した例は、その会社の人事部長になったつもりで実行してください。

それらの例では、次の 2つのサンプル表の情報を使用します。

図 1-1および図 1-2に、それらの表に入っている情報を示します。

図図図図 1-1 EMP表表表表

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- ----- -------- ---- ----------- ------ ------ ------ 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 30 7788 SCOTT ANALYST 7566 09-DEC-82 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 12-JAN-83 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10

図図図図 1-2 DEPT表表表表

DEPTNO DNAME LOC--------- ------------- ----------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON

EMP サンプル会社の従業員に関する情報が入っています。

DEPT 会社の各部門に関する情報が入っています。

Page 23: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusの実行に必要なもの

概要 1-7

SQL*Plusの実行に必要なものの実行に必要なものの実行に必要なものの実行に必要なものSQL*Plusを実行するには、ハードウェア、ソフトウェア、オペレーティング・システム固有の情報、ユーザー名とパスワード、および 1つ以上の表へのアクセス権が必要です。

ハードウェアおよびソフトウェアハードウェアおよびソフトウェアハードウェアおよびソフトウェアハードウェアおよびソフトウェアOracleおよび SQL*Plusは多数の異なる種類のコンピュータ上で実行できます。 コンピュータのリソースを管理し、コンピュータ・ハードウェアと SQL*Plusなどのプログラムとの間を調整するのは、コンピュータのオペレーティング・システムです。 コンピュータの種類によって、使用されているオペレーティング・システムもさまざまです。 ご使用のオペレーティング・システムの詳細は、コンピュータに添付されているマニュアルを参照してください。

SQL*Plusを使用するには、あらかじめ Oracleおよび SQL*Plusの両方をコンピュータ上にインストールしておく必要があります。 SQL*Plusリリース 8.1.5での拡張機能を十分に活用するためには、Oracle8iが必要です。 SQL*Plusリリース 8.1.5の拡張機能については、付録Bを参照してください。

複数のユーザーがコンピュータを共有している編成では、Oracleの使用状況を監視するデータベース管理者(DBAと呼ばれる)が必要です。

DBAは、Oracleおよび SQL*Plusをシステムにインストールする責任を負います。 DBAになった場合、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスに記載されている Oracleおよび SQL*Plusのインストール方法を参照してください。

オペレーティング・システムに固有の情報オペレーティング・システムに固有の情報オペレーティング・システムに固有の情報オペレーティング・システムに固有の情報Oracleおよび SQL*Plusのいくつかの点は、ホスト・コンピュータおよびオペレーティング・システムのタイプごとに異なります。 それらについては、SQL*Plusがサポートするホスト・コンピュータおよびオペレーティング・システムごとに別のバージョンとして出版されている Oracleインストレーション・ガイドおよび管理者リファレンスに説明があります。

このマニュアルを読むときは、Oracleインストレーション・ガイドおよび管理者リファレンスを手元に置いて参照してください。 このマニュアルでは、必要なときにインストレーション・ガイドおよび管理者リファレンスを参照するように指示します。

ユーザー名およびパスワードユーザー名およびパスワードユーザー名およびパスワードユーザー名およびパスワードSQL*Plusを起動する場合は、許可を受けた Oracleユーザーであることを識別するユーザー名、およびそのユーザー名の正当な所有者であることを証明するパスワードが必要になります。 パスワードの変更方法の詳細は、第 8章 の「PASSWORD」コマンドを参照してください。 インストール手順の実行中に、デモのユーザー名 SCOTTとパスワード TIGERがシステムに設定される場合があります。 その場合は、Oracleユーザー名 SCOTTとパスワードTIGERを EMP表および DEPT表(図 1-1および図 1-2)に使用できます。

Page 24: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusの実行に必要なもの

1-8 SQL*Plusユーザーズ・ガイドおよびリファレンス

マルチユーザー・システムマルチユーザー・システムマルチユーザー・システムマルチユーザー・システム複数のユーザーがコンピュータのオペレーティング・システムを共有する場合、DBAがユーザーの SQL*Plusユーザー名およびパスワードを設定できます。 オペレーティング・システムにアクセスするために、システムのユーザー名およびパスワードも必要になります。 それらは、SQL*Plusに使用するものと同じでも別でもかまいません。

シングルユーザー・システムシングルユーザー・システムシングルユーザー・システムシングルユーザー・システム一度に 1人のユーザーのみがコンピュータを使用する場合、そのユーザーが自分で DBAの機能を実行しなければならない場合もあります。 その場合は、Oracleユーザー名 SCOTTおよびパスワード TIGERを使用することができます。 独自のユーザー名およびパスワードを定義する場合は、『Oracle8i SQLリファレンス』を参照してください。

サンプル表へのアクセスサンプル表へのアクセスサンプル表へのアクセスサンプル表へのアクセスデータベース内のそれぞれの表は、特定のユーザーによって所有されています。 このマニュアルの例を試すときには、サンプル表の独自のコピーも使用できます。 サンプル表の独自のコピーを入手するには、DBAに連絡するか、または Oracleが提供する DEMOBLDというコマンド・ファイルを実行します(このファイルは、SQL*Plusからではなくオペレーティング・システムから実行します)。

サンプル表を使用する必要がなくなった場合は、DEMODROPという名前で Oracleが提供するコマンド・ファイルを実行してサンプル表を削除してください。 DEMOBLDおよびDEMODROPの実行方法の詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

Page 25: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusの基本 2-1

2SQL*Plusの基本の基本の基本の基本

この章では、SQL*Plusの基本的な使用方法を説明します。この章では、次のトピックについて説明します。

■ ご使用になる前に

■ コマンドの入力と実行

■ 役立つ情報

この章を読むときは、コンピュータの前に座り、示されている例を実際に試してみてください。 始める前に、第 1章で説明したサンプル表へのアクセス権があることを確認してください。

Page 26: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ご使用になる前に

2-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

ご使用になる前にご使用になる前にご使用になる前にご使用になる前にSQL*Plusを使用する前に、キーボード上の各キーの機能、SQL*Plusの起動および終了方法を理解しておく必要があります。

キーボードの使用方法キーボードの使用方法キーボードの使用方法キーボードの使用方法SQL*Plusでは、キーボード上のいくつかのキーに特別な機能があります。これらのキーを表 2-1の「SQL*Plusの特殊キーとその機能」に示します。

ホスト・コンピュータで、一般的にキーボード上のどのキーが各機能を実行するかについては、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

表 2-1のそれぞれの空白には、SQL*Plusキーに対応するキーボード・キー名を記入してください。 その後、ご使用のキーボード上で各キーの位置を確認してください。

注意注意注意注意 : 他の製品やオペレーティング・システムで SQL*Plusのキーを押すと、異なる機能が実行される場合があります。

表表表表 2-1 SQL*Plus の特殊キーとその機能の特殊キーとその機能の特殊キーとその機能の特殊キーとその機能

SQL*Plusキー名キー名キー名キー名 キーボード・キー名キーボード・キー名キーボード・キー名キーボード・キー名 機能機能機能機能

[Return] ___________ 行の入力を終了します。

[Backspace] ___________ エラーを訂正するため、カーソルを 1文字左に移動します。

[Pause] ___________ プログラムの操作と出力の表示を中断します。

[Resume] ___________ プログラムの操作と出力の[Pause]を再開します。

[Cancel] ___________ プログラムの操作を停止し、SQL*Plusのコマンド・プロンプトに戻ります。

[Interrupt] ___________ SQL*Plusを終了し、ホスト・オペレーティング・システムに戻ります。

Page 27: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ご使用になる前に

SQL*Plusの基本 2-3

SQL*Plusの起動の起動の起動の起動重要なキーボード・キーを確認したところで、SQL*Plusを起動してみましょう。

例例例例 2-1 SQL*Plus の起動の起動の起動の起動

この例では、SQL*Plusの起動方法を説明します。 次のステップに従ってください。

1. コンピュータ上に Oracleがインストールされていることを確認します。

2. コンピュータの電源を(もしオフなら)オンにし、(必要な場合は)ホスト・オペレーティング・システムにログインします。 すでにコンピュータを使用している場合は、ログオフやリセットの必要はありません。 単に使用しているプログラム(もしあれば)を終了します。

画面左側に 1文字以上の文字が表示されます。 これはオペレーティング・システムのコマンド・プロンプトで、オペレーティング・システムにコマンドを入力できる状態であることを示します。 このマニュアルでは、オペレーティング・システム・プロンプトをドル($)記号で表記します。 ご使用のコンピュータのオペレーティング・システム・プロンプトは、これと異なる場合があります。

3. SQLPLUSコマンドを入力し、[Return]を押します。 これは SQL*Plusを起動するオペレーティング・システム・コマンドです。

$ SQLPLUS

注意注意注意注意 : 一部のオペレーティング・システムでは、コマンドを小文字で入力する必要があります。 そのようなシステムをご使用の場合は、SQLPLUSコマンドを小文字で入力してください。

Page 28: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ご使用になる前に

2-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

次のように、バージョン番号、日付および著作権情報が表示され、ユーザー名の入力を求めるプロンプトが表示されます(システム上に表示されるテキストは少し異なる場合があります)。

SQL*Plus: Release 8.1 - on Mon Nov 23 09:39:26 1998(c) Copyright 1998 Oracle Corporation.All rights reserved.Enter user-name:

4. ユーザー名を入力して [Return]を押します。 「パスワードを入力してください」というプロンプトが表示されます。

5. パスワードを入力し、再度 [Return]を押します。 ユーザーを保護するため、パスワードは画面に表示されません。

ユーザー名とパスワードを入力するプロセスは、ログインと呼ばれます。接続先のOracleのバージョンと、PL/SQLなどの使用可能な Toolsのバージョンが表示されます。

続いて、次のような SQL*Plusのコマンド・プロンプトが表示されます。

SQL>

このコマンド・プロンプトは、SQL*Plusにコマンドを入力できる状態であることを示します。

SQL*Plusが起動しない場合、何が問題になっているのか解決するためのメッセージが表示されます。

SQL*Plusを起動するためのショートカットを起動するためのショートカットを起動するためのショートカットを起動するためのショートカットSQL*Plusを起動するとき、SQLPLUSコマンドに続けてユーザー名とパスワードをスラッシュ(/)で区切って入力できます。 たとえば、ユーザー名が SCOTTでパスワードがTIGERの場合、

$ SQLPLUS SCOTT/TIGER

と入力し、[Return]を押します。 ホスト・オペレーティング・システムにログインするとき、自動的に SQL*Plusにログインするような設定もできます。 詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

SQL*Plusの終了の終了の終了の終了SQL*Plusでの作業が終わり、オペレーティング・システムに戻るときは、SQL*Plusのコマンド・プロンプトで EXITコマンドを入力します。

Page 29: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

SQL*Plusの基本 2-5

例例例例 2-2 SQL*Plus の終了の終了の終了の終了

SQL*Plusを終了するには、SQL*Plusのコマンド・プロンプトで次のように EXITコマンドを入力します。

SQL> EXIT

切断した Oracleのバージョンと、SQL*Plusから使用可能な Toolsのバージョンが表示されます。 しばらくすると、オペレーティング・システムのプロンプトが表示されます。

この章の先へ進む前に、例 2-1 のステップ 3、4および 5に従って、再度 SQL*Plusを起動してください。 または、前述の 「SQL*Plusを起動するためのショートカット」 で説明したショートカットを使用してログインしてください。

コマンドの入力と実行コマンドの入力と実行コマンドの入力と実行コマンドの入力と実行

コマンドの入力コマンドの入力コマンドの入力コマンドの入力コンピュータのカーソル、つまりポインタ(通常は、下線、長方形ブロックまたはスラッシュ)がコマンド・プロンプトの後に表示されます。 このカーソルは、次に入力する文字が表示される画面上の位置を示しています。

SQL*Plusに処理を指示するには、その処理に応じたコマンドをそのまま入力します。 通常、コマンド内の単語と単語を区切るには、空白かタブを使用します。 コマンドを読みやすくするためには、単語と単語の間に空白またはタブを追加することもできます。

コマンドは、大文字または小文字で入力できます。 このマニュアルでは、わかりやすくするため、表名、列名およびコマンドをすべて大文字で表記しています。

コマンド・プロンプトでは、次の 3種類のコマンドを入力できます。

■ データベース内の情報を処理するための SQLコマンド

■ データベース内の情報を処理するための PL/SQLブロック

■ 問合せ結果の書式設定、オプションの設定、SQLコマンドと PL/SQLブロックの編集および格納を行うための SQL*Plusコマンド

注意注意注意注意 : 文字間隔やインデントの例は、このマニュアルの全編にわたって示してあります。 例でコマンドを入力する場合は、示されているとおりに空白を入れなくてもかまいませんが、入れた方が読みやすいでしょう。

Page 30: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

2-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

コマンドを次の行に続ける方法、コマンドの終了方法、コマンドの実行方法は、入力して実行するコマンドのタイプによって異なります。 次の各ページでは、それらのタイプのコマンドを実行する例を示します。

ヘルプの表示ヘルプの表示ヘルプの表示ヘルプの表示SQL*Plusコマンドに関するオンライン・ヘルプを表示するには、コマンド・プロンプトでHELPと入力し、その後にコマンドの名前を入力します。 次に例を示します。

SQL>HELP ACCEPT

ヘルプが使用不可能という旨のメッセージが表示された場合は、データベース管理者に連絡してください。 ヘルプ・システムの詳細は、第 8章「コマンド・リファレンス」の「HELP」コマンドを参照してください。

コマンドの実行コマンドの実行コマンドの実行コマンドの実行コマンドを入力して、SQL*Plusにそのコマンドを実行するように指示すると、SQL*Plusはそのコマンドを処理し、別のコマンドを入力できるようにコマンド・プロンプトを再表示します。

SQLコマンドの実行コマンドの実行コマンドの実行コマンドの実行SQLコマンドの言語を使用すると、データベース内のデータを操作できます。 個々の SQLコマンドの詳細は、『Oracle8i SQLリファレンス』 を参照してください。

例例例例 2-3 SQL コマンドの入力コマンドの入力コマンドの入力コマンドの入力

この例では、SQLコマンドを入力して実行し、各従業員の従業員番号、名前、職種および給与をサンプル表 EMPに表示します。

1. コマンド・プロンプトで、コマンドの 1行目を次のように入力します。

SQL> SELECT EMPNO, ENAME, JOB, SAL

誤って入力した場合は、[Backspace]を使用して消去し、再度入力します。 この行の入力が終わったら、[Return]を押して次の行へ移動します。

2. 2行目の入力を求める「2」が表示されます。 コマンドの 2行目を次のように入力します。

2 FROM EMP WHERE SAL < 2500;

Page 31: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

SQL*Plusの基本 2-7

セミコロン(;)は、コマンドの終わりを意味します。 [Return]を押してください。 SQL*Plusはコマンドを処理し、結果を次のように画面に表示します。

EMPNO ENAME JOB SAL----- ---------- ------------ ------ 7369 SMITH CLERK 8007499 ALLEN SALESMAN 16007521 WARD SALESMAN 12507654 MARTIN SALESMAN 12507782 CLARK MANAGER 24507844 TURNER SALESMAN 15007876 ADAMS CLERK 11007900 JAMES CLERK 8007934 MILLER CLERK 1300

9 rows selectedSQL>

結果と取り出した行数が表示された後、再びコマンド・プロンプトが表示されます。 操作を誤ったために前述の結果が得られなかった場合は、コマンドを再入力してください。

ヘッダーは、PAGESIZEというシステム変数の設定に応じて出力の中で繰り返される場合があります。 取り出したレコード件数に関するメッセージが表示されるかどうかは、FEEDBACKというシステム変数の設定によって異なります。 システム変数の詳細は、この章の後半にある「コマンドの実行に影響を及ぼす変数」で説明します。 このマニュアルの残りの例では、紙面を節約するため、選択されたレコードの数を示しません。

SQLコマンドの構文についてコマンドの構文についてコマンドの構文についてコマンドの構文について話し言葉に、単語を組み合せて文にする方法を規定した構文規則があるように、SQL*Plusにも単語を組み合せてコマンドにする方法を規定した構文規則があります。 SQL*Plusにコマンドを渡して実行させるためには、それらの規則に従う必要があります。

1つのつのつのつの SQLコマンドを別個の行に分割コマンドを別個の行に分割コマンドを別個の行に分割コマンドを別個の行に分割 SQLコマンドは、個々の単語を途中で改行するのでなければ、任意の位置で別個の行に分割できます。 したがって、例 2-3で入力した問合せは、次のように 1行に入力できます。

SQL> SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE SAL < 2500;

Page 32: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

2-8 SQL*Plusユーザーズ・ガイドおよびリファレンス

この問合せを次のように複数行に分けて入力することもできます。

SQL> SELECT 2 EMPNO, ENAME, JOB, SAL 3 FROM EMP 4 WHERE SAL < 2500;

このマニュアルでは、ほとんどの SQLコマンドが句に分割されており、1つの句が 1行になっています。 たとえば、例 2-3では、SELECT句と FROM句が別々の行に置かれています。 多くの場合、これが最も便利な方法ですが、コマンドを自分にとって最も読みやすくするためには、どのように行を分割してもかまいません。

SQLコマンドの終了コマンドの終了コマンドの終了コマンドの終了 SQLコマンドは、次に示す 3つの方法のいずれかによって終了できます。

■ セミコロン(;)を入力する

■ 1行にスラッシュ(/)のみ 1つ入力する

■ 空白行を入力する

セミコロン(;)は、コマンドを実行することを SQL*Plusに通知するために使用します。 例2-3に示すように、コマンドの最後の行の末尾にセミコロンを入力して [Return]を押します。 SQL*Plusは、コマンドを処理して SQLバッファに格納します(詳細は、後述の「SQLバッファ」を参照してください)。 セミコロンを入力する前に誤って [Return]を押した場合は、プロンプトに行番号が表示され、コマンドの続きの行を入力できます。 コマンドを実行するには、セミコロンを入力して、再び [Return]を押します。

スラッシュ(/)のみの 1行を使用することによっても、コマンドの実行を SQL*Plusに指示することができます。 コマンドの最終行の最後で [Return]を押します。 プロンプトとして次行の行番号が表示されます。 スラッシュを入力し、再び [Return]を押します。 SQL*Plusは、コマンドを実行してバッファに格納します(詳細は、後述の「SQLバッファ」を参照してください)。

空白行は、コマンドの入力は終了したけれども、そのコマンドをまだ実行しないことをSQL*Plusに伝えます。 コマンドの最終行の最後で [Return]を押します。 プロンプトとして次行の行番号が表示されます。

再び [Return]キーを押すと、SQL*Plusのコマンド・プロンプトが表示されます。 SQL*Plusは、コマンドを実行せずに SQLバッファに格納します(詳細は、後述の「SQLバッファ」を参照してください)。 引き続き別のコマンドを入力すると、バッファ内にある前のコマンドは上書きされます。

注意注意注意注意 : 同じ行でセミコロンの後にコメント(/* */)を入力することはできません。

Page 33: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

SQL*Plusの基本 2-9

ストアド・プロシージャの作成ストアド・プロシージャの作成ストアド・プロシージャの作成ストアド・プロシージャの作成 ストアド・プロシージャは、PL/SQLのファンクション、パッケージ、またはプロシージャです。 ストアド・プロシージャを作成するには、SQL CREAREコマンドを使用します。 次の SQL CREATEコマンドを使用すると、ストアド・プロシージャを作成できます。

■ CREATE FUNCTION

■ CREATE LIBRARY

■ CREATE PACKAGE

■ CREATE PACKAGE BODY

■ CREATE PROCEDURE

■ CREATE TRIGGER

■ CREATE TYPE

これらのいずれかのコマンドを入力すると、PL/SQLモードに入り、PL/SQLサブプログラムを入力できます。 詳細は、この章の「PL/SQLブロックの実行」を参照してください。 PL/SQLサブプログラムを入力し終わったら、PL/SQLモードを終了するため、1行にピリオド(.)のみ入力してください。 SQLコマンドを実行してストアド・プロシージャを作成するには、RUNまたはスラッシュ(/)を入力する必要があります。 セミコロン(;)では、これらの CREATEコマンドを実行できません。

ストアド・プロシージャを作成するために CREATEを使用する場合、コンパイル・エラーがあるとメッセージが表示されます。 それらのエラーを表示するには、SHOW ERRORSを使用します。 次に例を示します。

SQL> SHOW ERRORS PROCEDURE ASSIGNVL

SHOW コマンドの詳細は、第 8章「コマンド・リファレンス」を参照してください。

ストアド・プロシージャを参照する PL/SQL文を実行するには、EXECUTEコマンドが使用できます。 EXECUTEは、このコマンドの直後に入力された PL/SQL文を実行します。 次に例を示します。

SQL> EXECUTE :ID := EMP_MANAGEMENT.GET_ID(’BLAKE’)

EXECUTE コマンドの詳細は、第 8章「コマンド・リファレンス」を参照してください。

Page 34: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

2-10 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQLバッファバッファバッファバッファ入力した最新の SQLコマンドまたは PL/SQLブロックが格納される領域は、SQL バッファと呼ばれます。 そのコマンドまたはブロックは、別のコマンドまたはブロックを入力するまで保持されます。 したがって、現行の SQLコマンドまたは PL/SQLブロックを編集または再実行する場合、それらを再入力する必要はありません。 バッファ内に格納されたコマンドやブロックの編集または再実行の詳細は、第 3章の「コマンド・ファイルの実行」を参照してください。

SQL*Plusでは、コマンドを実行するために入力したセミコロンまたはスラッシュは、SQLバッファに格納されません。

コマンド・プロンプトからの現行コマンド・プロンプトからの現行コマンド・プロンプトからの現行コマンド・プロンプトからの現行 SQLコマンドまたはコマンドまたはコマンドまたはコマンドまたは PL/SQLブロッブロッブロッブロックの実行クの実行クの実行クの実行コマンド・プロンプトから、RUNコマンドまたはスラッシュ(/)コマンドを入力することにより、現行の SQLコマンドまたは PL/SQLブロックを実行(または再実行)できます。 RUNコマンドでは、コマンドまたはブロックを実行する前にバッファ内にある SQLコマンドまたは PL/SQLブロックのリストが表示されます。スラッシュ(/)コマンドは、SQLコマンドまたは PL/SQLブロックをそのまま実行します。

PL/SQLブロックの実行ブロックの実行ブロックの実行ブロックの実行データベース内のデータを操作するために PL/SQLサブプログラム(ブロックと呼ばれる)を使用することもできます。 個々の PL/SQL文の詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス 』を参照してください。

SQL*Plusに PL/SQLサブプログラムを入力するには、PL/SQLモードに入る必要があります。 PL/SQLモードに入るには、次のようにします。

■ SQL*Plusコマンド・プロンプトで、DECLAREまたは BEGINと入力します。 この方法で PL/SQLモードに入った後、残りの PL/SQLサブプログラムを入力してください。

■ ストアド・プロシージャを作成する SQLコマンド(たとえば、CREATE FUNCTIONなど)を入力します。 この方法で PL/SQLモードに入った後、作成するストアド・プロシージャを入力してください。

SQL*Plusでは、PL/SQLサブプログラムは SQLコマンドと同じ方法で処理されますが、セミコロン(;)または空白行でブロックを終了および実行することはできません。 PL/SQLサブプログラムを終了するには、新しい行にピリオド(.)のみ入力します。

注意注意注意注意 : SQL*Plusコマンドは、SQLバッファに格納されません。

Page 35: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

SQL*Plusの基本 2-11

SQL*Plusでは、SQL*Plusコマンド・プロンプトから入力したサブプログラムは、SQLバッファに格納されます。 現行のサブプログラムを実行するには、RUNコマンドまたはスラッシュ(/)を発行します。 同様に、ストアド・プロシージャを作成する SQL CREATEコマンドを実行する場合にも、RUNまたはスラッシュ(/)を入力する必要があります。 それらのSQLコマンドは、他の SQLコマンドのようにセミコロン(;)で実行することはできません。

SQL*Plusは処理のために(SQLコマンドの場合と同様に)PL/SQLサブプログラム全体をOracleへ送信します。 詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

たとえば、次のような PL/SQLサブプログラムを入力して実行できます。

SQL> DECLARE 2 x NUMBER := 100; 3 BEGIN 4 FOR i IN 1..10 LOOP 5 IF MOD (i, 2) = 0 THEN --i is even 6 INSERT INTO temp VALUES (i, x, 'i is even'); 7 ELSE 8 INSERT INTO temp VALUES (i, x, 'i is odd'); 9 END IF; 10 x := x + 100; 11 END LOOP; 12 END; 13 .SQL> /

サブプログラムを実行したとき、サブプログラム内の SQLコマンドが、サブプログラムの外部にある場合とは異なる処理をする場合があります。 PL/SQL言語の詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス 』を参照してください。

SQL*Plusコマンドの実行コマンドの実行コマンドの実行コマンドの実行SQL*Plusコマンドを使用して、SQLコマンドと PL/SQLブロックを操作し、問合せ結果の書式を設定して出力することができます。 SQL*Plusでは、SQL*Plusコマンドは SQLコマンドや PL/SQLブロックとは異なる扱いを受けます。 個々の SQL*Plusコマンドの詳細は、第8章「コマンド・リファレンス」を参照してください。

コマンド入力を高速化するため、多数の SQL*Plusコマンドは、1文字または数文字に省略できます。 いくつかの SQL*Plusコマンドの略称は、コマンドの説明とともに第 3章、第 4章および第 6章に記載されています。 すべての SQL*Plusコマンドの略称については、第 8章「コマンド・リファレンス」を参照してください。

Page 36: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

2-12 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例 2-4 SQL*Plus コマンドの入力コマンドの入力コマンドの入力コマンドの入力

この例では、サンプル表 EMPの SAL列の表示に使用する書式を変更するために SQL*Plusコマンドを入力する方法を示します。

1. コマンド行で、SQL*Plusコマンドを入力します。

SQL> COLUMN SAL FORMAT $99,999 HEADING SALARY

誤って入力した場合は、[Backspace]を使用して消去し、再度入力します。 この行の入力が終わったら、[Return]を押します。 SQL*Plusは新しい書式を認識し、SQL*Plusコマンド・プロンプトを再び表示して新しいコマンドを入力できる状態になります。

2. 最新の(例 2-3からの)問合せを再実行するため、RUNコマンドを入力します。 その問合せが再処理され、結果が次のように表示されます。

SQL> RUN 1 SELECT EMPNO, ENAME, JOB, SAL 2* FROM EMP WHERE SAL < 2500EMPNO ENAME JOB SALARY----- ------------- ------------ ------7369 SMITH CLERK $8007499 ALLEN SALESMAN $1,6007521 WARD SALESMAN $1,2507654 MARTIN SALESMAN $1,2507782 CLARK MANAGER $2,4507844 TURNER SALESMAN $1,5007876 ADAMS CLERK $1,1007900 JAMES CLERK $8007934 MILLER CLERK $1,300

COLUMNコマンドによって、SAL列の書式がドル記号($)とカンマ(,)を使用して設定され、新しいヘッダーが付けられました。 その後、RUNコマンドによって、バッファ内に格納されていた例 2-3の問合せが再実行されました。 SQL*Plusでは、SQL*PlusコマンドはSQLバッファに格納されません。

SQL*Plusコマンドの構文についてコマンドの構文についてコマンドの構文についてコマンドの構文についてSQL*Plusコマンドの構文は、SQLコマンドまたは PL/SQLブロックとは異なります。

長い長い長い長い SQL*Plusコマンドを追加行に継続する方法コマンドを追加行に継続する方法コマンドを追加行に継続する方法コマンドを追加行に継続する方法 長文の SQL*Plusコマンドは、行末にハイフン(-)を付けて [Return]を押すと、次行に続けて入力できます。 ハイフンの前に空白文字を入力してもかまいません。 右山カッコ(>)が個々の追加行のプロンプトとして表示されます。

Page 37: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

SQL*Plusの基本 2-13

次に例を示します。

SQL> COLUMN SAL FORMAT $99,999 -> HEADING SALARY

SQL*Plusでは、ハイフンを継続文字とみなすため、SQL文内でハイフンを入力しても無視されます。 SQL*Plusは、入力処理によってその行が結合されハイフンが削除されるまで、その文を SQL文とはみなしません。 たとえば、次のように入力するとエラーが返されます。

SQL> select 200 -> 100 from dual;select 200 100 from dual *ERROR at line 1:ORA-00923: FROM keyword not found where expected

文を正しく解釈させるには、行末からハイフンを削除します。

SQL*Plusコマンドの終了コマンドの終了コマンドの終了コマンドの終了 SQL*Plusコマンドは、必ずしもセミコロンで終了する必要はありません。 コマンドの入力が終了したら、[Return]を押します。 ただし、入力したければSQL*Plusコマンドの末尾にセミコロンを入力してもかまいません。

コマンドの実行に影響を及ぼす変数コマンドの実行に影響を及ぼす変数コマンドの実行に影響を及ぼす変数コマンドの実行に影響を及ぼす変数SQL*Plusコマンドの SETを使用すると、システム変数と呼ばれる多数の変数を制御できます。システム変数の設定は、SQL*Plusがコマンドを実行する方法に影響を及ぼします。 システム変数は、出力のデフォルトの列幅、コマンドによって選択されたレコード数の表示の有無、ページ・サイズなど、SQL*Plus内のさまざまな条件を制御します。 システム変数は、SETコマンド変数とも呼ばれます。

このマニュアル内の例は、システム変数をデフォルトの設定にして SQL*Plusを実行することを前提としています。 システム変数の設定によっては、記載されている例に示す出力とは少し異なる出力が表示される場合があります。 (コンピュータ上に SQL*Plusの LOGINファイルがある場合は、デフォルトの設定と異なる可能性があります。)

システム変数とそれらのデフォルト設定の詳細は、第 8章の「SET」コマンドを参照してください。 SQL*Plusの LOGINファイルの詳細は、第 3章 の「後で使用するコマンドの保存」の「SQL*Plus環境の設定」、および 第 7章の SQLPLUSコマンドを参照してください。

Page 38: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

2-14 SQL*Plusユーザーズ・ガイドおよびリファレンス

SETコマンド変数の現行の設定をリスト表示するには、コマンド・プロンプトで SHOWと入力し、その後に変数名を入力します。 SHOWを使用してリスト表示できるその他の項目の詳細は、第 8章の「SHOW」コマンドを参照してください。

データベースへの変更の自動保存データベースへの変更の自動保存データベースへの変更の自動保存データベースへの変更の自動保存SQL DMLコマンドの UPDATE、INSERTおよび DELETEは、独立して使用したり、PL/SQLブロック内で使用したりできます。これらのコマンドを使用すると、データベース内に格納されている情報に加えたい変更を指定できます。 それらの変更は、SQL COMMITコマンドまたは SQL DCLか DDLコマンド(たとえば CREATE TABLEなど)を入力するか、または自動コミット機能を使用するまでは、永続的な変更になりません。 SQL*Plusの自動コミット機能は、指定した数の SQL DMLトランザクションが成功した後に、保留中の変更をコミットします。 (SQL DMLトランザクションとは、UPDATE、INSERT、DELETEのいずれかのコマンドか、 PL/SQLブロックのことです。)

自動コミット機能は、SQL*Plus SETコマンドの AUTOCOMMIT変数で制御します。 この変数には、次の 4つの形態があります。

例例例例 2-5 自動コミットをオンにする方法自動コミットをオンにする方法自動コミットをオンにする方法自動コミットをオンにする方法

自動コミット機能をオンにするには、次のように入力します。

SQL> SET AUTOCOMMIT ON

または、次のように入力して自動コミット機能をオンにすることもできます。

SQL> SET AUTOCOMMIT IMMEDIATE

AUTOCOMMITの設定を変更するまで、データベースへの変更を指定する個々の SQLコマンドまたは PL/SQLブロックからの変更を、SQL*Plusが自動的にコミットします。 SQL*Plusは、1回自動コミットするたびに次のメッセージを表示します。

commit complete

自動コミット機能をオンにした場合は、データベースへの変更をロールバックできません。

SET AUTOCOMMIT ON 自動コミットをオンにする。

SET AUTOCOMMIT OFF 自動コミットをオフにする(デフォルト)。

SET AUTOCOMMIT n n個の SQLコマンドまたは PL/SQLブロックの後に変更をコミットする。

SET AUTOCOMMIT IMMEDIATE 自動コミットをオンにする。

Page 39: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンドの入力と実行

SQL*Plusの基本 2-15

一定の数、たとえば 10個の SQL DMLコマンドまたは PL/SQLブロックを実行した後にデータベースへの変更をコミットする場合は、次のように入力します。

SQL> SET AUTOCOMMIT 10

SQL*Plusは、SQL DMLコマンドと PL/SQLブロックを実行するたびにカウントし、10個目の SQL DML コマンドまたは PL/SQLブロックの後に変更をコミットします.

自動コミット機能を再びオフにするには、次のコマンドを入力します。

SQL> SET AUTOCOMMIT OFF

AUTOCOMMITがオフに設定されたことを確認するには、次のように SHOWコマンドを入力します。

SQL> SHOW AUTOCOMMITautocommit OFF

詳細は、第 8章の「SET」コマンドの AUTOCOMMIT変数を参照してください。

実行中のコマンドの停止実行中のコマンドの停止実行中のコマンドの停止実行中のコマンドの停止50ページのレポートの 1ページ目を表示し終わり、残りのページを表示する必要がないと判断したとします。 この場合は、[Cancel]を押してください。 (ご使用のキーボードのどのキーが [Cancel]に相当するかを知るには、この章の始めにある 表 2-1を参照してください。) SQL*Plusは表示を停止し、コマンド・プロンプトに戻ります。

注意注意注意注意 : この機能では、ブロックに入っている実際の SQLコマンドの数には関係なく、1つの PL/SQLブロックが 1つのトランザクションとみなされます。

注意注意注意注意 : [Cancel]を押しても、SQL*Plus SPOOLコマンドの OUT句でプリンタに送信し終わったファイルの出力は停止しません。 (問合せ結果の出力については、第 4章に説明があります。) ファイルの出力は、オペレーティング・システムを通じて停止できます。 詳細は、ご使用のオペレーティング・システム用のインストレーション・ガイドおよび管理者リファレンスを参照してください。

Page 40: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

役立つ情報

2-16 SQL*Plusユーザーズ・ガイドおよびリファレンス

実行したコマンドのタイミング統計の収集実行したコマンドのタイミング統計の収集実行したコマンドのタイミング統計の収集実行したコマンドのタイミング統計の収集SQL*Plusコマンドの TIMINGを使用すると、1つ以上のコマンドまたはブロックを実行するために使用されたコンピュータ・リソースの量に関するデータを収集して表示できます。 TIMINGは、経過時間に関するデータを収集し、タイマーの時間内に実行されたコマンドに関するデータを保存します。

詳細は、 第 8章 の「TIMING」コマンド、およびご使用のオペレーティング・システム用のOracleインストレーション・ガイドと管理者リファレンスを参照してください。

すべてのタイマーを削除するには、コマンド・プロンプトで CLEAR TIMINGを入力します。

ホスト・オペレーティング・システムの実行ホスト・オペレーティング・システムの実行ホスト・オペレーティング・システムの実行ホスト・オペレーティング・システムの実行SQL*Plusのコマンド・プロンプトからホスト・オペレーティング・システムのコマンドを実行できます。 これは、既存のホスト・オペレーティング・システム・ファイルのリストを表示するときなどに便利です。

ホスト・オペレーティング・システムのコマンドを実行するには、SQL*PlusコマンドのHOST に続けてホスト・オペレーティング・システムのコマンドを入力します。 たとえば、次の SQL*Plusコマンドは、ホスト・コマンドの DIRECTORY *.SQLを実行します。

SQL> HOST DIRECTORY *.SQL

ホスト・コマンドの実行が終わると、再び SQL*Plusのコマンド・プロンプトが表示されます。

役立つ情報役立つ情報役立つ情報役立つ情報SQL*Plusの使用中に表の列定義のリストを表示したり、スクロール表示を開始したり停止したりしなければならない場合があります。 また、コマンドを誤って入力したときや、Oracleまたは SQL*Plusに問題が生じたときに、受け取ったエラー・メッセージを解釈しなければならない場合もあります。 次の各項では、それらの状態に対して役立つ情報を説明します。

表定義のリスト表示表定義のリスト表示表定義のリスト表示表定義のリスト表示ある表の各列の定義を表示するには、SQL*Plusの DESCRIBEコマンドを使用します。

例例例例 2-6 DESCRIBEコマンドの使用コマンドの使用コマンドの使用コマンドの使用

DEPTというサンプル表の中にある 3つの列の列定義をリスト表示するには、次のように入力します。

SQL> DESCRIBE DEPT

Page 41: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

役立つ情報

SQL*Plusの基本 2-17

出力結果は次のようになります。

Name Null? Type------------------------------- ------- -------------DEPTNO NOT NULL NUMBER(2)DNAME VARCHAR2(14)LOC VARCHAR2(13)

PL/SQL定義のリスト表示定義のリスト表示定義のリスト表示定義のリスト表示関数またはプロシージャの定義をリスト表示するには、SQL*Plusの DESCRIBEコマンドを使用します。

例例例例 2-7 DESCRIBEコマンドの使用コマンドの使用コマンドの使用コマンドの使用

AFUNCという関数の定義をリスト表示するには、次のように入力します。

SQL> DESCRIBE afunc

出力結果は次のようになります。

FUNCTION afunc RETURNS NUMBERArgument Name Type In/Out Default?--------------- -------- -------- ---------F1 CHAR INF2 NUMBER IN

表示の制御表示の制御表示の制御表示の制御長いレポートまたは多数の列がある表の定義を表示しているとき、画面を停止して内容を詳しく調べたい場合があります。 その場合は、[Pause]を押します。 (ご使用のキーボードのどのキーが [Pause] に相当するかを知るには、表 2-1 を参照してください。) 表示内容を調べている間、表示が一時停止します。 続行するには、[Resume]を押します。

SQL*Plus SETコマンドの PAUSE変数を使用して、問合せまたはレポートの表示を 1画面ごとに一時停止させることもできます。 詳細は、第 8章の「SET」コマンドを参照してください。

注意注意注意注意 : DESCRIBEは、Oracleデータ・ディクショナリ内の情報にアクセスするために使用します。 SQLの SELECTコマンドを使用して、データベース内のこれらの情報や他の情報にアクセスすることもできます。 詳細は、『Oracle8i SQLリファレンス』を参照してください。

Page 42: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

役立つ情報

2-18 SQL*Plusユーザーズ・ガイドおよびリファレンス

エラー・メッセージの解釈エラー・メッセージの解釈エラー・メッセージの解釈エラー・メッセージの解釈SQL*Plusは、コマンド内でエラーを検出した場合、訂正の助けとなるようエラー・メッセージを表示します。

例例例例 2-8 エラー・メッセージの解釈エラー・メッセージの解釈エラー・メッセージの解釈エラー・メッセージの解釈

たとえば、コマンドの入力中に表名のつづりを誤った場合には、その表またはビューが存在しないというエラー・メッセージが表示されます。

SQL> DESCRIBE DPTERROR:ORA-04043: object DPT does not exist

多くの場合、メッセージを読むだけで問題の訂正方法がわかります。 詳しい説明が必要な場合は、問題の原因と訂正方法を判断するため、次のいずれかのステップを実行してください。

■ エラーが SQL*Plus COPYコマンドの番号付きエラーである場合は、このマニュアルの付録 Aでそのメッセージを検索してください。

■ エラーが "ORA"という英字で始まる番号付きエラーである場合は、問題の原因と訂正方法を判断するため、『Oracle8i エラー・メッセージ』、またはご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスでそのメッセージを検索してください。

■ エラーに番号が付いていない場合は、エラーを生成したコマンドの正しい構文を検索するため 、SQL*Plusコマンドについてはこのマニュアルの第 8章、SQLコマンドについては、『Oracle8i SQL リファレンス』、PL/SQLブロックについては『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。 それ以外の場合は、DBAに問い合せてください。

Page 43: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンド操作 3-1

3コマンド操作コマンド操作コマンド操作コマンド操作

この章は、SQL*Plusコマンド、SQLコマンド、および PL/SQLブロックの操作方法を学習するのに役立ちます。 この章では、次のトピックについて説明します。

■ 編集コマンド

■ 後で使用するコマンドの保存

■ 対話型コマンドの作成

■ バインド変数の使用方法

■ REFCURSORバインド変数の使用方法

■ 文のトレース

この章を読むときは、コンピュータの前に座り、示されている例を実際に試してみてください。 始める前に、第 1章で説明したサンプル表へのアクセス権があることを確認してください。

Page 44: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

編集コマンド

3-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

編集コマンド編集コマンド編集コマンド編集コマンドSQL*Plusでは、SQL*Plusコマンドがバッファに格納されないので、コマンド・プロンプトに直接入力した SQL*Plusコマンドを編集するには、[Backspace]を使用するか、またはコマンドを再入力します。

いくつかの SQL*Plusコマンドを使用して、バッファ内に現在格納されている SQLコマンドまたは PL/SQLブロックを編集します。 あるいは、ホスト・オペレーティング・システムのエディタを使用してバッファの内容を編集してもかまいません。

表 3-1に、コマンドを再入力せずにバッファ内のコマンドを検査または変更できる SQL*Plusコマンドを示します。

表表表表 3-1 SQL*Plus 編集コマンド編集コマンド編集コマンド編集コマンド

コマンドコマンドコマンドコマンド 略称略称略称略称 用途用途用途用途

APPEND text A text 行末にテキストを追加します。

CHANGE /old/new C /old/new 行末の oldを newに変更します。

CHANGE /text C /text テキストを行から削除します。

CLEAR BUFFER CL BUFF すべての行の削除を削除します。

DEL (なし) 現在行を削除します。

DEL n (なし) 行 nを削除します。

DEL * (なし) 現在行を削除します。

DEL n * (なし) 行 n から現在行までを削除します。

DEL LAST (なし) 最終行を削除します。

DEL m n (なし) ある範囲(m~ n)の行を削除します。

DEL * n (なし) 現在行から行 nまでを削除します。

INPUT I 1つ以上の行を追加します。

INPUT text I text textからなる 1行を追加します。

LIST L SQLバッファに入っているすべての行をリスト表示します。

LIST n L nまたはn 行 nをリスト表示します。

LIST * L * 現在行をリスト表示します。

Page 45: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

編集コマンド

コマンド操作 3-3

これらのコマンドは、コマンドのつづりを誤って入力した場合や、入力したコマンドを変更する場合に役立ちます。

バッファ内容のリスト表示バッファ内容のリスト表示バッファ内容のリスト表示バッファ内容のリスト表示LISTおよび DEL以外のすべての編集コマンドは、バッファ内の 1行にのみ影響を及ぼします。 その行を現在行と呼びます。 現行のコマンドまたはブロックをリスト表示した場合、現在行にはアスタリスクが付きます。

例例例例 3-1 バッファ内容のリスト表示バッファ内容のリスト表示バッファ内容のリスト表示バッファ内容のリスト表示

現行のコマンドをリスト表示したいとします。 次に示すように、LISTコマンドを使用してください。 (例 2-3のステップに従った後、SQL*Plusを EXITするか、別の SQLコマンドまたは PL/SQLブロックを入力した場合は、続行する前に例のステップを再度実行してください。)

SQL> LIST 1 SELECT EMPNO, ENAME, JOB, SAL 2* FROM EMP WHERE SAL < 2500

SELECTコマンドの最後に入力したセミコロンはリストに表示されません。 このセミコロンは、入力するときにはコマンドの終わりを示すために必要ですが、SQLバッファには格納されません。 最終行として入力した行からセミコロンを削除しなくても、バッファの末尾に新しい行を追加できるので、編集が便利になります。

LIST n * L n * 行 n から現在行までをリスト表示します。

LIST LAST L LAST 最終行をリスト表示します。

LIST m n L m n ある範囲(m~ n)の行をリスト表示します。

LIST * n L * n 現在行から行 nまでをリスト表示します。

表表表表 3-1 SQL*Plus 編集コマンド編集コマンド編集コマンド編集コマンド

コマンドコマンドコマンドコマンド 略称略称略称略称 用途用途用途用途

Page 46: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

編集コマンド

3-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

現在行の編集現在行の編集現在行の編集現在行の編集SQL*Plusの CHANGEコマンドを使用すると、現在行を編集できます。 どの行が現在行であるかを判断するアクションは、次のようにいくつかあります。

■ ある行を現在行にするために LISTコマンドで表示する。

■ バッファ内のコマンドを表示(LIST)または実行(RUN)した場合、コマンドの最終行が現在行になる。 (ただし、バッファ内のコマンドを実行するためにスラッシュ(/)コマンドを使用しても、現在行は影響を受けません。)

■ エラー・メッセージを受け取った場合は、そのエラーが含まれている行が自動的に現在行になる。

例例例例 3-2 コマンド入力でのエラーコマンド入力でのエラーコマンド入力でのエラーコマンド入力でのエラー

DEPTNO列を選択するつもりで誤って DPTNOと入力したとします。 故意に DEPTNOのつづりを誤って、1行目に次のコマンドを入力してください。

SQL> SELECT DPTNO, ENAME, SAL 2 FROM EMP 3 WHERE DEPTNO = 10;

画面には次のメッセージが表示されます。

SELECT DPTNO, ENAME, SAL*ERROR at line 1:ORA-0904: invalid column name

エラー・メッセージを調べてください。問合せの 1行目に無効な列名があることが示されています。 アスタリスクはエラーの位置、つまり、つづりを誤って入力した列 DPTNOを示しています。

この場合、コマンド全体を再入力せずに、バッファ内のコマンドを編集して誤りを訂正できます。 この時点では、エラーが含まれている行が現在行になっています。 CHANGEコマンドを使用して、誤りを訂正します。 このコマンドは次の 3つの部分からなり、それぞれの部分はスラッシュまたはその他の英数字以外の文字で区切られます。

■ CHANGEという単語、または文字 C

■ 変更する文字列

■ 置換文字列

CHANGEコマンドは、現在行の中で最初に現れる変更する文字列を検索し、新しい文字列に変更します。 行全体を再入力する場合は、CHANGEコマンドを使用する必要はありません。 行番号を入力し、その後に空白および新しいテキストを入力して [Return]を押すことによって、行を再入力してください。

Page 47: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

編集コマンド

コマンド操作 3-5

例例例例 3-3 エラーの訂正エラーの訂正エラーの訂正エラーの訂正

DPTNOを DEPTNOに変更するには、次のように CHANGEコマンドを使用して行を変更します。

SQL> CHANGE /DPTNO/DEPTNO

次のように、訂正後の行が画面に表示されます。

1* SELECT DEPTNO, ENAME, SAL

エラーの訂正が済んだので、RUNコマンドを使用してコマンドを再び実行できます。

SQL> RUN

コマンドがリスト表示され、その後実行されます。

1 SELECT DEPTNO, ENAME, SAL2 FROM EMP3* WHERE DEPTNO = 10DEPTNO ENAME SALARY------ -------- ----------10 CLARK $2,45010 KING $5,00010 MILLER $1,300

SAL列に、例 2-4で示した書式が保存されています。 (例 2-4を実行した後、SQL*Plusを終了して再び起動した場合は、列が元の書式に戻されています。)

CHANGEコマンドでの大文字と小文字の区別の重要性、および CHANGEコマンド内でワイルド・カードを使用してテキストのブロックを指定する方法については、第 8章の「CHANGE」コマンドを参照してください。

新しい行の追加新しい行の追加新しい行の追加新しい行の追加現在行の後に新しい行を挿入するには、INPUTコマンドを使用します。

行 1の前に行を挿入するには、ゼロ(0)を入力し、その後にテキストを続けます。 その行がバッファの先頭に挿入され、行 1になります。

SQL> 0 SELECT EMPNO

Page 48: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

編集コマンド

3-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例 3-4 行の追加行の追加行の追加行の追加

例 3-3で変更した SQLコマンドに 4行目を追加するとします。 すでに行 3が現在行なので、INPUTと入力し(これは Iと省略できます)、[Return]を押します。 次のように、新しい行の入力を求めるプロンプトが表示されます。

SQL> INPUT 4

新しい行を入力してください。 次に、[Return]を押します。 再び次のように新しい行の入力を求めるプロンプトが表示されます。

4 ORDER BY SAL5

これ以上入力しないことを示すために [Return]を押し、その後、RUNコマンドを使用して問合せを検証し再実行します。

行へのテキストの追加行へのテキストの追加行へのテキストの追加行へのテキストの追加バッファ内の行の終わりにテキストを追加するには、次のように APPENDコマンドを使用します。

1. LISTコマンド(または単に行番号)を使用して、変更する行をリスト表示します。

2. APPENDと入力し、その後に追加するテキストを続けます。 追加するテキストが空白で始まる場合は、APPENDという単語とテキストの 1文字目を 2つの空白で区切ります。 つまり、1つは APPENDとテキストの区切りで、もう 1つはテキストをバッファ内に進めるためです。

例例例例 3-5 行へのテキストの追加行へのテキストの追加行へのテキストの追加行へのテキストの追加

現行の問合せの行 4に空白および DESC句を追加するには、最初に次のように行 4をリスト表示します。

SQL> LIST 4 4* ORDER BY SAL

次のコマンドを入力します(APPENDと DESCの間には必ず空白を 2つ入力してください)。

SQL> APPEND DESC 4* ORDER BY SAL DESC

RUNを使用して、問合せを検証し再実行します。

Page 49: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

編集コマンド

コマンド操作 3-7

行の削除行の削除行の削除行の削除バッファ内の行を削除するには、次のように DELコマンドを使用します。

1. LISTコマンド(または単に行番号)を使用して、削除する行をリスト表示します。

2. DELおよびオプションの句を入力します。

現在行から最終行までを削除するとします。 次に示すように、DELコマンドを使用してください。

SQL> DEL * LAST

DELを実行すると、バッファの次の行が(もしあれば)現在行になります。

詳細は、第 8章の「DELETE」コマンドを参照してください。

システム・エディタを使用したコマンドの編集システム・エディタを使用したコマンドの編集システム・エディタを使用したコマンドの編集システム・エディタを使用したコマンドの編集コンピュータのホスト・オペレーティング・システムは、1つ以上のテキスト・エディタを備えており、ホスト・システム・ファイルを作成し編集するためにそれらのエディタを使用することができます。 テキスト・エディタは SQL*Plusの編集コマンドと同じ一般機能を実行しますが、編集コマンドよりも使用しやすい場合があります。

ホスト・オペレーティング・システムのデフォルト・テキスト・エディタは、SQL*Plusを終了しなくても、EDITコマンドを入力すれば実行できます。

SQL> EDIT

EDITを使用して、バッファの内容をシステムのデフォルト・テキスト・エディタにロードします。 その後、テキスト・エディタのコマンドを使用してテキストを編集できます。 テキスト・エディタに編集後のテキストを保存して終了するよう指示した場合、テキストはバッファに戻されます。

バッファの内容をデフォルト以外のテキスト・エディタにロードするには、エディタの名前を保持する変数 _EDITORを定義するために SQL*Plusの DEFINEコマンドを使用します。 たとえば、EDITで使用するエディタを EDTとして定義するには、次のコマンドを入力します。

SQL> DEFINE _EDITOR = EDT

EDITで使用するエディタをユーザーまたはサイトのプロファイルの中で定義することもできます。 詳細は、この章の「SQL*Plus環境の設定」および第 8章の「DEFINE」コマンドと「EDIT」コマンドを参照してください。

Page 50: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

3-8 SQL*Plusユーザーズ・ガイドおよびリファレンス

後で使用するコマンドの保存後で使用するコマンドの保存後で使用するコマンドの保存後で使用するコマンドの保存SQL*Plusを使用して、1つ以上のコマンドをコマンド・ファイルというファイルに格納できます。 コマンド・ファイルを作成した後、そのファイルの取出し、編集および実行を行うことができます。 コマンド・ファイルは、コマンド、特に複雑なコマンドや PL/SQLブロックを将来も使用できるよう保存しておくために使います。

コマンド・ファイルへのコマンドの格納コマンド・ファイルへのコマンドの格納コマンド・ファイルへのコマンドの格納コマンド・ファイルへのコマンドの格納1つ以上の SQLコマンド、PL/SQLブロック、および SQL*Plusコマンドをコマンド・ファイルに格納できます。 SQL*Plusの中では、次の 3つの方法のいずれかでコマンド・ファイルを作成できます。

■ コマンドを入力し、バッファの内容を保存する。

■ INPUTを使用してコマンドを入力した後、バッファの内容を保存する。

■ EDITを使用し、ホスト・システムのテキスト・エディタによってファイルを最初から作成する。

SQL*Plusコマンドはバッファ内に格納されないので、SQL*Plusコマンドを保存するには最後の 2つの方法を使用する必要があります。

バッファ内容を保存することによるコマンド・ファイルの作成バッファ内容を保存することによるコマンド・ファイルの作成バッファ内容を保存することによるコマンド・ファイルの作成バッファ内容を保存することによるコマンド・ファイルの作成現行の SQLコマンドまたは PL/SQLブロックを後で使用するために保存するには、SAVEコマンドを入力します。 このコマンドの後にファイル名を続けてください。

SQL> SAVE file_name

SQL*Plusは、SQL問合せファイルであることを示すため、ファイル名に拡張子 SQLを追加します。 別の拡張子が付いた名前でコマンドまたはブロックを保存する場合は、ファイル名の終わりにピリオドを入力し、その後に使用する拡張子を続けてください。

SQL*Plusの中では、拡張子とファイル名をピリオドで区切ります。 ご使用のオペレーティング・システムによっては、ファイル名と拡張子の区切りに別の文字または空白を使用する場合もあります。

Page 51: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

コマンド操作 3-9

例例例例 3-6 現行コマンドの保存現行コマンドの保存現行コマンドの保存現行コマンドの保存

最初に、現行コマンドを表示するため、次のようにバッファの内容を LISTしてください。

SQL> LIST 1 SELECT DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE DEPTNO = 10 4* ORDER BY SAL DESC

示されている問合せがバッファ内にない場合は、この時点で問合せを再入力してください。 次に、SAVEコマンドとそれに続けてファイル名 DEPTINFOを入力してください。

SQL> SAVE DEPTINFOCreated file DEPTINFO

次のように SQL*PlusのHOSTコマンドを入力し、それに続けてホスト・オペレーティング・システムのファイル・リスト・コマンドを入力することによって、コマンド・ファイルDEPTINFOが存在するかどうかを検証できます。

SQL> HOST your_host's_file_listing_command

同じ方法を使用して、バッファ内に現在格納されている PL/SQLブロックを保存できます。

INPUTおよびおよびおよびおよび SAVE を使用したコマンド・ファイルの作成を使用したコマンド・ファイルの作成を使用したコマンド・ファイルの作成を使用したコマンド・ファイルの作成コマンドの入力に INPUTを使用する場合、SQL*Plusコマンドを(1つ以上の SQLコマンドまたは PL/SQLブロックとともに)バッファに入れることができます。 それには、コマンド・プロンプトからコマンドを直接入力する場合と同様に、最初に SQL*Plusコマンドを入力し、SQLコマンドまたは PL/SQLブロックは最後に入力する必要があります。

コマンド・ファイルの中には、さまざまな問合せに使用する一連の SQL*Plusコマンドを単独で格納することもできます。

例例例例 3-7 INPUTおよびおよびおよびおよび SAVEを使用したコマンドの保存を使用したコマンドの保存を使用したコマンドの保存を使用したコマンドの保存

たとえば、販売担当者とそのコミッションのリストを表示するために問合せを作成したとします。 その問合せは、それぞれの従業員の実績を追跡し記録するために月 1回実行する計画です。 INPUTを使用して問合せを作成して保存するには、最初にバッファを消去しなければなりません。

SQL> CLEAR BUFFER

Page 52: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

3-10 SQL*Plusユーザーズ・ガイドおよびリファレンス

次に、INPUTを使用してコマンドを入力します(コマンドの終わりにセミコロンを入力しないでください)。

SQL> INPUT 1 COLUMN ENAME HEADING SALESMAN 2 COLUMN SAL HEADING SALARY FORMAT $99,999 3 COLUMN COMM HEADING COMMISSION FORMAT $99,990 4 SELECT EMPNO, ENAME, SAL, COMM 5 FROM EMP 6 WHERE JOB = 'SALESMAN' 7

列 COMMの書式モデルの終わりにゼロを指定すると、ある行の COMMの値がゼロの場合、空白のかわりにゼロが表示されます。 書式モデルおよび COLUMNコマンドの詳細は、第 4章を参照してください。

この時点で、次のように SAVEコマンドを使用して、SQLの拡張子が付いた SALESというファイルに問合せを格納してください。

SQL> SAVE SALESCreated file SALES

問合せの終わりにセミコロンを入力しないでください。セミコロンを挿入した場合、SQL*Plusはバッファの内容を実行しようとします。 SQL*Plusは、バッファ内に SQLコマンドのみ入っているとみなすので、バッファ内の SQL*Plusコマンドはエラーを生成します。 コマンド・ファイルの実行方法については、この章の後半で学習します。

複数の SQLコマンドを入力するには、すべての SQLコマンドにセミコロンを付けないでおきます。 その後、APPENDを使用して最後のコマンドを除くすべてのコマンドにセミコロンを追加します。 (SAVEは、ファイルの終わりに自動的にスラッシュを追加します。このスラッシュは、コマンド・ファイルが実行されたときに最後のコマンドを実行するようSQL*Plusに指示します。)

複数の PL/SQLブロックを入力するには、ブロックとブロックの間の行にピリオドまたはスラッシュを挿入せずに、次々にブロックを入力します。 その後、最後のブロックを除く各ブロックについて、そのブロックの最終行をリスト表示して現在行にし、次の書式の INPUTを使用してスラッシュのみの 1行を挿入します。

INPUT /

Page 53: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

コマンド操作 3-11

システム・エディタを使用したコマンド・ファイルの作成システム・エディタを使用したコマンド・ファイルの作成システム・エディタを使用したコマンド・ファイルの作成システム・エディタを使用したコマンド・ファイルの作成次のように EDITを入力し、その後にファイル名を入力することによって、ホスト・オペレーティング・システムのテキスト・エディタを使用してコマンド・ファイルを作成することができます。

SQL> EDIT SALES

SAVEコマンドと同様に、EDITは名前にファイル名拡張子 SQLを追加します。ただし、ユーザーがファイル名の終わりにピリオドと別の拡張子を入力した場合は除きます。 テキスト・エディタを使用してコマンド・ファイルを保存する場合、そのコマンド・ファイルは同じファイルに戻されます。

各 SQLコマンドの終わりにはセミコロンを、また、ファイル内の各 PL/SQLブロックの後にピリオドのみの 1行をそれぞれ挿入する必要があります。 (複数の SQLコマンドおよびPL/SQLブロックを挿入できます。)

EDITを使用してコマンド・ファイルを作成する場合、ファイルの終わりに SQL*Plusコマンドを挿入することもできます。 これは、SAVEコマンドを使用してコマンド・ファイルを作成するときにはできません。なぜなら、SAVEではファイルの終わりにスラッシュが追加されるからです。 このスラッシュがあると、SQL*Plusはコマンド・ファイルを 2回実行します。1回は最後の SQLコマンドの終わりでセミコロン(または最後の PL/SQLブロックの後にスラッシュ)を検出したとき、もう 1回はファイルの終わりでスラッシュを検出したときです。

コマンド・ファイルへのコメントの挿入コマンド・ファイルへのコメントの挿入コマンド・ファイルへのコメントの挿入コマンド・ファイルへのコメントの挿入コマンド・ファイルにコメントを入力するには、次の 3つの方法があります。

■ SQL*Plusの REMARKコマンドを使用する

■ SQLのコメント・デリミタ、/*...*/を使用する

■ ANSI/ISO(米国規格協会 /国際標準化機構)のコメント、--を使用する

この 3つの方法のいずれかでコメントして識別されたものは、SQL*Plusでは解析されず、実行もできません。

REMARKコマンドの使用方法コマンドの使用方法コマンドの使用方法コマンドの使用方法REMARKコマンドは、コマンド・ファイル内の 1行に指定し、同じ行にコメントを続けます。 コメントを次の行に継続するには、追加の REMARKコマンドを入力します。 1つの SQLコマンドで行と行の間に REMARKコマンドを挿入してはなりません。

注意注意注意注意 : 同じ行でセミコロンの後にコメントを入力することはできません。

Page 54: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

3-12 SQL*Plusユーザーズ・ガイドおよびリファレンス

REMARK Commissions reportREMARK to be run monthly.COLUMN ENAME HEADING SALESMANCOLUMN SAL HEADING SALARY FORMAT $99,999COLUMN COMM HEADING COMMISSION FORMAT $99,990REMARK Includes only salesmen.

SELECT EMPNO, ENAME, SAL, COMMFROM EMPWHERE JOB = 'SALESMAN'

/*...*/の使用方法の使用方法の使用方法の使用方法SQLのコメント・デリミタ、/*...*/は、コマンド・ファイル内の独立した行に入力するか、SQLコマンドと同じ行に入力するか、または PL/SQLブロック内の行に入力します。

コメントは、次のように複数の行にわたっていてもかまいませんが、コメント内にコメントをネストさせることはできません。

/* Commissions reportto be run monthly. */COLUMN ENAME HEADING SALESMANCOLUMN SAL HEADING SALARY FORMAT $99,999COLUMN COMM HEADING COMMISSION FORMAT $99,990SELECT EMPNO, ENAME, SAL, COMMFROM EMPWHERE JOB = 'SALESMAN' /* Includes only salesmen. */

SQLコメントをコマンド・プロンプトで直接入力する場合、SQL*Plusはそのコメントをバッファ内に格納しません。

- -の使用方法の使用方法の使用方法の使用方法SQL文、PL/SQLブロック、または SQL*Plusコマンドの中で、ANSI/ISOの "--"スタイルのコメントを使用できます。 終わりのデリミタはないので、コメントを複数の行にわたって入力することはできません。 PL/SQLおよび SQLの場合、次のように、ある行のコマンドの後にコメントを入力するか、コメントのみ 1行にして入力します。

-- Commissions report to be run monthlyDECLARE --block for reporting monthly sales

Page 55: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

コマンド操作 3-13

SQL*Plusコマンドでは、コメントのみ 1行にした場合にだけ、"--"スタイルのコメントを挿入できます。 たとえば、次のコメントは有効です。

--set maximum width for LONG to 777SET LONG 777-- set the heading for ENAME to be SALESMANCOLUMN ENAME HEADING SALESMAN

次のコメントは無効です。

SET LONG 777 -- set maximum width for LONG to 777SET -- set maximum width for LONG to 777 LONG 777

次の SQL*Plusコマンドを入力した場合、このコマンドはコメントとして扱われ、実行されません。

-- SET LONG 777

コマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの内容をバッファ内に入れる場合は、そのコマンドが格納されているファイルからコマンドを取り出す必要があります。 SQL*Plusコマンドの GETを使用して、コマンド・ファイルを取り出します。

バッファ内にある問合せを SAVEコマンドでファイルに保存するのとまったく同様に、GETコマンドを使用してファイル内の問合せをバッファに取り出すことができます。

SQL> GET file_name

適切なオペレーティング・システムでは、SQL*Plusによってファイル名にピリオドと拡張子 SQLが追加されます。ただし、ユーザーがファイル名の終わりにピリオドと別の拡張子を入力した場合は除きます。

例例例例 3-8 コマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの取出し

たとえば、後のセッションで SALESファイルを取り出す必要があるとします。 ファイルは、GETコマンドを入力することによって取り出すことができます。 ファイル SALESを取り出すには、次のように入力します。

SQL> GET SALES1 COLUMN ENAME HEADING SALESMAN2 COLUMN SAL HEADING SALARY FORMAT $99,9993 COLUMN COMM HEADING COMMISSION FORMAT $99,9904 SELECT EMPNO, ENAME, SAL, COMM5 FROM EMP6* WHERE JOB = 'SALESMAN'

Page 56: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

3-14 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusは、拡張子 SQLが付いたファイル SALESの内容を SQLバッファの中に取り出し、画面にリスト表示します。 その後、ユーザーはさらにコマンドを編集できます。 ファイルに SQL*Plusコマンドが入っていない場合には、RUNコマンドを使用してそのファイルを実行することもできます。

コマンド・ファイルの実行コマンド・ファイルの実行コマンド・ファイルの実行コマンド・ファイルの実行STARTコマンドはコマンド・ファイルを取り出し、そこに入っているコマンドを実行します。 SQLコマンド、PL/SQLブロック、または SQL*Plusコマンドが入っているコマンド・ファイルを実行するには、STARTを使用します。 STARTコマンドの後に、ファイルの名前を入力してください。

START file_name

ファイルに拡張子 SQLが付いている場合、ファイル名にピリオドおよび拡張子 SQLを追加する必要はありません。

例例例例 3-9 コマンド・ファイルの実行コマンド・ファイルの実行コマンド・ファイルの実行コマンド・ファイルの実行

SALES.SQLに格納されているコマンドを取り出して実行するには、次のように入力します。

SQL> START SALES

SQL*Plusはファイル SALES内のコマンドを実行し、コマンドの結果を画面に表示します。その際、次のようにファイル内の SQL*Plusコマンドに従って、問合せ結果の書式が設定されます。

EMPNO SALESMAN SALARY COMMISSION----- --------- -------- -----------7499 ALLEN $1,600 $3007521 WARD $1,250 $5007654 MARTIN $1,250 $1,4007844 TURNER $1,500 $0

SQL*Plusがコマンドを入力する様子を表示する場合は、SETコマンドの ECHO変数を ONに設定します。 ECHO変数は、START、@および @@コマンドで実行されるコマンド・ファイル内のコマンドのリスト表示を制御します。 ECHO変数を OFFに設定すると、リストは表示されません。

@(アット・マーク)コマンドを使用して、コマンド・ファイルを実行することもできます。

SQL> @SALES

Page 57: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

コマンド操作 3-15

@コマンドは、指定されたコマンド・ファイル内のコマンドを STARTと同じ方法でリスト表示し、実行します。 SET ECHOは、STARTコマンドに影響を及ぼすのと同様に、@コマンドにも影響を及ぼします。

START、@および @@では、コマンド・ファイル内の最後の SQLコマンドまたは PL/SQLブロックがバッファ内に残ります。

SQL*Plus起動時のコマンド・ファイルの実行起動時のコマンド・ファイルの実行起動時のコマンド・ファイルの実行起動時のコマンド・ファイルの実行SQL*Plusを起動するときにコマンド・ファイルを実行するには、次の 4つのオプションのいずれかを使用します。

■ 次のように、SQLPLUSコマンドと、それに続けてユーザー名、スラッシュ、パスワード、空白、@、およびコマンド・ファイル名を指定します。

SQLPLUS SCOTT/TIGER @SALES

SQL*Plusが起動し、コマンド・ファイルが実行されます。

■ 次のように、SQLPLUSコマンドと、それに続けてユーザー名、空白、@、およびコマンド・ファイル名を指定します。

SQLPLUS SCOTT @SALES

パスワードの入力を求めるプロンプトが表示され、SQL*Plusが起動し、コマンド・ファイルが実行されます。

■ ユーザー名をファイルの 1行目として挿入します。 SQLPLUSコマンドと、それに続けて@およびファイル名を指定します。 パスワードの入力を求めるプロンプトが表示され、SQL*Plusが起動し、コマンド・ファイルが実行されます。

■ ファイルの 1行目として、ユーザー名、スラッシュ(/)、およびパスワードを挿入します。 SQLPLUSコマンドと、それに続けて @およびファイル名を指定します。 SQL*Plusが起動し、コマンド・ファイルが実行されます。

コマンド・ファイルのネストコマンド・ファイルのネストコマンド・ファイルのネストコマンド・ファイルのネスト一連のコマンド・ファイルを順に実行するには、最初に複数の STARTコマンドを順に指定したコマンド・ファイルを作成します。それぞれの STARTコマンドの後には、コマンド・ファイルの名前を続けます。 次に、STARTコマンドが入ったコマンド・ファイルを実行します。 たとえば、SALESRPTというコマンド・ファイルに次の STARTコマンドを挿入できます。

START Q1SALESSTART Q2SALESSTART Q3SALESSTART Q4SALESSTART YRENDSLS

Page 58: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

3-16 SQL*Plusユーザーズ・ガイドおよびリファレンス

コマンド・ファイルの変更コマンド・ファイルの変更コマンド・ファイルの変更コマンド・ファイルの変更次の 2つの方法で、既存のコマンド・ファイルを変更できます。

■ EDITコマンドの使用

■ GET、SQL*Plus編集コマンド、および SAVEの使用

既存のコマンド・ファイルを EDITコマンドで編集するには、EDITという単語の後にファイルの名前を続けて入力します。 たとえば、拡張子 SQLが付いた PROFITという既存のファイルを編集するには、次のコマンドを入力します。

SQL> EDIT PROFIT

EDITでは、ユーザーがファイルの拡張子を指定しなかった場合、SQLという拡張子が付いているものと想定されます。

GET、SQL*Plus編集コマンド、および SAVEを使用して既存のファイルを編集するには、最初に GETでファイルを取り出し、次に SQL*Plus編集コマンドでファイルを編集し、最後に SAVEコマンドでファイルを保存します。

既存のコマンド・ファイルの内容をバッファ内のコマンドまたはブロックで置き換える場合は、SAVEコマンドを使用し、その後にファイル名および REPLACEという単語を指定する必要があります。

次に例を示します。

SQL> GET MYREPORT1* SELECT * FROM EMPSQL> C/*/ENAME, JOB1* SELECT ENAME, JOB FROM EMPSQL> SAVE MYREPORT REPLACEWrote file MYREPORT

既存のコマンド・ファイルの終わりにバッファの内容を追加する場合は、次のように SAVEコマンドを使用し、その後にファイル名および APPENDという単語を続けて入力します。

SQL> SAVE file_name APPEND

注意注意注意注意 : この例では、@@コマンドが便利な場合があります。 詳細は、第 8章の「@@」コマンドを参照してください。

Page 59: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

コマンド操作 3-17

リターン・コードを伴ったコマンド・ファイルの終了リターン・コードを伴ったコマンド・ファイルの終了リターン・コードを伴ったコマンド・ファイルの終了リターン・コードを伴ったコマンド・ファイルの終了ホスト・オペレーティング・システム上のバッチ・ファイルから実行中のコマンド・ファイルが SQLエラーを生成した場合、そのコマンド・ファイルを異常終了し、リターン・コードを付けて終了できます。 そのためには、SQL*PlusコマンドのWHENEVER SQLERRORを使用します。詳細は、第 8章の「WHENEVER SQLERROR」コマンドを参照してください。

同様に、オペレーティング・システム・エラーが発生した場合に終了するには、WHENEVER OSERRORコマンドを使用します。 詳細は、第 8章の「WHENEVER OSERROR」コマンドを参照してください。

SQL*Plus環境の設定環境の設定環境の設定環境の設定SQL*Plus環境を特定の方法(たとえば、現在の時刻を SQL*Plusのコマンド・プロンプトの一部として表示するなど)で設定し、その設定をそれぞれのセッションで再利用することもできます。 そのためには、ファイル拡張子 SQLが付いた LOGINというホスト・オペレーティング・システム・ファイル(ユーザー・プロファイルとも呼ばれます)を使用します。 このファイルの正確な名前は、システムによって異なります。正確な名前については、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

このファイルには、任意の SQLコマンド、PL/SQLブロック、または SQL*Plusコマンドを追加できます。ユーザーが SQL*Plusを起動すると、そのユーザーの LOGINファイルが(最初にユーザーのローカル・ディレクトリ、次にシステム依存のパスから)自動的に検索され、そこにあるコマンドが実行されます。 (サイト・プロファイル、たとえばGLOGIN.SQLを使用することもできます。サイト・プロファイルおよびユーザー・プロファイルの関係については、第 7章の SQLPLUSコマンドを参照してください。

LOGINファイルの変更ファイルの変更ファイルの変更ファイルの変更LOGINファイルは、他のコマンド・ファイルと同様に変更できます。 LOGINファイルには、次のようなコマンドを追加できます。

SET COMPATIBILITY V7または V8を後に続けて、指定する Oracleのバージョンとの互換性を設定します。 V7に対し COMPATIBILITYを設定すると、Oracle7で作成したコマンド・ファイルを実行できます。

SET NUMFORMAT 数値書式(たとえば、$99,999など)を後に続けて、問合せ結果で数値を表示するためのデフォルト書式を設定します。

SET PAGESIZE 数値を後に続けて、1ページあたりの行数を設定します。

SET PAUSE ONを後に続けると、SQL*Plusは出力の各ページの冒頭でSQL*Plusを一時停止させることができます(SQL*Plusは [Return]を入力するとスクロールを続行します)。 テキストを後に続けると、SQL*Plusが一時停止するたびにそのテキストが表示されるように設定できます(PAUSEを ONに設定しておく必要もあります)。

Page 60: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

後で使用するコマンドの保存

3-18 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusの LOGINファイル内で設定できる各種の SETコマンド変数の詳細は、第 8章の「SET」コマンドを参照してください。

SQL*Plusシステム変数の格納および復元システム変数の格納および復元システム変数の格納および復元システム変数の格納および復元現行の SQL*Plusシステム("SET")変数を、STOREコマンドでホスト・オペレーティング・システム・ファイル(コマンド・ファイル)に格納できます。 変数を変更した場合は、元の値を復元するためにこのコマンド・ファイルを実行します。 この機能は、システム変数を変更するレポートを実行し、レポートの実行が完了した後でシステム変数の値をリセットする場合に便利です。

すべてのシステム変数の現行の値を格納するには、次のように入力します。

SQL> STORE SET file_name

デフォルトでは、SQL*Plusはファイル名に拡張子 "SQL"を追加します。 別のファイル拡張子を使用する場合は、ファイル名の終わりにピリオドを入力し、その後に拡張子を指定してください。 または、SET SUFFIXコマンドを使用して、デフォルトのファイル拡張子を変更することもできます。

システム変数の復元システム変数の復元システム変数の復元システム変数の復元格納済みのシステム変数を復元するには、次のように入力します。

SQL> START file_name

ファイルにデフォルト拡張子(SET SUFFIXコマンドで指定したもの)が付いている場合は、ファイル名にピリオドおよび拡張子を追加する必要はありません。

@(アット・マーク)または @@(二重アット・マーク)コマンドを使用して、コマンド・ファイルを実行することもできます。

SET SHIFTINOUT VISIBLEを後に続けて、シフト文字を可視文字として表示します。 SHIFTINOUTを INVISIBLEに設定すると、シフト文字は表示されません。 このコマンドを使用できるのは、シフトを感知するキャラクタ・セットの場合のみです。

SET TIME ONを後に続けて、それぞれのコマンド・プロンプトの前に現在の時刻を表示します。

Page 61: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

コマンド操作 3-19

例例例例 3-10 SQL*Plusシステム変数の格納および復元システム変数の格納および復元システム変数の格納および復元システム変数の格納および復元

SQL*Plusシステム変数の現行の値を新規コマンド・ファイル "plusenv.sql"に格納するには、次のように入力します。

SQL> STORE SET plusenvCreated file plusenv

この時点で、任意のシステム変数の値を変更できます。

SQL> SHOW PAGESIZEpagesize 24SQL> SET PAGESIZE 60SQL> SHOW PAGESIZEpagesize 60

その後、システム変数の元の値をコマンド・ファイルから復元できます。

SQL> START plusenvSQL> SHOW PAGESIZEpagesize 24

対話型コマンドの作成対話型コマンドの作成対話型コマンドの作成対話型コマンドの作成SQL*Plusの次の機能を使用すると、エンド・ユーザーが入力できるコマンド・ファイルを設定できます。

■ ユーザー変数を定義する

■ コマンド内の値を置換する

■ STARTコマンドを使用して値を指定する

■ 値を入力するプロンプトを表示する

ユーザー変数の定義ユーザー変数の定義ユーザー変数の定義ユーザー変数の定義SQL*Plusの DEFINEコマンドを使用すると、ユーザー変数という変数を定義して、単一のコマンド・ファイルの中で繰り返し使用できます。 タイトルの中で使用したり、(短い名前の変数に長いストリングを値として定義することによって)キーストロークを保管したりするために、ユーザー変数を定義することもできます。

Page 62: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

3-20 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例 3-11 ユーザー変数の定義ユーザー変数の定義ユーザー変数の定義ユーザー変数の定義

ユーザー変数 EMPLOYEEを定義し、それに値 "SMITH"を与えるには、次のコマンドを入力します。

SQL> DEFINE EMPLOYEE = SMITH

変数の定義を確認するには、次のように DEFINEの後に変数名を指定します。

SQL> DEFINE EMPLOYEE

次のように定義がリスト表示されます。

DEFINE EMPLOYEE = "SMITH" (CHAR)

すべてのユーザー変数定義をリスト表示するには、コマンド・プロンプトに DEFINEを単独で入力します。 DEFINEを使用して明示的に定義したユーザー変数は、CHARの値のみ取ることに注意してください(つまり、ユーザーが変数に割り当てた値は、常に CHARデータ型として扱われます)。 ACCEPTコマンドを使用すると、NUMBERデータ型のユーザー変数を暗黙に定義できます。 ACCEPTコマンドについては、この章の後半で詳しく説明します。

ユーザー変数を削除するには、SQL*Plusコマンドの UNDEFINEの後に変数名を指定します。

置換変数の使用方法置換変数の使用方法置換変数の使用方法置換変数の使用方法SALESの場合(例 3-7を参照)と同様の問合せを作成し、職種が SALESMANである従業員だけでなく、さまざまな職種の従業員のリストを表示するとします。 そのためには、コマンドを実行するたびに異なる CHAR値を編集してWHERE句に入れる方法もありますが、もっと簡単な方法があります。

WHERE句内の値 SALESMANのかわりに置換変数を使用すると、コマンド自体に値を書き込んだ場合と同じ結果が得られます。

置換変数は、ユーザー変数名の前に 1つまたは 2つのアンパサンド(&)を付けたものです。 SQL*Plusは、コマンド内で置換変数を検出した場合、そのコマンドに置換変数自体ではなく置換変数の値が入っているかのようにコマンドを実行します。

Page 63: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

コマンド操作 3-21

たとえば、変数 SORTCOLの値が JOBで、変数MYTABLEの値が EMPの場合、SQL*Plusは、

SQL> BREAK ON &SORTCOLSQL> SELECT &SORTCOL, SAL 2 FROM &MYTABLE 3 ORDER BY &SORTCOL;

というコマンドを次のコマンドであるかのように実行します。

SQL> BREAK ON JOBSQL> SELECT JOB, SAL 2 FROM EMP 3 ORDER BY JOB;

(BREAKコマンドは、SORTCOLで指定された列の値が重複しないようにします。 BREAKコマンドの詳細は、第 4章の「間隔の設定およびサマリー行によるレポートの明確化」を参照してください。)

置換変数を使用する位置および方法置換変数を使用する位置および方法置換変数を使用する位置および方法置換変数を使用する位置および方法置換変数は、SQLコマンドおよび SQL*Plusコマンド内の任意の位置で使用できますが、コマンド・プロンプトで最初に入力する単語としては使用できません。 SQL*Plusは、コマンド内で未定義の置換変数を検出した場合、値の入力を求めるプロンプトを表示します。

このプロンプトには任意の文字列を入力でき、空白および句読点を含む文字列でもかまいません。 参照を含んだ SQLコマンドで置換変数を引用符で囲む必要がある場合、そこに引用符が挿入されていなければ、プロンプトが表示されたときに引用符を挿入しなければなりません。

SQL*Plusは、キーボードからの応答を読み込みます。これは、端末の入力または出力をファイルへリダイレクトした場合でも同様です。 端末が使用不可能な場合(たとえば、バッチ・モードでコマンド・ファイルを実行した場合)、SQL*Plusはリダイレクトされたファイルを使用します。

プロンプトで値を入力すると、SQL*Plusは置換変数が入っている行を 2回リスト表示します。 1回は入力した値に置換される前、もう 1回は置換後です。 このリストは、SETコマンド変数 VERIFYを OFFに設定すると表示されません。

Page 64: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

3-22 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例 3-12 置換変数の使用方法置換変数の使用方法置換変数の使用方法置換変数の使用方法

数値列についてのサブグループ統計(最大値)を計算するために使用する STATSというコマンド・ファイルを、次のように作成してください。

SQL> CLEAR BUFFERSQL> INPUT 1 SELECT &GROUP_COL, 2 MAX(&NUMBER_COL) MAXIMUM 3 FROM &TABLE 4 GROUP BY &GROUP_COL 5SQL> SAVE STATSCreated file STATS

この時点で、コマンド・ファイル STATSを実行し、値の入力を求めるプロンプトに次のように応答します。

SQL> @STATSEnter value for group_col: JOBold 1: SELECT &GROUP_COL,new 1: SELECT JOB,Enter value for number_col: SALold 2: MAX(&NUMBER_COL) MAXIMUMnew 2: MAX(SAL) MAXIMUMEnter value for table: EMPold 3: FROM &TABLEnew 3: FROM EMPEnter value for group_col: JOBold 4: GROUP BY &GROUP_COLnew 4: GROUP BY JOB

SQL*Plusは、次の出力を表示します。

JOB MAXIMUM---------- ----------ANALYST 3000CLERK 1300MANAGER 2975PRESIDENT 5000SALESMAN 1600

Page 65: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

コマンド操作 3-23

置換変数の直後に文字を追加する場合は、変数と文字の区切りにピリオドを使用します。 次に例を示します。

SQL> SELECT * FROM EMP WHERE EMPNO=’&X.01’;Enter value for X: 123

これは、次のように解釈されます。

SQL> SELECT * FROM EMP WHERE EMPNO=’12301’;

値の入力を求める不要なプロンプトの回避値の入力を求める不要なプロンプトの回避値の入力を求める不要なプロンプトの回避値の入力を求める不要なプロンプトの回避数値列の最小値、合計、および平均値を含めるために、ファイル STATSを拡張するとします。 例 3-12では、値の入力を求めるプロンプトが GROUP_COLについて 2回、NUMBER_COLについて 1回表示され、それぞれの GROUP_COLまたはNUMBER_COLには前に単一のアンパサンドが付いています。 さらに 3つの関数を、それぞれの前にアンパサンドを 1つ付けてコマンド・ファイルに追加した場合には、合計で 4回、数値列の値の入力を求めるプロンプトが表示されます。

グループ列および数値列のプロンプトは再度表示されないようにするには、STATS内でそれぞれの GROUP_COLおよび NUMBER_COLの前にもう 1つのアンパサンドを追加します。 SQL*Plusは、前に 2つのアンパサンドが付いた置換変数を自動的に DEFINEし、アンパサンドが前に 1つだけ付いた置換変数は DEFINEしません。 ユーザーが変数を DEFINEした場合、SQL*Plusは(&変数または &&変数の形で)変数を参照するそれぞれの置換変数の変数値を置換します。 SQL*Plusは、ユーザーが変数を UNDEFINEするまで、そのセッションでの変数値の入力を求めるプロンプトを表示しません。

例例例例 3-13 二重アンパサンドの使用方法二重アンパサンドの使用方法二重アンパサンドの使用方法二重アンパサンドの使用方法

二重アンパサンドを使用してコマンド・ファイル STATSを拡張した後にそのファイルを実行するには、まず、次のようにして置換の前後に各行が表示されないようにします。

SQL> SET VERIFY OFF

この時点で、次のコマンドを入力して STATSを取り出し、編集します。

SQL> GET STATS 1 SELECT &GROUP_COL, 2 MAX(&NUMBER_COL) MAXIMUM 3 FROM &TABLE 4 GROUP BY &GROUP_COLSQL> 2 2* MAX(&NUMBER_COL) MAXIMUM

Page 66: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

3-24 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL> APPEND , 2* MAX(&NUMBER_COL) MAXIMUM,SQL> C /&/&& 2* MAX(&&NUMBER_COL) MAXIMUM,SQL> I 3i MIN(&&NUMBER_COL) MINIMUM, 4i SUM(&&NUMBER_COL) TOTAL, 5i AVG(&&NUMBER_COL) AVERAGE 6iSQL> 1 1* SELECT &GROUP_COL,SQL> C /&/&& 1* SELECT &&GROUP_COL,SQL> 7 7* GROUP BY &GROUP_COLSQL> C /&/&& 7* GROUP BY &&GROUP_COLSQL> SAVE STATS2created file STATS2

最後に、コマンド・ファイル STATS2を実行し、値の入力を求めるプロンプトに次のように応答します。

SQL> START STATS2Enter value for group_col: JOBEnter value for number_col: SALEnter value for table: EMP

SQL*Plusは、次の出力を表示します。

JOB MAXIMUM MINIMUM TOTAL AVERAGE---------- ---------- ---------- ---------- ---------ANALYST 3000 3000 6000 3000CLERK 1300 800 4150 1037.5MANAGER 2975 2450 8275 2758.33333PRESIDENT 5000 5000 5000 5000SALESMAN 1600 1250 5600 1400

NUMBER_COLおよび GROUP_COLの値の入力を求めるプロンプトが 1回だけ表示されました。 現行セッションで STATS2を再び実行する予定だった場合は、TABLEの入力を求めるプロンプトは表示されますが(名前に単一のアンパサンドが付いており、したがってこの変数は DEFINEされていないため)、GROUP_COLまたは NUMBER_COLの入力を求めるプロンプトは表示されません(名前に二重のアンパサンドが付いており、したがってこれらの変数は DEFINEされているため)。

Page 67: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

コマンド操作 3-25

先へ進む前に、次のようにしてシステム変数 VERIFYの設定を ONに戻してください。

SQL> SET VERIFY ON

制限制限制限制限置換変数はバッファ編集コマンドの APPEND、CHANGE、DEL、および INPUTには使用できません。また、他にも置換が意味をなさないコマンド、たとえば REMARKなどにも使用できません。 バッファ編集コマンドの APPEND、CHANGE、および INPUTは、"&"または "&&"で始まるテキストを、他のテキスト文字列と同じように単なる文字列として扱います。

システム変数システム変数システム変数システム変数次の SQL*Plusの SETコマンドとともに指定するシステム変数は、置換変数に影響を及ぼします。

これらのシステム変数の詳細は、第 8章の「SET」コマンドを参照してください。

STARTコマンドを使用してパラメータを渡す方法コマンドを使用してパラメータを渡す方法コマンドを使用してパラメータを渡す方法コマンドを使用してパラメータを渡す方法置換変数に関連する値の入力を求めるプロンプトは、STARTコマンドを使用してコマンド・ファイル内のパラメータに値を渡すことによってバイパスできます。

そのためには、コマンド・ファイル内で置換変数のかわりにアンパサンド(&)とそれに続けて数値を指定します。 このコマンドを実行するたびに、STARTはファイル内にあるそれぞれの &1を START filenamesの後の最初の値(引数と呼ばれる)に置換し、それぞれの &2を2番めの値に置換するというように、指定した数字の順序で置換します。

SET DEFINE 置換文字(デフォルトではアンパサンド "&")を定義し、置換をオン /オフにします。

SET ESCAPE 置換文字の前に使用できるエスケープ文字を定義します。 SQL*Plusは、エスケープ文字を検出すると、置換文字を変数置換の要求ではなく通常の文字として扱います。 デフォルトのエスケープ文字は、バックスラッシュ(\)です。

SET VERIFY ON 置換の前後にコマンド・ファイルの各行をリスト表示します。

SET CONCAT 置換変数またはパラメータの名前と、その置換変数またはパラメータの直後の文字とを区切る文字を定義します。デフォルトではピリオド(.)です。

Page 68: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

3-26 SQL*Plusユーザーズ・ガイドおよびリファレンス

たとえば、MYFILEというコマンド・ファイルに次のコマンドを挿入できます。

SELECT * FROM EMPWHERE JOB='&1'AND SAL=&2

次の STARTコマンドでは、コマンド・ファイルMYFILE内にある &1は CLERKに置換され、&2は 7900に置換されます。

SQL> START MYFILE CLERK 7900

STARTコマンドとともに引数を使用した場合、SQL*Plusはコマンド・ファイル内のそれぞれのパラメータを適切な引数の値で DEFINEします。

例例例例 3-14 STARTを使用してパラメータを渡す方法を使用してパラメータを渡す方法を使用してパラメータを渡す方法を使用してパラメータを渡す方法

表示する職種をパラメータで指定する新しいコマンド・ファイルを SALESに基づいて作成するには、次のように入力します。

SQL> GET SALES 1 COLUMN ENAME HEADING SALESMAN 2 COLUMN SAL HEADING SALARY FORMAT $99,999 3 COLUMN COMM HEADING COMMISSION FORMAT $99,990 4 SELECT EMPNO, ENAME, SAL, COMM 5 FROM EMP 6* WHERE JOB = 'SALESMAN'SQL> CHANGE /SALESMAN/&1 6* WHERE JOB = '&1'SQL> 1 1* COLUMN ENAME HEADING SALESMANSQL> CHANGE /SALESMAN/&1 1* COLUMN ENAME HEADING &1SQL> SAVE ONEJOBCreated file ONEJOB

この時点で、次のようにパラメータ CLERKを使用してこのコマンドを実行してください。

SQL> START ONEJOB CLERK

SQL*Plusは、次のように、パラメータを値に置換する前と後にそのパラメータが含まれている SQLコマンドの行をリスト表示し、その後に出力を表示します。

old 3: WHERE JOB = '&1'new 3: WHERE JOB = 'CLERK'

Page 69: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

コマンド操作 3-27

EMPNO CLERK SALARY COMMISSION----- ------ -------- -----------7369 SMITH $8007876 ADAMS $1,1007900 JAMES $9507934 MILLER $1,300

パラメータは、1つのコマンド・ファイルの中でいくつでも使用できます。 また、1つのコマンド・ファイルの中で 1つのパラメータを何回でも参照でき、複数のパラメータをどのような順序でも挿入できます。

先へ進む前に、次のコマンドを入力して、ENAME列を元のヘッダーに戻してください。

SQL> COLUMN ENAME CLEAR

ユーザーとの通信ユーザーとの通信ユーザーとの通信ユーザーとの通信PROMPT、ACCEPT、および PAUSEという 3つの SQL*Plusコマンドは、エンド・ユーザーとの通信に役立ちます。 これらのコマンドを使用すると、画面にメッセージを送信したり、単純な [Return]を含むユーザーからの入力を受信したりできます。 PROMPTおよびACCEPTを使用して、SQL*Plusが置換変数用に自動生成する値のプロンプトをカスタマイズすることもできます。

ユーザー変数値のプロンプトおよびアクセプトユーザー変数値のプロンプトおよびアクセプトユーザー変数値のプロンプトおよびアクセプトユーザー変数値のプロンプトおよびアクセプトPROMPTおよび ACCEPTを使用すると、エンド・ユーザーにメッセージを送信したり、エンド・ユーザーからの入力値をアクセプトしたりできます。 PROMPTは、指定されたメッセージを単に画面に表示するコマンドで、ユーザーに指示または情報を与えるために使用します。 ACCEPTは、ユーザーに対して値の入力を求めるプロンプトを表示し、入力された値を指定のユーザー変数に格納します。 値の入力を求めるプロンプトを複数の行にわたって表示する場合は、ACCEPTと組み合せて PROMPTを使用してください。

例例例例 3-15 入力のプロンプトおよびアクセプト入力のプロンプトおよびアクセプト入力のプロンプトおよびアクセプト入力のプロンプトおよびアクセプト

ユーザーにレポートのタイトルを入力するよう指示し、その入力値を変数MYTITLEに格納してその後の問合せで使用できるようにするには、まず次のようにバッファを消去します。

SQL> CLEAR BUFFER

注意注意注意注意 : RUNまたはスラッシュ(/)を使用してコマンドを実行する場合は、パラメータを使用できません。 コマンドをコマンド・ファイルに格納し、STARTまたは @を使用して実行してください。

Page 70: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

3-28 SQL*Plusユーザーズ・ガイドおよびリファレンス

次に、コマンド・ファイルを設定します。

SQL> INPUT 1 PROMPT Enter a title up to 30 characters long. 2 ACCEPT MYTITLE PROMPT 'Title: ' 3 TTITLE LEFT MYTITLE SKIP 2 4 SELECT * FROM DEPT 5SQL> SAVE PROMPT1Created file PROMPT1TTITLEコマンドは、レポートの一番上のタイトルを設定します。 このコマンドの詳細は、第 4章を参照してください。

最後に、コマンド・ファイルを実行し、タイトルの入力を求めるプロンプトに次のように応答します。

SQL> START PROMPT1Enter a title up to 30 characters long.Title: Department Report as of 1/1/95

SQL*Plusは、次の出力を表示します。

Department Report as of 1/1/95 DEPTNO DNAME LOC---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON

先へ進む前に、次のようにして、コマンド・ファイルに入力した TTITLEコマンドをオフにします。

SQL> TTITLE OFF

置換変数の入力を求めるプロンプトのカスタマイズ置換変数の入力を求めるプロンプトのカスタマイズ置換変数の入力を求めるプロンプトのカスタマイズ置換変数の入力を求めるプロンプトのカスタマイズ置換変数値の入力を求めるプロンプトをカスタマイズする場合は、次の例に示すように、置換変数と組み合せて PROMPTおよび ACCEPTを使用します。

Page 71: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

対話型コマンドの作成

コマンド操作 3-29

例例例例 3-16 置換変数と組み合せて置換変数と組み合せて置換変数と組み合せて置換変数と組み合せて PROMPTおよびおよびおよびおよび ACCEPTを使用する方法を使用する方法を使用する方法を使用する方法

例 3-15で示したように、SQL*Plusでは、置換変数を使用する場合、値の入力を求めるプロンプトが自動生成されます。 このプロンプトは、置換変数を参照する問合せがあるコマンド・ファイルに PROMPTおよび ACCEPTを挿入することによって置換できます。 そのようなファイルを作成するには、次のコマンドを入力します。

SQL> CLEAR BUFFERbuffer clearedSQL> INPUT 1 PROMPT Enter a valid employee number 2 PROMPT For example: 7123, 7456, 7890 3 ACCEPT ENUMBER NUMBER PROMPT 'Emp. no.: ' 4 SELECT ENAME, MGR, JOB, SAL 5 FROM EMP 6 WHERE EMPNO = &ENUMBER 7SQL> SAVE PROMPT2Created file PROMPT2次に、コマンド・ファイルを実行します。 SQL*Plusは、PROMPTおよび ACCEPTで指定されたテキストを使用して、次のように ENUMBERの値の入力を求めるプロンプトを表示します。

SQL> START PROMPT2Enter a valid employee numberFor example: 7123, 7456, 7890Emp. No.:

"Emp.No"のプロンプトに、次のように数字ではなく文字を入力してみてください。

Emp. No.: ONE"ONE" is not a valid numberEmp. No.:

ACCEPTコマンド内で変数名の後に NUMBERを指定したので、SQL*Plusは数値以外の値をアクセプトしません。 それでは、次のように数値を入力してください。

Emp. No.: 7521old 3: WHERE EMPNO = &ENUMBERnew 3: WHERE EMPNO = 7521

Page 72: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

バインド変数の使用方法

3-30 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusは、次の出力を表示します。

ENAME MGR JOB SALARY------ ----- --------- ------WARD 7698 SALESMAN $1,250

メッセージの送信およびメッセージの送信およびメッセージの送信およびメッセージの送信および [Return]の入力のアクセプトの入力のアクセプトの入力のアクセプトの入力のアクセプトユーザーの画面にメッセージを表示し、ユーザーがそのメッセージを読んだ後で [Return]を入力するようにする場合は、SQL*Plusコマンドの PAUSEを使用します。 たとえば、コマンド・ファイルに次の行を挿入することもできます。

PROMPT Before continuing, make sure you have your account card.PAUSE Press RETURN to continue.

画面の消去画面の消去画面の消去画面の消去レポートを表示する前に(またはその他の任意の時点で)画面を消去する場合は、コマンド・ファイル内の適切な場所で、次の書式を使用して SCREEN句を付けた SQL*PlusのCLEARコマンドを挿入します。

CLEAR SCREEN

次の項へ進む前に、次のコマンドを入力して、すべての列を元の書式およびヘッダーにリセットしてください。

SQL> CLEAR COLUMNS

バインド変数の使用方法バインド変数の使用方法バインド変数の使用方法バインド変数の使用方法SQL*Plusで PL/SQLサブプログラムに使用する変数を表示できるようにする、または複数のサブプログラムに同じ変数を使用できるようにするとします。 PL/SQLサブプログラムの中で変数を宣言した場合、その変数は SQL*Plusでは表示できません。 その変数に SQL*Plusからアクセスするには、PL/SQLでバインド変数を使用します。

バインド変数は、SQL*Plusで作成し、その後 PL/SQLで参照する変数です。 SQL*Plusでバインド変数を作成した場合、その変数は PL/SQLサブプログラムの中で宣言した変数と同じように使用でき、SQL*Plusからアクセスすることもできます。 バインド変数は、リターン・コードの格納、PL/SQLサブプログラムのデバッグなどに利用できます。

バインド変数は SQL*Plusから認識できるので、バインド変数の値を SQL*Plusで表示したり、SQL*Plusで実行した他の PL/SQLサブプログラム中でバインド変数を参照したりできます。

Page 73: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

バインド変数の使用方法

コマンド操作 3-31

バインド変数の作成バインド変数の作成バインド変数の作成バインド変数の作成バインド変数は、SQL*Plusの中で VARIABLEコマンドを使用して作成できます。 次に例を示します。

VARIABLE ret_val NUMBER

このコマンドによって、データ型が NUMBERで ret_valという名前のバインド変数が作成されます。 詳細は、第 8章の「VARIABLE」コマンドを参照してください。 (あるセッションで作成したすべてのバインド変数をリスト表示するには、何も引数を付けずに VARIABLEと入力します。)

バインド変数の参照バインド変数の参照バインド変数の参照バインド変数の参照PL/SQLでバインド変数を参照するには、コロン(:)を入力し、その直後に変数の名前を指定します。 次に例を示します。

:ret_val := 1;

このコマンドは、ret_valという名前のバインド変数に値を割り当てます。

バインド変数の表示バインド変数の表示バインド変数の表示バインド変数の表示SQL*Plusでバインド変数の値を表示するには、SQL*Plusの PRINTコマンドを使用します。 次に例を示します。

PRINT ret_val

このコマンドは、ret_valという名前のバインド変数を表示します。 これらのバインド変数の詳細は、第 8章の「PRINT」コマンドを参照してください。

例例例例 3-17 バインド変数の作成、参照、および表示バインド変数の作成、参照、および表示バインド変数の作成、参照、および表示バインド変数の作成、参照、および表示

データ型が NUMBERで idという名前のローカル・バインド変数を宣言するには、次のように入力します。

SQL> VARIABLE id NUMBER

次に、作成したばかりのバインド変数に値 "1"を入れます。

SQL> BEGIN 2 :id := 1; 3 END;

idという名前のバインド変数の値をリスト表示する場合は、次のように入力します。

SQL> PRINT id

Page 74: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REFCURSORバインド変数の使用方法

3-32 SQL*Plusユーザーズ・ガイドおよびリファレンス

この変数を使用して、いくつかの新しい部門を次のように作成してみてください。

SQL> EXECUTE :id := dept_management.new('ACCOUNTING','NEW YORK')SQL> EXECUTE :id := dept_management.new('RESEARCH','DALLAS')SQL> EXECUTE :id := dept_management.new('SALES','CHICAGO')SQL> EXECUTE :id := dept_management.new('OPERATIONS','BOSTON')SQL> PRINT idSQL> COMMIT

REFCURSORバインド変数の使用方法バインド変数の使用方法バインド変数の使用方法バインド変数の使用方法SQL*Plusの REFCURSORバインド変数を使用すると、PL/SQLブロックに含まれるSELECT文の結果を SQL*Plusからフェッチし、その書式を設定できます。

REFCURSORバインド変数は、ストアド・プロシージャ内で PL/SQLカーソル変数を参照するためにも使用できます。 これによって、データベース内に SELECT文を格納し、それらの文を SQL*Plusから参照できます。

REFCURSORバインド変数は、ストアド・ファンクションから戻すこともできます。

例例例例 3-18 REFCURSORバインド変数の作成、参照および表示バインド変数の作成、参照および表示バインド変数の作成、参照および表示バインド変数の作成、参照および表示

REFCURSORバインド変数を作成、参照および表示するには、最初に REFCURSORデータ型のローカル・バインド変数を宣言します。

SQL> VARIABLE dept_sel REFCURSOR

次に、このバインド変数を使用する PL/SQLブロックを OPEN ... FOR SELECT文に入力します。 この文は、カーソル変数をオープンし、問合せを実行します。 OPENコマンドおよびカーソル変数の詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

注意注意注意注意 : dept_management.newは、パッケージ(dept_management)内のPL/SQL関数 "new"を参照します。 関数 "new"は、表に部門データを追加します。

注意注意注意注意 : ストアド・ファンクションの戻り値を REFCURSOR変数に割り当てるには、Oracle7のリリース 7.3以上を使用する必要があります。

Page 75: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REFCURSORバインド変数の使用方法

コマンド操作 3-33

この例では、SQL*Plusの dept_selバインド変数をカーソル変数にバインドします。

SQL> BEGIN 2 OPEN :dept_sel FOR SELECT * FROM DEPT; 3 END; 4 /PL/SQL procedure successfully completed.

この時点で、SELECT文の結果を SQL*Plusで PRINT文を使用して表示できます。

SQL> PRINT dept_selDEPTNO DNAME LOC------ ----------- ---------10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON

PRINT文は、カーソルもクローズします。 結果を再出力するには、PRINTを使用する前にPL/SQLブロックを再実行してください。

例例例例 3-19 ストアド・プロシージャでのストアド・プロシージャでのストアド・プロシージャでのストアド・プロシージャでの REFCURSOR変数の使用方法変数の使用方法変数の使用方法変数の使用方法

REFCURSORバインド変数は、プロシージャへパラメータとして渡されます。 パラメータは、REF CURSOR型です。 最初に、型を定義してください。

SQL> CREATE OR REPLACE PACKAGE cv_types AS 2 TYPE DeptCurTyp is REF CURSOR RETURN dept%ROWTYPE; 3 END cv_types; 4 /Package created.

次に、OPEN ... FOR SELECT文が含まれたストアド・プロシージャを作成します。

SQL> CREATE OR REPLACE PROCEDURE dept_rpt 2 (dept_cv IN OUT cv_types.DeptCurTyp) AS 3 BEGIN 4 OPEN dept_cv FOR SELECT * FROM DEPT; 5 END; 6 /Procedure successfully completed.

Page 76: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REFCURSORバインド変数の使用方法

3-34 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusバインド変数をパラメータとして、プロシージャを実行します。

SQL> VARIABLE odcv REFCURSORSQL> EXECUTE dept_rpt(:odcv)PL/SQL procedure successfully completed.

この時点でバインド変数を出力します。

SQL> PRINT odcvDEPTNO DNAME LOC------ ----------- ---------10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON

このプロシージャは、同じまたは別の REFCURSORバインド変数を使用して何度でも実行できます。

SQL> VARIABLE pcv REFCURSORSQL> EXECUTE dept_rpt(:pcv)PL/SQL procedure successfully completed.SQL> PRINT pcvDEPTNO DNAME LOC------ ----------- ---------10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON

例例例例 3-20 ストアド・ファンクションでのストアド・ファンクションでのストアド・ファンクションでのストアド・ファンクションでの REFCURSOR変数の使用方法変数の使用方法変数の使用方法変数の使用方法

次のようにして、OPEN ... FOR SELECT文の含まれたストアド・ファンクションを作成します。

SQL> CREATE OR REPLACE FUNCTION dept_fn RETURN -> cv_types.DeptCurTyp IS 2 resultset cv_types.DeptCurTyp; 3 BEGIN 4 OPEN resultset FOR SELECT * FROM DEPT; 5 RETURN(resultset); 6 END; 7 /Function created.

Page 77: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

文のトレース

コマンド操作 3-35

このファンクションを実行します。

SQL> VARIABLE rc REFCURSORSQL> EXECUTE :rc := dept_fnPL/SQL procedure successfully completed.

この時点でバインド変数を出力します。

SQL> PRINT rcDEPTNO DNAME LOC------ ----------- ---------10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON

4 rows selected

このファンクションは、同じまたは別の REFCURSORバインド変数を使用して何度でも実行できます。

SQL> EXECUTE :rc := dept_fnPL/SQL procedure successfully completed.SQL> PRINT rcDEPTNO DNAME LOC------ ----------- ---------10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON

文のトレース文のトレース文のトレース文のトレースSQLオプティマイザが使用する実行パス、および文の実行統計に関するレポートを自動的に取得できます。 このレポートは、SQL DML(つまり、SELECT、DELETE、UPDATEおよびINSERT)文が正常に実行された後に生成されます。 このレポートは、これらの文のパフォーマンスを監視し、チューニングするのに役立ちます。

レポートの制御レポートの制御レポートの制御レポートの制御AUTOTRACEシステム変数を設定することによって、レポートを制御できます。

SET AUTOTRACE OFF AUTOTRACEレポートは生成されません。 これがデフォルトです。

Page 78: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

文のトレース

3-36 SQL*Plusユーザーズ・ガイドおよびリファレンス

この機能を使用するためには、PLUSTRACEロールの権限を付与されている必要があります。また、スキーマに PLAN_TABLE表が作成されていなければなりません。 PLUSTRACEロールおよび PLAN_TABLE表の詳細は、第 8章の「SET」コマンドの AUTOTRACE変数を参照してください。

Execution Plan「Execution Plan」は、SQLオプティマイザの問合せ実行パスを示します。 両方の表が、全表走査によってアクセスされ、ソートされ、その後マージされます。

「Execution Plan」のそれぞれの行には、順次行番号が付きます。 SQL*Plusは、親操作の行番号も表示します。

「Execution Plan」は、次の順序で表示される 4つの列で構成されます。

列の書式は、COLUMNコマンドで変更できます。 たとえば、PARENT_ID_PLUS_EXP列を表示しないようにするには、次のように入力します。

SQL> COLUMN PARENT_ID_PLUS_EXP NOPRINT

デフォルトの書式は、サイト・プロファイル(たとえば、glogin.sql)で定義されています。

SET AUTOTRACE ON EXPLAIN AUTOTRACEレポートには、オプティマイザの実行パスのみ示されます。

SET AUTOTRACE ON STATISTICS

AUTOTRACEレポートには、SQL文の実行統計のみ示されます。

SET AUTOTRACE ON AUTOTRACEレポートには、オプティマイザの実行パスとSQL文の実行統計の両方が含まれます。

SET AUTOTRACE TRACEONLY SET AUTOTRACE ONに似ていますが、ユーザーの問合せの出力は(あったとしても)行われません。

列名列名列名列名 説明説明説明説明

ID_PLUS_EXP それぞれの実行ステップの行番号を表示します。

PARENT_ID_PLUS_EXP それぞれのステップとその親の関係を示します。 この列は、大きなレポートに便利です。

PLAN_PLUS_EXP レポートのそれぞれのステップを示します。

OBJECT_NODE_PLUS_EXP 使用されたデータベース・リンク、またはパラレル問合せサーバーを示します。

Page 79: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

文のトレース

コマンド操作 3-37

「Execution Plan」の出力は、EXPLAIN PLANコマンドを使用して生成されます。 EXPLAIN PLANの出力の解釈の詳細は、『Oracle8iチューニング』を参照してください。

統計統計統計統計統計は、文を実行したときにサーバーによって記録され、文の実行に必要とされたシステム・リソースを示します。

統計の中で参照されるクライアントは、SQL*Plusです。 SQL*Netは、Net8がインストールされているかどうかに関係なく、SQL*Plusとサーバー間の汎用プロセス通信を参照します。

統計レポートのデフォルト書式は変更できません。

統計およびその解釈方法の詳細は、 『Oracle8iチューニング』を参照してください。

例例例例 3-21 パフォーマンス統計および問合せ実行パス用の文のトレースパフォーマンス統計および問合せ実行パス用の文のトレースパフォーマンス統計および問合せ実行パス用の文のトレースパフォーマンス統計および問合せ実行パス用の文のトレース

SQLバッファに次の文が含まれているとします。

SQL> SELECT D.DNAME, E.ENAME, E.SAL, E.JOB 2 FROM EMP E, DEPT D 3 WHERE E.DEPTNO = D.DEPTNO

この文を実行すると、次のように文のトレースが自動的に行われます。

SQL> SET AUTOTRACE ONSQL> /

Page 80: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

文のトレース

3-38 SQL*Plusユーザーズ・ガイドおよびリファレンス

DNAME ENAME SAL JOB-------------- ---------- ---------- ---------ACCOUNTING CLARK 2450 MANAGERACCOUNTING KING 5000 PRESIDENTACCOUNTING MILLER 1300 CLERKRESEARCH SMITH 800 CLERKRESEARCH ADAMS 1100 CLERKRESEARCH FORD 3000 ANALYSTRESEARCH SCOTT 3000 ANALYSTRESEARCH JONES 2975 MANAGERSALES ALLEN 1600 SALESMANSALES BLAKE 2850 MANAGERSALES MARTIN 1250 SALESMANSALES JAMES 950 CLERKSALES TURNER 1500 SALESMANSALES WARD 1250 SALESMAN

14 rows selected.

Execution Plan-----------------------------------------------------------0 SELECT STATEMENT Optimizer=CHOOSE1 0 MERGE JOIN2 1 SORT (JOIN)3 2 TABLE ACCESS (FULL) OF 'DEPT'4 1 SORT (JOIN)5 4 TABLE ACCESS (FULL) OF 'EMP'

Statistics----------------------------------------------------------148 recursive calls4 db block gets24 consistent gets6 physical reads43 redo size591 bytes sent via SQL*Net to client256 bytes received via SQL*Net from client3 SQL*Net roundtrips to/from client2 sort (memory)0 sort (disk)14 rows processed

Page 81: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

文のトレース

コマンド操作 3-39

例例例例 3-22 問合せデータを表示せずに文をトレースする方法問合せデータを表示せずに文をトレースする方法問合せデータを表示せずに文をトレースする方法問合せデータを表示せずに文をトレースする方法

問合せデータを表示せずに同じ文をトレースするには、次のようにします。

SQL> SET AUTOTRACE TRACEONLYSQL> /

Execution Plan-----------------------------------------------------------0 SELECT STATEMENT Optimizer=CHOOSE1 0 MERGE JOIN2 1 SORT (JOIN)3 2 TABLE ACCESS (FULL) OF 'DEPT'4 1 SORT (JOIN)5 4 TABLE ACCESS (FULL) OF 'EMP'

Statistics-----------------------------------------------------------0 recursive calls4 db block gets2 consistent gets0 physical reads0 redo size599 bytes sent via SQL*Net to client256 bytes received via SQL*Net from client3 SQL*Net roundtrips to/from client2 sort (memory)0 sort (disk)14 rows processedこのオプションは、大きい問合せをチューニングしていて、問合せレポートを表示したくない場合に便利です。

注意注意注意注意 : 出力は、接続先のサーバーのバージョン、またはサーバーの構成によって異なる場合があります。

Page 82: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

文のトレース

3-40 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例 3-23 データベース・リンクを使用した文のトレースデータベース・リンクを使用した文のトレースデータベース・リンクを使用した文のトレースデータベース・リンクを使用した文のトレース

データベース・リンクを使用して文をトレースするには、次のようにします。

SQL> SET AUTOTRACE TRACEONLY EXPLAINSQL> SELECT * FROM EMP@MY_LINK;

Execution Plan-----------------------------------------------------------0 SELECT STATEMENT (REMOTE) Optimizer=CHOOSE1 0 TABLE ACCESS (FULL) OF 'EMP' MY_LINK.DB_DOMAIN

この「Execution Plan」は、行 1でアクセスされている表がデータベース・リンクMY_LINK.DB_DOMAINを経由していることを示しています。

パラレル問合せおよび分散問合せのトレースパラレル問合せおよび分散問合せのトレースパラレル問合せおよび分散問合せのトレースパラレル問合せおよび分散問合せのトレースパラレル問合せまたは分散問合せでの中で文をトレースする場合、「Execution Plan」には、コストに基づいたオプティマイザの行数見積り(カーディナリティ)が表示されます。 一般に、各ノードでのコスト、カーディナリティ、およびバイト数は、累積結果を表しています。 たとえば、結合ノードのコストは結合操作を実行するためのコストのみを考慮したものではなく、その結合でリレーションにアクセスするコスト全体を含んでいます。

アスタリスク(*)が付いた行は、パラレル操作またはリモート操作を表しています。 それぞれの操作は、レポートの 2番目の部分で説明されています。 パラレル操作および分散操作の詳細は、『Oracle8iチューニング』を参照してください。

このレポートの 2番目のセクションは、次の順序で表示される 3つの列で構成されます。

列の書式は、COLUMNコマンドで変更できます。 デフォルトの書式は、サイト・プロファイル(たとえば、glogin.sql)で定義されています。

列名列名列名列名 説明説明説明説明

ID_PLUS_EXP それぞれの実行ステップの行番号を表示します。

OTHER_TAG_PLUS_EXP OTHER_PLUS_EXP列内の SQL文の機能を説明します。

OTHER_PLUS_EXP パラレル・サーバーまたはリモート・データベースについての問合せのテキストを示します。

注意注意注意注意 : このレポートの 2番目のセクションを表示するには、Oracle7のリリース 7.3以上を使用する必要があります。

Page 83: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

文のトレース

コマンド操作 3-41

例例例例 3-24 パラレル問合せオプションによる文のトレースパラレル問合せオプションによる文のトレースパラレル問合せオプションによる文のトレースパラレル問合せオプションによる文のトレース

パラレル問合せオプションを実行してパラレル問合せをトレースするには、次のようにします。

SQL> CREATE TABLE D2_T1 (UNIQUE1 NUMBER) PARALLEL -> (DEGREE 6);

Table created.

SQL> CREATE TABLE D2_T2 (UNIQUE1 NUMBER) PARALLEL -> (degree 6);

Table created.

SQL> CREATE UNIQUE INDEX D2_I_UNIQUE1 ON D2_T1(UNIQUE1);

Index created.

SQL> SET LONG 500 LONGCHUNKSIZE 500SQL> set autotrace on EXPLAINSQL> select /*+ index(b,d2_i_unique1) use_nl(b) ordered -> */ count (a.unique1) 2 from d2_t2 a, d2_t1 b 3 where a.unique1 = b.unique1;

SQL*Plusは、次の出力を表示します。

Execution Plan-----------------------------------------------------------0 SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=263 Bytes=5786)1 0 SORT (AGGREGATE)2 1 NESTED LOOPS* (Cost=1 Card=263 Bytes=5785) :Q82003 2 TABLE ACCESS* (FULL) OF 'D2_T2' :Q82004 2 INDEX* (UNIQUE SCAN) OF 'D2_I_UNIQUE1' (UNIQUE) :Q82002 PARALLEL_TO_SERIAL SELECT /*+ ORDERED NO_EXPAND USE_NL(A2) INDEX(A2) PIV_SSF */ COUNT(A1.C0) FROM (SELECT/*+ ROWID(A3) */ A3."UNIQUE1" FROM "D2_T2" A3 WHERE ROWID BETWEEN :1 AND :2) A1, "D2_T1" A2 WHERE A1.C0=A2."UNIQUE1"3 PARALLEL_COMBINED_WITH_PARENT4 PARALLEL_COMBINED_WITH_PARENT

Page 84: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

文のトレース

3-42 SQL*Plusユーザーズ・ガイドおよびリファレンス

「Execution Plan」の行 0は、コストに基づいたオプティマイザの見積りでは、行数が 263で5786バイトであることを示しています。 この文の合計コストは、1です。

行 2、3および 4には、パラレル操作であることを示すアスタリスクが付いています。 たとえば、行 2の NESTED LOOPSステップは、PARALLEL_TO_SERIAL操作です。 PARALLEL_TO_SERIAL操作では、出力を順次に生成するために SQL文が実行されます。 また、行 2はパラレル問合せサーバーの識別子が Q8200であったことも示しています。

Page 85: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

問合せ結果の書式の設定 4-1

4問合せ結果の書式の設定問合せ結果の書式の設定問合せ結果の書式の設定問合せ結果の書式の設定

この章では、最終的なレポートを生成するために問合せ結果の書式を設定する方法について説明します。 この章では、次のトピックについて説明します。

■ 列の書式設定

■ 間隔の設定およびサマリー行によるレポートの明確化

■ ページおよびレポートのタイトルとサイズの定義

■ 問合せ結果の格納および印刷

この章を読むときは、コンピュータの前に座り、示されている例を実際に試してみてください。 始める前に、第 1章で説明したサンプル表へのアクセス権があることを確認してください。

Page 86: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

列の書式設定

4-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

列の書式設定列の書式設定列の書式設定列の書式設定SQL*Plusの COLUMNコマンドを使用して、列ヘッダーを変更し、問合せ結果の列データの書式を再設定できます。

列ヘッダーの変更列ヘッダーの変更列ヘッダーの変更列ヘッダーの変更列ヘッダーを表示する場合は、デフォルトのヘッダーを使用するか、またはデフォルトのヘッダーを COLUMNコマンドで変更できます。 次の各項では、デフォルトのヘッダーの導出方法、および COLUMNコマンドでデフォルトのヘッダーを変更する方法について説明します。

デフォルトのヘッダーデフォルトのヘッダーデフォルトのヘッダーデフォルトのヘッダーSQL*Plusは、問合せ結果を表示する場合、列または式の名前をデフォルトの列ヘッダーとして使用します。 しかし、列名は多くの場合、短くて暗号のようであり、式名は理解するのが困難です。

デフォルトのヘッダーの変更デフォルトのヘッダーの変更デフォルトのヘッダーの変更デフォルトのヘッダーの変更次に示す書式で COLUMNコマンドのHEADING句を使用すると、もっと便利な列ヘッダーを定義できます。

COLUMN column_name HEADING column_heading

詳細は、第 8章の「COLUMN」コマンドを参照してください。

例例例例 4-1 列ヘッダーの変更列ヘッダーの変更列ヘッダーの変更列ヘッダーの変更

DEPTNO、ENAMEおよび SALに新しいヘッダーを指定して EMPからレポートを生成するには、次のコマンドを入力します。

SQL> COLUMN DEPTNO HEADING DepartmentSQL> COLUMN ENAME HEADING EmployeeSQL> COLUMN SAL HEADING SalarySQL> COLUMN COMM HEADING CommissionSQL> SELECT DEPTNO, ENAME, SAL, COMM 2 FROM EMP 3 WHERE JOB = 'SALESMAN';

Page 87: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

列の書式設定

問合せ結果の書式の設定 4-3

SQL*Plusは、次の出力を表示します。

Department Employee Salary Commission---------- ---------- ---------- ---------- 30 ALLEN 1600 300 30 WARD 1250 500 30 MARTIN 1250 1400 30 TURNER 1500 0

列ヘッダーを複数の単語に変更するには、COLUMNコマンドを入力するときに、新しいヘッダーを一重引用符または二重引用符で囲みます。 列ヘッダーを複数の行に表示するには、新しい行を開始する位置に垂直バー(|)を使用します。 (SETコマンドの HEADSEP変数の設定を変更すると、垂直バー以外の文字を使用できます。 詳細は、第 8章の「SET」コマンドを参照してください。)

例例例例 4-2 列ヘッダーの分割列ヘッダーの分割列ヘッダーの分割列ヘッダーの分割

列 ENAMEに EMPLOYEE NAMEというヘッダーを付け、新しいヘッダーを 2行に分割するには、次のように入力します。

SQL> COLUMN ENAME HEADING ’Employee|Name’

この時点で、次のようにスラッシュ(/)コマンドで問合せを再実行します。

SQL> /

SQL*Plusは、次の出力を表示します。

EmployeeDepartment Name Salary Commission---------- ---------- ---------- ---------- 30 ALLEN 1600 300 30 WARD 1250 500 30 MARTIN 1250 1400 30 TURNER 1500 0

それぞれの列のヘッダーに下線を付けるために、使用する文字を変更するには、使用する文字を SETコマンドの UNDERLINE変数に設定します。

注意注意注意注意 : 新しいヘッダーは、別のヘッダーを入力するか、列の書式をリセットするか、または SQL*Plusを終了するまで有効です。

Page 88: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

列の書式設定

4-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例 4-3 下線文字の設定下線文字の設定下線文字の設定下線文字の設定

ヘッダーに下線を付けるために、使用する文字を等号に変更し、問合せを再実行するには、次のコマンドを入力します。

SQL> SET UNDERLINE =SQL> /

問合せ結果は、次のように出力されます。

EmployeeDepartment Name Salary Commission========== ========== ========== ========== 30 ALLEN 1600 300 30 WARD 1250 500 30 MARTIN 1250 1400 30 TURNER 1500 0

この時点で、次のように下線文字をダッシュに戻してください。

SQL> SET UNDERLINE ’-’

NUMBER列の書式設定列の書式設定列の書式設定列の書式設定NUMBER列を表示する場合は、SQL*Plusのデフォルトの表示幅を使用するか、またはCOLUMNコマンドを使用してデフォルトの表示幅を変更できます。 次の各項では、デフォルトの表示、および COLUMNコマンドでデフォルトを変更する方法について説明します。

デフォルトの表示デフォルトの表示デフォルトの表示デフォルトの表示NUMBER列の幅は、ヘッダーの幅か、FORMATの幅に符号用の 1つの空白を加えた幅のどちらか大きい方に等しくなります。 明示的に FORMATを使用しなかった場合、列の幅は必ず最低でも SET NUMWIDTHの値になります。

通常 SQL*Plusでは、正確を期すため、数値は SETコマンドの NUMWIDTH変数の値で決まる標準表示幅(通常は 10)を最大幅として、必要なだけの桁数で表示されます。 SET NUMWIDTHの値より大きい数値は、許容される最大文字数まで切り上げられるか、または切り捨てられます。

注意注意注意注意 : ダッシュは、引用符で囲んでください。そうしないと、ダッシュは、次の行へコマンドを継続することを示すハイフンとして解釈されます。

Page 89: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

列の書式設定

問合せ結果の書式の設定 4-5

COLUMNコマンドで書式モデルを使用することによって、NUMBER列に別の書式を選択できます。 書式モデルとは、列の中に数値を表示する方法を表したもので、複数の 9を使用して数字の桁を表します。

デフォルト表示の変更デフォルト表示の変更デフォルト表示の変更デフォルト表示の変更COLUMNコマンドを使用すると、次に示すように、書式を設定する列を識別し、使用するモデルを示すことができます。

COLUMN column_name FORMAT model

列の中の数値にカンマ、ドル記号、山カッコ(負の値を囲む)、または先行ゼロを追加するには、書式モデルを使用します。 値を一定の小数桁数まで丸めたり、負の値の右側(左側でなく)にマイナス記号を表示したり、指数表記で値を表示したりすることもできます。

単一の列に複数の書式モデルを使用するには、使用するモデルを結合して 1つの COLUMNコマンドにします(例 4-4を参照)。 書式モデルのすべてのリストおよび詳細は、第 8章の「COLUMN」コマンドを参照してください。

例例例例 4-4 NUMBER列の書式設定列の書式設定列の書式設定列の書式設定

SALの表示にドル記号やカンマを使用し、ゼロ値に空白ではなく数字のゼロを表示するには、次のコマンドを入力します。

SQL> COLUMN SAL FORMAT $99,990

この時点で、現行の問合せを再実行してください。

SQL> /

SQL*Plusは、次の出力を表示します。

EmployeeDepartment Name Salary Commission---------- ---------- --------- ---------- 30 ALLEN $1,600 300 30 WARD $1,250 500 30 MARTIN $1,250 1400 30 TURNER $1,500 0

Page 90: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

列の書式設定

4-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

ドル記号などの他の書式を使用しているときに、ゼロ値に空白ではなくゼロを表示する場合は、上記のように書式モデル内でゼロを使用してください。

データ型の書式設定データ型の書式設定データ型の書式設定データ型の書式設定データ型を表示する場合は、SQL*Plusのデフォルトの表示幅を使用するか、またはCOLUMNコマンドを使用してデフォルトの表示幅を変更できます。 このマニュアルでは、データ型に次の変数が含まれます。

■ CHAR

■ NCHAR

■ VARCHAR2(VARCHAR)

■ NVARCHAR2(NCHAR VARYING)

■ DATE

■ LONG

■ CLOB

■ NCLOB

デフォルトの表示デフォルトの表示デフォルトの表示デフォルトの表示データ型列のデフォルトの幅は、データベース内の列の幅です。

SQL*Plusでは書式が設定されていない DATE列のデフォルトの幅および書式は、効力を持っている NLSパラメータから得られます。 それ以外の場合、デフォルトの書式の幅は A9です。 DATE列の書式の詳細は、第 8章の「COLUMN」コマンドの FORMAT句を参照してください。

注意注意注意注意 : 書式モデルは、新しい書式モデルを入力するか、列の書式をリセットするか、または SQL*Plusを終了するまで有効です。

注意注意注意注意 : NCHAR、NVARCHAR2(NCHAR VARYING)、CLOBおよびNCLOBの各データ型を使用するには、Oracle8以上が必要です。

注意注意注意注意 : データ型のデフォルトの文字位置は、左揃えです。

Page 91: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

列の書式設定

問合せ結果の書式の設定 4-7

デフォルト表示の変更デフォルト表示の変更デフォルト表示の変更デフォルト表示の変更データ型または DATEの表示幅は、COLUMNコマンドと、文字 A(英数字の意)の後に列幅を表した数値を続けた書式モデルを使用することによって変更できます。

COLUMNコマンドの中で、書式を設定する列、および使用するモデルを次のように指定してください。

COLUMN column_name FORMAT model

列ヘッダーより短い幅を指定した場合は、ヘッダーが切り捨てられます。 LONG、CLOBまたは NCLOBのいずれかの列に幅を指定した場合は、LONGCHUNKSIZE、または指定した幅のどちらか小さい方が列幅として使用されます。 詳細は、第 8章の「COLUMN」コマンドを参照してください。

例例例例 4-5 文字列の書式設定文字列の書式設定文字列の書式設定文字列の書式設定

列 ENAMEの幅を 4文字に設定し、現行の問合せを再実行するには、次のように入力します。

SQL> COLUMN ENAME FORMAT A4SQL> /

問合せ結果は、次のように出力されます。

EmplDepartment Name Salary Commission---------- ---- ---------- ---------- 30 ALLE $1,600 300 N

30 WARD $1,250 500 30 MART $1,250 1400 IN

30 TURN $1,500 0 ER

注意注意注意注意 : 書式モデルは、新しい書式モデルを入力するか、列の書式をリセットするか、または SQL*Plusを終了するまで有効です。 ENAMEは、CHAR、NCHAR、VARCHAR2(VARCHAR)、またはNVARCHAR2(NCHAR VARYING)のいずれかの列にすることができます。

Page 92: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

列の書式設定

4-8 SQL*Plusユーザーズ・ガイドおよびリファレンス

SETコマンドのWRAP変数を ON(デフォルト値)に設定した場合、従業員名は例 4-5に示すように、4文字目の後で次の行へ折り返されます。 WRAPを OFFに設定した場合、名前は4文字目の後で切り捨てられます。

システム変数WRAPは、すべての列を制御します。ある列についてのWRAPの設定は、COLUMNコマンドのWRAPPED、WORD_WRAPPED、および TRUNCATED句を指定することによって上書きできます。 これらの句の詳細は、第 8章の「COLUMN」コマンドを参照してください。 この章の後半で COLUMNコマンドのWORD_WRAPPEDを使用します。

この時点で、次のように列を元の書式に戻してください。

SQL> COLUMN ENAME FORMAT A10

列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー複数の列に同じ表示属性を与える場合は、COLUMNコマンドの LIKE句を使用すると、入力しなければならないコマンドの長さを減らすことができます。 LIKE句は、前に定義した列の表示属性を新しい列にコピーするよう SQL*Plusに指示します。ただし、同じコマンドの別の句によって加えられた変更はコピーされません。

例例例例 4-6 列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー

列 COMMに、SALに指定した表示属性と同じ表示属性を指定し、別のヘッダーを指定するには、次のコマンドを入力します。

SQL> COLUMN COMM LIKE SAL HEADING Bonus

次のように問合せを再実行してください。

SQL> /

注意注意注意注意 : 列のヘッダーは、WRAPの設定、またはどの COLUMNコマンド句の設定にも関係なく切り捨てられます。

Page 93: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

列の書式設定

問合せ結果の書式の設定 4-9

SQL*Plusは、次の出力を表示します。

EmployeeDepartment Name Salary Bonus---------- ---------- ---------- ---------- 30 ALLEN $1,600 $300 30 WARD $1,250 $500 30 MARTIN $1,250 $1,400 30 TURNER $1,500 $0

列の表示属性のリスト表示およびリセット列の表示属性のリスト表示およびリセット列の表示属性のリスト表示およびリセット列の表示属性のリスト表示およびリセットある列の現行の表示属性をリスト表示するには、次に示すように COLUMNコマンドと、その後に列名のみ指定します。

COLUMN column_name

すべての列の現行の表示属性をリスト表示するには、次のように、後ろに列名または句を指定せずに COLUMNコマンドを入力します。

COLUMN

列の表示属性をデフォルト値にリセットするには、次に示すように COLUMNコマンドのCLEAR句を使用します。

COLUMN column_name CLEAR

すべての列の属性をリセットするには、CLEARコマンドの COLUMNS句を使用します。

例例例例 4-7 列の表示属性をデフォルトにリセットする方法列の表示属性をデフォルトにリセットする方法列の表示属性をデフォルトにリセットする方法列の表示属性をデフォルトにリセットする方法

すべての列の表示属性をデフォルトにリセットするには、次のコマンドを入力します。

SQL> CLEAR COLUMNScolumns cleared

前に入力した COLUMNコマンドが、あるファイル内で実行する問合せに影響を及ぼさないようにするため、すべてのコマンド・ファイルの先頭に CLEAR COLUMNSコマンドを置くことができます。

Page 94: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

列の書式設定

4-10 SQL*Plusユーザーズ・ガイドおよびリファレンス

列の表示属性の抑止および復元列の表示属性の抑止および復元列の表示属性の抑止および復元列の表示属性の抑止および復元特定の列に指定した表示属性を抑止したり復元したりできます。 列の表示属性を抑止するには、次の形式で COLUMNコマンドを入力します。

COLUMN column_name OFF

OFF句は、列にデフォルトの表示属性を使用するよう SQL*Plusに指示しますが、COLUMNコマンドで定義された属性は削除しません。 COLUMNコマンドで定義した属性を復元するには、次のように ON句を使用します。

COLUMN column_name ON

折り返した列の値の後で文字の行を出力する方法折り返した列の値の後で文字の行を出力する方法折り返した列の値の後で文字の行を出力する方法折り返した列の値の後で文字の行を出力する方法前に述べたように、SQL*Plusのデフォルトでは、列の値が列幅に収まらない場合、その値は追加行に折り返されます。 折り返された出力行の後(または各行の後)にレコード・セパレータ(文字または空白からなる 1行)を挿入する場合、SETコマンドの RECSEPおよびRECSEPCHAR変数を使用します。

RECSEPは、文字の行を出力するタイミングを決定します。RECSEPを EACHに設定すると、各行の後に文字の行が出力され、WRAPPEDに設定すると、折返し行の後に出力され、OFFに設定すると出力されません。 RECSEPのデフォルトの設定は、WRAPPEDです。

RECSEPCHARは、各行に出力される文字を設定します。 RECSEPCHARには、任意の文字を設定できます。

列の値が追加行に折り返される場合は、すべての単語を追加行に折り返すこともできます。 そのためには、次に示すように、COLUMNコマンドのWORD_WRAPPED句を使用します。

COLUMN column_name WORD_WRAPPED

例例例例 4-8 折り返した列の値の後で文字の行を出力する方法折り返した列の値の後で文字の行を出力する方法折り返した列の値の後で文字の行を出力する方法折り返した列の値の後で文字の行を出力する方法

列の値を折り返した後にダッシュの行を出力するには、次のコマンドを入力します。

SQL> SET RECSEP WRAPPEDSQL> SET RECSEPCHAR ’-’

Page 95: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

問合せ結果の書式の設定 4-11

この時点で、次のように列 LOCの幅を制限し、必要な場合はすべての単語を追加行に折り返すよう SQL*Plusに指示してください。

SQL> COLUMN LOC FORMAT A7 WORD_WRAPPED

最後に、次の問合せを入力して実行してください。

SQL> SELECT * FROM DEPT;

問合せ結果は、次のように出力されます。

DEPTNO DNAME LOC---------- --------------- ---------- 10 ACCOUNTING NEW YORK------------------------------------------------- 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON

RECSEPを EACHに設定した場合、SQL*Plusは各行の後に(前述の例では各部門の後にも)文字の行を出力します。

先へ進む前に、次のように RECSEPを OFFに設定して、レコード・セパレータの出力を抑止してください。

SQL> SET RECSEP OFF

間隔の設定およびサマリー行によるレポートの明確化間隔の設定およびサマリー行によるレポートの明確化間隔の設定およびサマリー行によるレポートの明確化間隔の設定およびサマリー行によるレポートの明確化SQLの SELECTコマンドで ORDER BY句を使用する場合、順序を指定された列(または式)に同じ値がある行は、出力の中で一緒に表示されます。 SQL*Plusの BREAKおよびCOMPUTEコマンドを使用して、レコードのサブセットを作成し、各サブセットの後に空白またはサマリー行(あるいはその両方)を追加することによって、出力をユーザーにとってより実用的なものにできます。

BREAKコマンドの中で指定する列は、ブレーク列と呼ばれます。 ORDER BY句にブレーク列を挿入することによって、出力に意味のあるレコードのサブセットを作成できます。 その後、同じ BREAKコマンドの中でサブセットに書式設定を追加でき、COMPUTEコマンドの中でブレーク列を指定することによって(合計、平均などを含んだ)サマリー行を追加できます。

Page 96: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

4-12 SQL*Plusユーザーズ・ガイドおよびリファレンス

たとえば、BREAKコマンドや COMPUTEコマンドを使用せずに、次の問合せを実行したとします。

SQL> SELECT DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE SAL < 2500 4 ORDER BY DEPTNO;

この問合せによって、書式が設定されていない次のような結果が生成されます。

DEPTNO ENAME SAL-------- ---------- --------- 10 CLARK 2450 10 MILLER 1300 20 SMITH 800 20 ADAMS 1100 30 ALLEN 1600 30 JAMES 950 30 TURNER 1500 30 WARD 1250 30 MARTIN 1250

このレポートをもっと使用しやすくするには、BREAKを使用して DEPTNOをブレーク列として設定します。 BREAKを使用すると、DEPTNO値の重複を抑止し、部門が変わるときに空白行を入力したり改ページしたりできます。 BREAKを COMPUTEと組み合せて使用し、各部門および全部門について給与の合計(または、平均、最大、最小、標準偏差、平方偏差、行数)を含んだサマリー行を計算して出力することもできます。

ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止BREAKコマンドは、デフォルトでは指定された列または式の値の重複を抑止します。 したがって、ORDER BY句で指定した列の値の重複を抑止するには、次のように BREAKコマンドを最も単純な形式で使用します。

BREAK ON break_column

注意注意注意注意 : BREAKコマンドに列または式を指定する場合は必ず、その列または式を指定した ORDER BY句を使用してください。 ORDER BY句を使用しなかった場合は、ブレークがランダムに発生する場合があります。

Page 97: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

問合せ結果の書式の設定 4-13

例例例例 4-9 ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止

上記の問合せ結果で重複した部門番号を表示しないようにするには、次のコマンドを入力します。

SQL> BREAK ON DEPTNOSQL> SELECT DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE SAL < 2500 4 ORDER BY DEPTNO;

SQL*Plusは、次の出力を表示します。

DEPTNO ENAME SAL---------- ----------- --------- 10 CLARK 2450 MILLER 1300 20 SMITH 800 ADAMS 1100 30 ALLEN 1600 JAMES 950 TURNER 1500 WARD 1250 MARTIN 1250

ブレーク列の値が変更されたときの空白の挿入ブレーク列の値が変更されたときの空白の挿入ブレーク列の値が変更されたときの空白の挿入ブレーク列の値が変更されたときの空白の挿入ブレーク列の中で値が変わるたびに、空白行を挿入するか、あまたは改ページを行うことができます。 n行の空白行を挿入するには、次の形式で BREAKコマンドを使用します。

BREAK ON break_column SKIP n

ページをスキップするには、次の形式で BREAKコマンドを入力します。

BREAK ON break_column SKIP PAGE

例例例例 4-10 ブレーク列の値が変更されたときの空白の挿入ブレーク列の値が変更されたときの空白の挿入ブレーク列の値が変更されたときの空白の挿入ブレーク列の値が変更されたときの空白の挿入

部門と部門の間に 1行の空白行を挿入するには、次のコマンドを入力します。

SQL> BREAK ON DEPTNO SKIP 1

この時点で、次のように問合せを再実行してください。

SQL> /

Page 98: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

4-14 SQL*Plusユーザーズ・ガイドおよびリファレンス

問合せ結果は、次のように出力されます。

DEPTNO ENAME SAL---------- ----------- --------- 10 CLARK 2450 MILLER 1300

20 SMITH 800 ADAMS 1100

30 ALLEN 1600 JAMES 950 TURNER 1500 WARD 1250 MARTIN 1250

各行の後に空白を挿入する方法各行の後に空白を挿入する方法各行の後に空白を挿入する方法各行の後に空白を挿入する方法各行の後に空白行または空白ページを挿入することもできます。 各行の後で n行ずつスキップするには、次の形式で BREAKコマンドを使用します。

BREAK ON ROW SKIP n

各行の後で 1ページずつスキップするには、次の形式で BREAKコマンドを使用します。

BREAK ON ROW SKIP PAGE

複数の間隔設定技法の使用方法複数の間隔設定技法の使用方法複数の間隔設定技法の使用方法複数の間隔設定技法の使用方法たとえば、ORDER BY句に複数の列があり、それぞれの列の値が変更されたときに空白を挿入するとします。 BREAKコマンドは、入力するたびに前の BREAKコマンドに取ってかわります。 したがって、1つのレポート内でさまざまな間隔設定技法を使用する場合、または順序付きの複数の列で値が変更されたとに空白を挿入する場合は、単一の BREAKコマンドに複数の列およびアクションを設定する必要があります。

注意注意注意注意 : SKIP PAGEを指定しても、NEWPAGE 0を指定しなければ、物理的なページ・ブレークは行われません。

Page 99: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

問合せ結果の書式の設定 4-15

例例例例 4-11 間隔設定技法の統合間隔設定技法の統合間隔設定技法の統合間隔設定技法の統合

最初に、次のように現行の問合せに列を 1つ追加します。

SQL> L 1 SELECT DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE SAL < 2500 4* ORDER BY DEPTNOSQL> 1 SELECT DEPTNO, JOB, ENAME, SALSQL> 4 ORDER BY DEPTNO, JOB

この時点で、DEPTNOの値が変更されたときに 1ページをスキップし、JOBの値が変更されたときに 1行スキップするには、次のコマンドを入力します。

SQL> BREAK ON DEPTNO SKIP PAGE ON JOB SKIP 1

SKIP PAGEが有効になったことを示すため、ページ番号付きの TTITLEを作成するには、次のように入力します。

SQL> TTITLE COL 35 FORMAT 9 ’Page:’ SQL.PNO

次のように新規問合せを実行し、結果を表示します。

SQL> / Page: 1 DEPTNO JOB ENAME SAL---------- --------- ---------- ---------- 10 CLERK MILLER 300

MANAGER CLARK 2450

Page: 2 DEPTNO JOB ENAME SAL---------- --------- ---------- ---------- 20 CLERK SMITH 800 ADAMS 1100

Page: 3 DEPTNO JOB ENAME SAL---------- --------- ---------- ---------- 30 CLERK JAMES 950

SALESMAN ALLEN 1600 TURNER 1500 WARD 1250 MARTIN 1250

Page 100: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

4-16 SQL*Plusユーザーズ・ガイドおよびリファレンス

ブレーク定義のリスト表示および取消しブレーク定義のリスト表示および取消しブレーク定義のリスト表示および取消しブレーク定義のリスト表示および取消し句を指定せずに BREAKコマンドを入力すると、現行のブレーク定義をリスト表示できます。

BREAK

CLEARコマンドに BREAKS句を指定して入力すると、現行のブレーク定義を取り消せます。

CLEAR BREAKS

前に入力した BREAKコマンドが、あるファイル内で実行する問合せに影響を及ぼさないようにするため、すべてのコマンド・ファイルの先頭に CLEAR BREAKSコマンドを置くことができます。

ブレーク列の値が変更されたときにサマリー行を計算する方法ブレーク列の値が変更されたときにサマリー行を計算する方法ブレーク列の値が変更されたときにサマリー行を計算する方法ブレーク列の値が変更されたときにサマリー行を計算する方法BREAKコマンドでレポートの行をサブセットに編成した場合、各サブセット内の行についてさまざまな計算を実行できます。 そのためには、SQL*Plusの COMPUTEコマンドの関数を使用します。 BREAKコマンドおよび COMPUTEコマンドを次の形式で一緒に使用してください。

BREAK ON break_columnCOMPUTE function LABEL label_name OF column column column... ON break_column

BREAKコマンドには、複数のブレーク列と、行のスキップなどのアクションを挿入できます。ただし、COMPUTEコマンドで ONの後に指定した列は、BREAKコマンドの ONの後にも指定する必要があります。 BREAKコマンドと COMPUTEコマンドを一緒に使用する場合、BREAKコマンドに複数のブレーク列およびアクションを挿入するには、これらのコマンドを次の形式で使用します。

BREAK ON break_column_1 SKIP PAGE ON break_column_2 SKIP 1COMPUTE function LABEL label_name OF column column column... ON break_column_2

COMPUTEコマンドは、対応する BREAKコマンドがない場合は効果がありません。

COMPUTEは、NUMBER列と、ある特定の場合にはすべてのタイプの列に対して実行できます。 詳細は、第 8章の「COMPUTE」コマンドを参照してください。

Page 101: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

問合せ結果の書式の設定 4-17

次の表に、計算関数およびその効果を示します。

COMPUTEコマンドの中で指定した関数は、OFFの後および ONの前に入力したすべての行に適用されます。 計算後の値は、順序付きの列の値が変更されたときに、別々の行に出力されます。

ON REPORT計算および ON ROW計算のラベルは、1行目に表示されます。それ以外の場合、ラベルは ON句で指定した列に表示されます。

COMPUTE LABELを使用すると、計算ラベルを変更できます。 計算後の値のラベルを定義しなかった場合は、省略されていない関数キーワードが出力されます。

計算ラベルは、ブレーク列についての COLUMNコマンドでNOPRINTオプションを使用すると抑止できます。 詳細は、第 8章の「COMPUTE」コマンドを参照してください。

例例例例 4-12 小計の計算および出力小計の計算および出力小計の計算および出力小計の計算および出力

SALの合計を部門別に計算するには、最初に、次のように現行の BREAK定義をリスト表示します。

SQL> BREAKbreak on DEPTNO skip 0 page nodup on JOB skip 1 nodup

表表表表 4-1 計算関数計算関数計算関数計算関数

関数関数関数関数 効果効果効果効果

SUM 列内の値の合計を計算する。

MINIMUM 列内の最小値を計算する。

MAXIMUM 列内の最大値を計算する。

AVG 列内の値の平均を計算する。

STD 列内の値の標準偏差を計算する。

VARIANCE 列内の値の平方偏差を計算する。

COUNT 列内の値の NULL以外の値の数を計算する。

NUMBER 列内の行数を計算する。

Page 102: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

4-18 SQL*Plusユーザーズ・ガイドおよびリファレンス

この時点で、次の COMPUTEコマンドを入力し、現行の問合せを実行します。

SQL> COMPUTE SUM OF SAL ON DEPTNOSQL> /

SQL*Plusは、次の出力を表示します。

DEPTNO JOB ENAME SAL---------- --------- ---------- ---------- 10 CLERK MILLER 1300

MANAGER CLARK 2450********** ********* ----------sum 3750

DEPTNO JOB ENAME SAL---------- --------- ---------- ---------- 20 CLERK SMITH 800 ADAMS 1100********** ********* ----------sum 1900

DEPTNO JOB ENAME SAL---------- --------- ---------- ---------- 30 CLERK JAMES 950

SALESMAN ALLEN 1600 TURNER 1500 WARD 1250 MARTIN 1250********** ********* ----------sum 6550

部門 10および 20の給与の合計を計算し、計算ラベルを出力しないようにするには、次のようにします。

SQL> COLUMN DUMMY NOPRINTSQL> COMPUTE SUM OF SAL ON DUMMYSQL> BREAK ON DUMMY SKIP 1SQL> SELECT DEPTNO DUMMY, DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE DEPTNO <= 20 4 ORDER BY DEPTNO;

Page 103: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

問合せ結果の書式の設定 4-19

SQL*Plusは、次の出力を表示します。

DEPTNO ENAME SAL---------- ---------- ---------- 10 KING 5000 10 CLARK 2450 10 MILLER 1300 ---------- 8750

20 JONES 2975 20 FORD 3000 20 SMITH 800 20 SCOTT 3000 20 ADAMS 1100 ---------- 10875

レポートの終わりで給与を計算するには、次のようにします。

SQL> COLUMN DUMMY NOPRINTSQL> COMPUTE SUM OF SAL ON DUMMYSQL> BREAK ON DUMMYSQL> SELECT NULL DUMMY, DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE DEPTNO <= 20 4 ORDER BY DEPTNO;

SQL*Plusは、次の出力を表示します。

DEPTNO ENAME SAL---------- ---------- ---------- 10 KING 5000 10 CLARK 2450 10 MILLER 1300 20 JONES 2975 20 FORD 3000 20 SMITH 800 20 SCOTT 3000 20 ADAMS 1100 ---------- 19625

Page 104: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

4-20 SQL*Plusユーザーズ・ガイドおよびリファレンス

レポートの終わりでのサマリー行の計算レポートの終わりでのサマリー行の計算レポートの終わりでのサマリー行の計算レポートの終わりでのサマリー行の計算BREAKコマンドおよび COMPUTEコマンドを次の形式で使用すると、列内のすべての値に基づいてサマリー行を計算し出力できます。

BREAK ON REPORTCOMPUTE function LABEL label_name OF column column column... ON REPORT

例例例例 4-13 総合計の計算および出力総合計の計算および出力総合計の計算および出力総合計の計算および出力

すべての販売担当者の給与の総合計を計算して出力し、計算ラベルを変更するには、最初に、次のように BREAKコマンドと COMPUTEコマンドを入力します。

SQL> BREAK ON REPORTSQL> COMPUTE SUM LABEL TOTAL OF SAL ON REPORT

次に、新規問合せを入力して実行します。

SQL> SELECT ENAME, SAL 2 FROM EMP 3 WHERE JOB = 'SALESMAN';

問合せ結果は、次のように出力されます。

ENAME SAL---------- --------ALLEN 1600WARD 1250MARTIN 1250TURNER 1500********** --------TOTAL 5600

注意注意注意注意 : SAL列の書式によって、個々の SAL値だけでなく、SALの合計の外観が制御されます。 NUMBER列の書式を設定する場合、レポートに挿入する合計欄のサイズも考慮しなければなりません。

Page 105: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

問合せ結果の書式の設定 4-21

総合計(または、総平均、総最大値など)を小計(または小平均など)とともに出力するには、BREAKコマンドにブレーク列および ON REPORT句を挿入します。 その後、次のようにブレーク列用に 1つの COMPUTEコマンドと、ON REPORTを計算するためにもう 1つの COMPUTEコマンドを入力します。

BREAK ON break_column ON REPORTCOMPUTE function LABEL label_name OF column ON break_columnCOMPUTE function LABEL label_name OF column ON REPORT

複数のサマリー値およびサマリー行の計算複数のサマリー値およびサマリー行の計算複数のサマリー値およびサマリー行の計算複数のサマリー値およびサマリー行の計算異なる列について同じタイプのサマリー値を計算して出力できます。 そのためには、列ごとに別々の COMPUTEコマンドを入力します。

例例例例 4-14 異なる列についての同じタイプのサマリー値の計算異なる列についての同じタイプのサマリー値の計算異なる列についての同じタイプのサマリー値の計算異なる列についての同じタイプのサマリー値の計算

すべての販売担当者の給与およびコミッションの合計を出力するには、最初に次のCOMPUTEコマンドを入力します。

SQL> COMPUTE SUM OF SAL COMM ON REPORT

BREAKコマンドを入力する必要はありません。例 4-13で入力した BREAKコマンドは、まだ有効です。 この時点で、次のように現行の問合せに COMMを追加します。

SQL> 1 SELECT ENAME, SAL, COMM

最後に、次のように改訂した問合せを実行し、結果を表示します。

SQL> /

ENAME SAL COMM---------- -------- ----------ALLEN 1600 300WARD 1250 500MARTIN 1250 1400TURNER 1500 0********** -------- ----------sum 5600 2200

同じブレーク列について、複数のサマリー行を出力することもできます。 そのためには、次のように COMPUTEコマンドに各サマリーについての関数を挿入します。

COMPUTE function LABEL label_name function LABEL label_name function LABEL label_name ... OF column ON break_column

Page 106: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

間隔の設定およびサマリー行によるレポートの明確化

4-22 SQL*Plusユーザーズ・ガイドおよびリファレンス

OFFの後、および ONの前に複数の列を挿入した場合、COMPUTEは指定されたそれぞれの列について値を計算して出力します。

例例例例 4-15 同じブレーク列についての複数のサマリー行の計算同じブレーク列についての複数のサマリー行の計算同じブレーク列についての複数のサマリー行の計算同じブレーク列についての複数のサマリー行の計算

販売部門の給与の平均および合計を計算するには、最初に次のような BREAKコマンドとCOMPUTEコマンドを入力します。

SQL> BREAK ON DEPTNOSQL> COMPUTE AVG SUM OF SAL ON DEPTNO

この時点で、次の問合せを入力して実行してください。

SQL> SELECT DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE DEPTNO = 30 4 ORDER BY DEPTNO, SAL;

問合せ結果は、次のように出力されます。

DEPTNO ENAME SAL---------- ---------- ---------- 30 JAMES 950 WARD 1250 MARTIN 1250 TURNER 1500 ALLEN 1600 BLAKE 2850********** ----------avg 1566.66667sum 9400

COMPUTE定義のリスト表示および取消し定義のリスト表示および取消し定義のリスト表示および取消し定義のリスト表示および取消し次のように句を指定せずに COMPUTEコマンドを入力すると、現行の COMPUTE定義をリスト表示できます。

COMPUTE

CLEARコマンドに COMPUTES句を指定して入力すると、すべての COMPUTE定義を取り消すことができます。

Page 107: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

問合せ結果の書式の設定 4-23

例例例例 4-16 COMPUTE定義の取消し定義の取消し定義の取消し定義の取消し

すべての COMPUTE定義、およびそれに伴った BREAK定義を取り消すには、次のコマンドを入力します。

SQL> CLEAR BREAKSbreaks clearedSQL> CLEAR COMPUTEScomputes cleared

前に入力した BREAKコマンドおよび COMPUTEコマンドが、あるファイル内で実行する問合せに影響を及ぼさないようにするため、すべてのコマンド・ファイルの先頭に CLEAR BREAKコマンドおよび CLEAR COMPUTESコマンドを置くことができます。

ページおよびレポートのタイトルとサイズの定義ページおよびレポートのタイトルとサイズの定義ページおよびレポートのタイトルとサイズの定義ページおよびレポートのタイトルとサイズの定義ページという語は、表示される 1画面全体の情報、またはスプールされる(印刷される)レポートの 1ページを指します。 各ページに上部タイトルおよび下部タイトルを配置したり、1ページあたりの行数を設定したり、各行の幅を設定したりできます。

レポートという語は、問合せの完全な結果を指します。 それぞれのレポートにヘッダーおよびフッターを配置し、それらの書式をページの上部タイトルおよび下部タイトルと同じ方法で設定できます。

上部タイトルと下部タイトルおよびヘッダーとフッターの設定上部タイトルと下部タイトルおよびヘッダーとフッターの設定上部タイトルと下部タイトルおよびヘッダーとフッターの設定上部タイトルと下部タイトルおよびヘッダーとフッターの設定前に述べたように、レポートの各ページの一番上に表示するタイトルを設定できます。 また、各ページの下に表示するタイトルも設定できます。 TTITLEコマンドは上部タイトルを定義し、BTITLEコマンドは下部タイトルを定義します。

それぞれのレポートにヘッダーおよびフッターを設定することもできます。 REPHEADERコマンドはレポート・ヘッダーを定義し、REPFOOTERコマンドはレポート・フッターを定義します。

TTITLE、BTITLE、REPHEADERまたは REPFOOTERコマンドは、まずコマンド名を指定し、その後に位置または書式を指定する 1つ以上の句を指定し、さらに、その位置に置くかまたはその書式を設定する CHAR値を指定することによって構成します。 次のように、複数の句および CHAR値のセットを挿入できます。

TTITLE position_clause(s) char_value position_clause(s) char_value ...BTITLE position_clause(s) char_value position_clause(s) char_value ...REPHEADER position_clause(s) char_value position_clause(s) char_value ...REPFOOTER position_clause(s) char_value position_clause(s) char_value ...

最も頻繁に使用される TTITLE、BTITLE、REPHEADERおよび REPFOOTERの句の要約を次の表に示します。 すべての TTITLE、BTITLE、REPHEADERおよび REPFOOTER句の詳細は、第 8章の「TTITLE」コマンドおよび「REPHEADER」コマンドを参照してください。

Page 108: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

4-24 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例 4-17 ページの上部タイトルおよび下部タイトルの配置ページの上部タイトルおよび下部タイトルの配置ページの上部タイトルおよび下部タイトルの配置ページの上部タイトルおよび下部タイトルの配置

レポートの各ページの一番上および一番下にタイトルを挿入するには、次のように入力します。

SQL> TTITLE CENTER -> ’ACME WIDGET SALES DEPARTMENT PERSONNEL REPORT’SQL> BTITLE CENTER ’COMPANY CONFIDENTIAL’

この時点で、次のように現行の問合せを実行します。

SQL> /

SQL*Plusは、次の出力を表示します。

ACME WIDGET SALES DEPARTMENT PERSONNEL REPORT DEPTNO ENAME SAL---------- ---------- ---------- 30 JAMES 950 30 WARD 1250 30 MARTIN 1250 30 TURNER 1500 30 ALLEN 1600 30 BLAKE 2850

COMPANY CONFIDENTIAL

表表表表 4-2 頻繁に使用される頻繁に使用される頻繁に使用される頻繁に使用される TTITLE、、、、BTITLE、、、、REPHEADERおよびおよびおよびおよび REPFOOTER句句句句

句句句句 例例例例 説明説明説明説明

COL n COL 72 これに続く CHAR値を、その行の指定された列に表示する。

SKIP n SKIP 2 n回、改行する。 nが 1より大きい場合、n-1の空白行が次の CHAR値の前に表示される。

LEFT LEFT 後続の CHAR値を左揃えにする。

CENTER CENTER 後続の CHAR値を中央揃えにする。

RIGHT RIGHT 後続の CHAR値を右揃えにする。

Page 109: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

問合せ結果の書式の設定 4-25

例例例例 4-18 レポートのヘッダーの配置レポートのヘッダーの配置レポートのヘッダーの配置レポートのヘッダーの配置

個々のページにレポート・ヘッダーを中央揃えで配置するには、次のように入力します。

SQL> REPHEADER PAGE CENTER ’ACME WIDGET’

この時点で、次のように現行の問合せを実行します。

SQL> /

問合せ結果は、1ページ目に次のように出力されます。

ACME WIDGET SALES DEPARTMENT PERSONNEL REPORT ACME WIDGET

COMPANY CONFIDENTIAL

また、2ページ目は次のように出力されます。

ACME WIDGET SALES DEPARTMENT PERSONNEL REPORT DEPTNO ENAME SAL---------- ---------- ---------- 30 JAMES 950 30 WARD 1250 30 MARTIN 1250 30 TURNER 1500 30 ALLEN 1600 30 BLAKE 2850

COMPANY CONFIDENTIAL

レポート・ヘッダーの定義を変更せずにその出力を抑止するには、次のように入力します。

SQL> REPHEADER OFF

Page 110: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

4-26 SQL*Plusユーザーズ・ガイドおよびリファレンス

タイトル要素の位置決定タイトル要素の位置決定タイトル要素の位置決定タイトル要素の位置決定前の例で示したレポートは、会社名をもっと強調し、別の行の両端にレポートの種類および部門名を配置するとさらに体裁が良くなります。 また、行サイズを減らしてタイトルをデータの近くに中央揃えに配置するのもよい方法です。

これらの変更を加えるには、次の例に示すように TTITLEコマンドにいくつかの句を追加し、システム変数 LINESIZEをリセットします。

レポートのヘッダーおよびフッターは、REPHEADERコマンドおよび REPFOOTERコマンドを使用して BTITLEおよび TTITLEと同じ方法で書式を設定できます。

例例例例 4-19 タイトル要素の位置決定タイトル要素の位置決定タイトル要素の位置決定タイトル要素の位置決定

上部タイトルの位置を設定し直して人事レポートを再表示するには、次のコマンドを入力します。

SQL> TTITLE CENTER ’A C M E W I D G E T’ SKIP 1 -> CENTER ================ SKIP 1 LEFT ’PERSONNEL REPORT’ -> RIGHT ’SALES DEPARTMENT’ SKIP 2SQL> SET LINESIZE 60SQL> /

問合せ結果は、次のように出力されます。

A C M E W I D G E T ====================PERSONNEL REPORT SALES DEPARTMENT

DEPTNO ENAME SAL---------- ---------- ---------- 30 JAMES 950 30 WARD 1250 30 MARTIN 1250 30 TURNER 1500 30 ALLEN 1600 30 BLAKE 2850 COMPANY CONFIDENTIAL

LEFT、RIGHTおよび CENTER句は、後続の値を行の始め、終わりおよび中央に配置します。 SKIP句は、1行以上、下へ移動するよう SQL*Plusに指示します。

結果の最後の行と下部タイトルの間に空白がなくなっていることに注意してください。 下部タイトルの最終行は、ページの最終行に表示されます。 レポートの最終行から下部タイトルまでの空白の量は、ページ全体のサイズ、上部タイトルが占有する行数、そのページ内の行数によって決まります。 上記の例では、上部タイトルは、前の例で示した上部タイトルより3行多く占有します。 1ページあたりの行数の設定方法は、この章の後半で説明します。

Page 111: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

問合せ結果の書式の設定 4-27

下部タイトルの前に n行の空白行を常に出力するには、BTITLEコマンドの始めに SKIP n句を使用します。 たとえば、上記の例で下部タイトルの前で 1行のみスキップさせるには、次のコマンドを入力します。

BTITLE SKIP 1 CENTER 'COMPANY CONFIDENTIAL'

タイトル要素のインデントタイトル要素のインデントタイトル要素のインデントタイトル要素のインデント特定の空白の個数分だけタイトル要素をインデントするには、TTITLEコマンドまたはBTITLEコマンドに COL句を使用します。 たとえば、COL 1と指定すると、後続の値が先頭文字の位置に置かれます。したがって、これは LEFT、またはゼロのインデントに相当します。 COL 15と指定すると、タイトル要素が 15文字目に配置され、空白 14個分インデントされます。

例例例例 4-20 タイトル要素のインデントタイトル要素のインデントタイトル要素のインデントタイトル要素のインデント

会社名を左揃えで出力し、レポート名を次の行に空白 5個分だけインデントして出力するには、次のようにします。

SQL> TTITLE LEFT ’ACME WIDGET’ SKIP 1 -> COL 6 ’SALES DEPARTMENT PERSONNEL REPORT’ SKIP 2

この時点で現行の問合せを実行し、結果を表示します。

SQL> /ACME WIDGET SALES DEPARTMENT PERSONNEL REPORT

DEPTNO ENAME SAL---------- ---------- ---------- 30 JAMES 950 30 WARD 1250 30 MARTIN 1250 30 TURNER 1500 30 ALLEN 1600 30 BLAKE 2850

COMPANY CONFIDENTIAL

Page 112: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

4-28 SQL*Plusユーザーズ・ガイドおよびリファレンス

長いタイトルの入力長いタイトルの入力長いタイトルの入力長いタイトルの入力長さが 500文字を超えるタイトルを入力する必要がある場合は、SQL*PlusコマンドのDEFINEを使用して、タイトルの各行のテキストを別々のユーザー変数に格納します。

SQL> DEFINE LINE1 = ’This is the first line...’SQL> DEFINE LINE2 = ’This is the second line...’SQL> DEFINE LINE3 = ’This is the third line...’

その後、次のように TTITLEコマンドまたは BTITLEコマンドの中でそれらの変数を参照します。

SQL> TTITLE CENTER LINE1 SKIP 1 CENTER LINE2 SKIP 1 -> CENTER LINE3

タイトルの中にページ番号およびその他のシステム管理値を表示する方法タイトルの中にページ番号およびその他のシステム管理値を表示する方法タイトルの中にページ番号およびその他のシステム管理値を表示する方法タイトルの中にページ番号およびその他のシステム管理値を表示する方法現行のページ番号およびその他のシステム管理値をタイトルの中に表示するには、たとえば次のようにシステム値の名前をタイトル要素として入力します。

TTITLE LEFT system-maintained_value_name

タイトルの中に表示できるシステム管理値は 5つあり、そのうち最も一般的なものはSQL.PNO(現行のページ番号)です。 タイトルの中に表示できるシステム管理値のリストについては、第 8章の「TTITLE」コマンドを参照してください。

例例例例 4-21 タイトル内での現行ページ番号の表示タイトル内での現行ページ番号の表示タイトル内での現行ページ番号の表示タイトル内での現行ページ番号の表示

現行ページ番号を会社名とともに各ページの一番上に表示するには、次のコマンドを入力します。

SQL> TTITLE LEFT ’ACME WIDGET’ RIGHT ’PAGE:’ SQL.PNO SKIP 2

この時点で、現行の問合せを再実行してください。

SQL> /

Page 113: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

問合せ結果の書式の設定 4-29

問合せ結果は、次のように出力されます。

ACME WIDGET PAGE: 1

DEPTNO ENAME SAL---------- ---------- ---------- 30 JAMES 950 30 WARD 1250 30 MARTIN 1250 30 TURNER 1500 30 ALLEN 1600 30 BLAKE 2850

COMPANY CONFIDENTIAL

SQL.PNOの書式が空白 10個分の幅であることに注意してください。 この書式は、TTITLE(または BTITLE)の FORMAT句を使用して変更できます。

例例例例 4-22 タイトル内でのシステム管理値の書式設定タイトル内でのシステム管理値の書式設定タイトル内でのシステム管理値の書式設定タイトル内でのシステム管理値の書式設定

PAGE:という語とページ番号の間隔を狭くするには、次のように TTITLEコマンドを再入力します。

SQL> TTITLE LEFT ’ACME WIDGET’ RIGHT ’PAGE:’ FORMAT 999 -> SQL.PNO SKIP 2

この時点で、次のように問合せを再実行してください。

SQL> /

問合せ結果は、次のように出力されます。

ACME WIDGET PAGE: 1

DEPTNO ENAME SAL---------- ---------- ---------- 30 JAMES 950 30 WARD 1250 30 MARTIN 1250 30 TURNER 1500 30 ALLEN 1600 30 BLAKE 2850

COMPANY CONFIDENTIAL

Page 114: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

4-30 SQL*Plusユーザーズ・ガイドおよびリファレンス

ページ・タイトル定義のリスト表示、抑止、復元ページ・タイトル定義のリスト表示、抑止、復元ページ・タイトル定義のリスト表示、抑止、復元ページ・タイトル定義のリスト表示、抑止、復元ページ・タイトルの定義をリスト表示するには、句を指定せずに該当するタイトル・コマンドを入力します。

TTITLEBTITLE

タイトル定義を抑止するには、次のように入力します。

TTITLE OFFBTITLE OFF

これらのコマンドを実行すると、SQL*Plusはレポートにタイトルを表示しなくなりますが、それらのタイトルの現行の定義は消去されません。 現行の定義は、次のように入力すれば復元できます。

TTITLE ONBTITLE ON

タイトル内に列の値を表示する方法タイトル内に列の値を表示する方法タイトル内に列の値を表示する方法タイトル内に列の値を表示する方法各ページの一番上に変化するマスター列値を表示し、その値の詳しい問合せ結果を下に表示したマスター /ディテール・レポートも作成できます。 上部タイトル内の列値を参照するには、求める値を変数に格納し TTITLEコマンドの中でその変数を参照します。 変数を定義するには、次の書式の COLUMNコマンドを使用します。

COLUMN column_name NEW_VALUE variable_name

SKIP PAGE句を使用して、ORDER BY句と BREAKコマンドの中にマスター列を挿入する必要があります。

例例例例 4-23 マスターマスターマスターマスター /ディテール・レポートの作成ディテール・レポートの作成ディテール・レポートの作成ディテール・レポートの作成

2人のマネージャの従業員番号を別々のページの一番上にそれぞれ表示し、そのマネージャに報告する人をマネージャの従業員番号と同じページに表示するレポートを作成します。 最初に、次のようにして現行のマネージャの従業員番号を保持する変数MGRVARを作成します。

SQL> COLUMN MGR NEW_VALUE MGRVAR NOPRINT

マネージャの従業員番号はタイトルの中に表示するので、ディテールの一部としては出力しません。 上記の NOPRINT句は、列MGRを出力しないよう SQL*Plusに指示します。

Page 115: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

問合せ結果の書式の設定 4-31

次に、ページ・タイトルにラベルおよび値を挿入し、適正な BREAKコマンドを入力して、最後の例の下部タイトルが表示されるのを抑止します。

SQL> TTITLE LEFT ’Manager: ’ MGRVAR SKIP 2SQL> BREAK ON MGR SKIP PAGESQL> BTITLE OFF

最後に、次の問合せを入力して実行してください。

SQL> SELECT MGR, ENAME, SAL, DEPTNO 2 FROM EMP 3 WHERE MGR IN (7698, 7839) 4 ORDER BY MGR;

SQL*Plusは、次の出力を表示します。

Manager: 7698

ENAME SAL DEPTNO---------- -------- ----------ALLEN 1600 30WARD 1250 30TURNER 1500 30MARTIN 1250 30JAMES 950 30

Manager: 7839

ENAME SAL DEPTNO---------- -------- ----------JONES 2975 20BLAKE 2850 30CLARK 2450 10

ページの一番下に列の値を出力する場合は、COLUMNコマンドを次の形式で使用します。

COLUMN column_name OLD_VALUE variable_name

SQL*Plusは、マスター列の新しい値を検出した後、新しいページにブレークするプロセスの一部として下部タイトルを出力します。 したがって、単にマスター列の NEW_VALUEを参照した場合、次のディテール・セットの値が得られます。 OLD_VALUEには、ページ・ブレークが開始される前に有効であったマスター列の値が記録されます。

Page 116: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

4-32 SQL*Plusユーザーズ・ガイドおよびリファレンス

タイトル内に現在の日付を表示する方法タイトル内に現在の日付を表示する方法タイトル内に現在の日付を表示する方法タイトル内に現在の日付を表示する方法タイトルに値を入力するだけで、レポートに日付を付けることができます。 その場限りのレポートならこの方法でも十分ですが、同じレポートを繰り返し実行する場合は、レポートの実行時に日付が自動的に付くようにした方が便利です。 そのためには、現在の日付を保持する変数を作成します。

変数(この例では _DATE)を作成するには、SQL*Plusの LOGINファイルに次のコマンドを追加します。

SET TERMOUT OFFBREAK ON TODAYCOLUMN TODAY NEW_VALUE _DATESELECT TO_CHAR(SYSDATE, 'fmMonth DD, YYYY') TODAYFROM DUAL;CLEAR BREAKSSET TERMOUT ON

SQL*Plusを開始した時点で、これらのコマンドは SYSDATE(現在の日付)の値を _DATEという名前の変数に入れます。 現在の日付を表示するには、他の変数の場合と同様に、タイトルの中で _DATEを参照します。

LOGINファイル内の SELECTコマンドに挿入する日付書式モデルによって、SQL*Plusでの日付の表示形式が決まります。 日付書式モデルの詳細は、『Oracle8i SQLリファレンス』を参照してください。 LOGINファイルの詳細は、第 3章の「LOGINファイルの変更」を参照してください

これらのコマンドは、対話形式でコマンド・プロンプトから入力することもできます。 詳細は、第 8章の「COLUMN」コマンドを参照してください。

ページ・サイズの設定ページ・サイズの設定ページ・サイズの設定ページ・サイズの設定一般に、レポートの 1ページには、SETコマンドのNEWPAGE変数で設定された行数分の空白行、上部タイトル、列ヘッダー、問合せ結果、および下部タイトルが含まれています。 SQL*Plusは長すぎて 1ページに収めきれないレポートを複数の連続したページに表示し、各ページに独自のタイトルおよび列ヘッダーを付けます。 SQL*Plusが各ページに表示するデータの量は、現行のページ・サイズによって決まります。

SQL*Plusで使用されるデフォルトのページ・サイズを次に示します。

■ 上部タイトルより前の行数 : 1

■ 上部タイトルからページの一番下までの 1ページ当り行数 : 24

■ 1行当りの文字数 : 80

Page 117: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

問合せ結果の書式の設定 4-33

これらの設定は、ご使用のコンピュータ画面のサイズ、または印刷の場合は用紙サイズに合うように変更できます。

ページの長さはシステム変数 PAGESIZEを使用して変更できます。 たとえば、印刷するページは一般に 66行の長さなので、レポートの印刷時にページの長さを変更してもかまいません。

各ページの始めから上部タイトルまでの行数を設定するには、SETコマンドの NEWPAGE変数を使用します。

SET NEWPAGE number_of_lines

NEWPAGEをゼロに設定した場合、SQL*Plusは新しいページを開始するためにゼロ行のみスキップし、改ページ文字を表示して印刷します。 ほとんどのタイプのコンピュータ画面では、改ページ文字は画面を消去してカーソルを 1行目の先頭に移動します。 レポートを印刷しているときに改ページ文字が検出されると、その検出位置が現在のページの最後でなくても、次のページの一番上の印字位置までプリンタが移動します。 NEWPAGEを NONEに設定した場合、SQL*Plusはレポートのページ間で空白行または改ページ文字を出力しません。

1ページの行数を設定するには、次のように SETコマンドの PAGESIZE変数を使用します。

SET PAGESIZE number_of_lines

出力の上にタイトルを正しく中央揃えするために行サイズを減らしたり、幅の広い用紙に出力するために行サイズを増やしたりできます。 行の幅は、次のように SETコマンドのLINESIZE変数を使用して変更できます。

SET LINESIZE number_of_characters

例例例例 4-24 ページ・サイズの設定ページ・サイズの設定ページ・サイズの設定ページ・サイズの設定

ページ・サイズを 66行に設定し、各ページの始めで画面を消去し(またはプリンタを改ページし)、行サイズを 32に設定するには、次のコマンドを入力します。

SQL> SET PAGESIZE 66SQL> SET NEWPAGE 0SQL> SET LINESIZE 32

Page 118: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ページおよびレポートのタイトルとサイズの定義

4-34 SQL*Plusユーザーズ・ガイドおよびリファレンス

この時点で、次のコマンドを入力し実行して、結果を表示してください。

SQL> TTITLE CENTER ’ACME WIDGET PERSONNEL REPORT’ SKIP 1 -> CENTER '10-JAN-89' SKIP 2SQL> COLUMN DEPTNO HEADING DEPARTMENTSQL> COLUMN ENAME HEADING EMPLOYEESQL> COLUMN SAL FORMAT $99,999 HEADING SALARYSQL> SELECT DEPTNO, ENAME, SAL 2 FROM EMP 3 ORDER BY DEPTNO;

改ページ後、問合せ結果が次のように表示されます。

ACME WIDGET PERSONNEL REPORT 10-JAN-89

DEPARTMENT EMPLOYEE SALARY---------- ---------- ---------- 10 CLARK $2,450 10 KING $5,000 10 MILLER $1,300 20 SMITH $800 20 ADAMS $1,100 20 FORD $3,000 20 SCOTT $3,000 20 JONES $2,975 30 ALLEN $1,600 30 BLAKE $2,850 30 MARTIN $1,250 30 JAMES $950 30 TURNER $1,500 30 WARD $1,250

この時点で、次のように PAGESIZE、NEWPAGEおよび LINESIZEをデフォルト値にリセットしてください。

SQL> SET PAGESIZE 24SQL> SET NEWPAGE 1SQL> SET LINESIZE 80

Page 119: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

問合せ結果の格納および印刷

問合せ結果の書式の設定 4-35

これらの変数の現在の設定値をリスト表示するには、次のように SHOWコマンドを使用します。

SQL> SHOW PAGESIZEpagesize 24SQL> SHOW NEWPAGEnewpage 1SQL> SHOW LINESIZElinesize 80

SQL*Plusコマンドの SPOOLを使用して、問合せ結果をファイルに格納したり、ご使用のコンピュータのデフォルト・プリンタで印刷したりできます。

ファイルへの結果の格納ファイルへの結果の格納ファイルへの結果の格納ファイルへの結果の格納問合せ結果を画面に表示したままファイルに格納するには、次の形式で SPOOLコマンドを入力します。

SPOOL file_name

SPOOLコマンドを入力した後に画面に表示されていたすべての情報が、指定したファイルに格納されます。

問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果を、印刷する前にワード・プロセッサで編集したり、書状、メモ、またはその他の文書に挿入したりする場合は、問合せ結果をファイルに格納してください。

問合せ結果を画面に表示したままファイルに格納するには、次の形式で SPOOLコマンドを入力します。

SPOOL file_name

ファイル名の後にピリオドおよび拡張子を指定しなかった場合、SPOOLはそのファイルを出力ファイルとして認識するため、ファイル名にデフォルトのファイル拡張子を追加します。 このデフォルトは、オペレーティング・システムによって異なりますが、ほとんどのホストでは LSTまたは LISです。 詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

次の形式の SPOOLを使用してスプーリングをオフにするまで、SQL*Plusは情報をスプールし続けます。

SPOOL OFF

Page 120: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

問合せ結果の格納および印刷

4-36 SQL*Plusユーザーズ・ガイドおよびリファレンス

フラット・ファイルの作成フラット・ファイルの作成フラット・ファイルの作成フラット・ファイルの作成異なるソフトウェア・プロダクト間でデータを移動するときには、"フラット・ファイル "(エスケープ文字、ヘッダー、または余分な埋込み文字を含まないオペレーティング・システム・ファイル)を使用しなければならない場合があります。 たとえば、Net8を持っていない場合、Oracle7から Oracle8へデータを移動するには、SQL*Loaderで使用するフラット・ファイルを作成する必要があります。

SQL*Plusでフラット・ファイルを作成するには、最初に次の SETコマンドを入力してください。

SET NEWPAGE 0SET SPACE 0SET LINESIZE 80SET PAGESIZE 0SET ECHO OFFSET FEEDBACK OFFSET HEADING OFF

これらのコマンドを入力した後、前の項で示したような SPOOLコマンドを使用してフラット・ファイルを作成します。

SET COLSEPコマンドは、列に輪郭を付けるときに便利です。 詳細は、第 8章の「SET」コマンドを参照してください。

プリンタへの結果の出力プリンタへの結果の出力プリンタへの結果の出力プリンタへの結果の出力問合せ結果を印刷するには、前の項で述べたように結果をファイルにスプールします。 その後、SPOOL OFFではなく、次の形式でコマンドを入力します。

SPOOL OUT

SQL*Plusはスプールを停止し、スプールされたファイルの内容をご使用のホスト・コンピュータの標準(デフォルト)プリンタにコピーします。 SPOOL OUTでは、スプール・ファイルは印刷後に削除されません。

例例例例 4-25 プリンタへの問合せ結果の出力プリンタへの問合せ結果の出力プリンタへの問合せ結果の出力プリンタへの問合せ結果の出力

最終レポートを生成し、結果をスプールして印刷するには、次のコマンドが含まれたEMPRPTという名前のコマンド・ファイルを作成します。

最初に EDITを使用して、ご使用のホスト・オペレーティング・システムのテキスト・エディタでコマンド・ファイルを作成します。 (INPUTおよび SAVEを使用しないでください。これらを使用すると、SQL*Plusはファイルの終わりにスラッシュを追加し、コマンド・ファイルを 2回実行します。1回はセミコロンの結果として実行され、1回はスラッシュによって実行されます。)

Page 121: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

問合せ結果の格納および印刷

問合せ結果の書式の設定 4-37

SQL> EDIT EMPRPT

次に、テキスト・エディタを使用して、次のコマンドをファイルに入力します。

SPOOL TEMPCLEAR COLUMNSCLEAR BREAKSCLEAR COMPUTES

COLUMN DEPTNO HEADING DEPARTMENTCOLUMN ENAME HEADING EMPLOYEECOLUMN SAL HEADING SALARY FORMAT $99,999

BREAK ON DEPTNO SKIP 1 ON REPORTCOMPUTE SUM OF SAL ON DEPTNOCOMPUTE SUM OF SAL ON REPORT

SET PAGESIZE 21SET NEWPAGE 0SET LINESIZE 30

TTITLE CENTER 'A C M E W I D G E T' SKIP 2 -LEFT 'EMPLOYEE REPORT' RIGHT 'PAGE:' -FORMAT 999 SQL.PNO SKIP 2

BTITLE CENTER 'COMPANY CONFIDENTIAL'

SELECT DEPTNO, ENAME, SALFROM EMPORDER BY DEPTNO;

SPOOL OUT

出力を画面に表示しない場合は、ファイルの始めに SET TERMOUT OFFを追加し、ファイルの終わりに SET TERMOUT ONを追加します。 ファイルを保存してください(自動的にSQL*Plusに戻ります)。 この時点で、コマンド・ファイル EMPRPTを実行してください。

SQL> @EMPRPT

Page 122: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

問合せ結果の格納および印刷

4-38 SQL*Plusユーザーズ・ガイドおよびリファレンス

画面には次のように出力されます(TERMOUTを OFFに設定した場合を除く)。この出力は、ファイルにスプールされ、TEMPの内容がデフォルト・プリンタに出力されます。

A C M E W I D G E T

EMPLOYEE REPORT PAGE: 1

DEPARTMENT EMPLOYEE SALARY---------- ---------- -------- 10 CLARK $2,450 KING $5,000 MILLER $1,300********** --------sum $8,750

20 SMITH $800 ADAMS $1,100 FORD $3,000 SCOTT $3,000 JONES $2,975

********** --------sum $10,875

COMPANY CONFIDENTIAL

A C M E W I D G E T

EMPLOYEE REPORT PAGE: 2

DEPARTMENT EMPLOYEE SALARY---------- ---------- -------- 30 ALLEN $1,600 BLAKE $2,850 MARTIN $1,250 JAMES $900 TURNER $1,500 WARD $1,250********** --------sum $9,400********** --------sum $29,025

COMPANY CONFIDENTIAL

Page 123: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

データベース管理 5-1

5データベース管理データベース管理データベース管理データベース管理

この章では、SQL*Plusで使用可能なデータベース管理ツールの概要を示し、次のトピックについて説明します。

■ 概要

■ データベースの起動および停止の概要

■ REDOログ・ファイル

■ データベースの回復

この章は、データベース管理者向けです。 この章で説明されているコマンドの機能を利用するには、データベース管理者の権限が必要です。

データベース管理の詳細は、『Oracle8i概要』を参照してください。

Page 124: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

概要

5-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

概要概要概要概要データベースの起動、停止などの特別な操作は、データベース管理者(DBA)が行います。 DBAは、一般ユーザーには割り当てられていない権限を所有しています。 この章で説明するコマンドは、通常、DBAが使用します。

SQL*Plusでのセキュリティおよびロールの詳細は、付録 Eを参照してください。

データベースの起動および停止の概要データベースの起動および停止の概要データベースの起動および停止の概要データベースの起動および停止の概要すべてのユーザーが、Oracleデータベースを利用できるとは限りません。 データベースをオープンまたはクローズするには、あるいはインスタンスを起動または停止するには、SYSOPERまたは SYSDBAとして接続する必要があります。 一般ユーザーは、Oracleデータベースの現在の状態を制御できません。

データベースの起動データベースの起動データベースの起動データベースの起動データベースの起動には、次の 3つのステップが含まれます。

1. インスタンスの起動インスタンスの起動インスタンスの起動インスタンスの起動

インスタンスは、バックグラウンド・プロセスを制御し、Oracleデータベースにアクセスするためのメモリー領域を割り当てます。

2. データベースのマウントデータベースのマウントデータベースのマウントデータベースのマウント

データベースをマウントすることによって、データベースとすでに起動されているインスタンスが対応付けられます。

3. データベースのオープンデータベースのオープンデータベースのオープンデータベースのオープン

データベースをオープンすると、通常のデータベース操作が可能になります。

データベースの起動の詳細は、『Oracle8i概要』を参照してください。 STARTUPコマンドの詳細は、第 8章「コマンド・リファレンス」を参照してください。

例例例例 5-1 インスタンスの起動インスタンスの起動インスタンスの起動インスタンスの起動

データベースをマウントせずに Oracleインスタンスを起動するには、次のように入力します。

SQL> STARTUP NOMOUNT

Page 125: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

データベースの起動および停止の概要

データベース管理 5-3

例例例例 5-2 データベースのマウントデータベースのマウントデータベースのマウントデータベースのマウント

インスタンスを起動し、データベースをクローズしたままマウントするには、次のように入力します。

SQL> STARTUP MOUNT

例例例例 5-3 データベースのオープンデータベースのオープンデータベースのオープンデータベースのオープン

パラメータ・ファイル INITSALE.ORAを使用してインスタンスを起動し、SALESという名前のデータベースを排他モードでマウントおよびオープンして、管理人員を制限するには、次のように入力します。

SQL> STARTUP OPEN sales PFILE=INITSALE.ORA EXCLUSIVE RESTRICT

データベースの停止データベースの停止データベースの停止データベースの停止データベースの停止には、次の 3つのステップが含まれます。

1. データベースのクローズデータベースのクローズデータベースのクローズデータベースのクローズ

データベースがクローズされると、SGA内のデータベースおよびリカバリ・データがすべてデータファイルおよび REDOログ・ファイルに書き込まれ、すべてのオンライン・データファイルがクローズされます。

2. データベースのアンマウントデータベースのアンマウントデータベースのアンマウントデータベースのアンマウント

データベースをアンマウントすることによって、データベースとインスタンスが切り離され、データベースの制御ファイルがクローズされます。

3. インスタンスの停止インスタンスの停止インスタンスの停止インスタンスの停止

インスタンスの停止によって、SGAメモリーが回収され、Oracleインスタンスを構成するバックグラウンドの Oracleプロセスが終了します。

データベースの停止の詳細は、『Oracle8i概要』を参照してください。 SHUTDOWNコマンドの詳細は、第 8章「コマンド・リファレンス」を参照してください。

例例例例 5-4 データベースの停止データベースの停止データベースの停止データベースの停止

オープンおよびマウントされたデータベースを通常モードで停止するには、次のように入力します。

SQL> SHUTDOWNDatabase closed.Database dismounted.ORACLE instance shut down.

Page 126: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REDOログ・ファイル

5-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

REDOログ・ファイルログ・ファイルログ・ファイルログ・ファイル各 Oracleデータベースには、2つ以上の REDOログ・ファイルが用意されています。 1つのデータベースに対する REDOログ・ファイルのセットは、まとめてデータベースの REDOログと呼ばれます。

REDOログは、データに加えられた変更を記録するために使用されます。 たとえば、データベースが壊れた場合に、REDOログを使用してデータベースを回復します。 REDOログ自体を含んだ障害を防ぐため、REDOログのミラー化によって、2つ以上の REDOログのコピーを異なるディスクに保持できます。

ARCHIVELOGモードモードモードモードデータベースを ARCHIVELOGモードでオープンすると、オンライン REDOログをアーカイブすることができます。

アーカイブ REDOログには、データベースに加えられた変更がすべて永続的に保存されるので、ARCHIVELOGコマンドを使用すると、インスタンス障害だけでなくディスク障害も完全に回復できます。

REDOログ・ファイルおよびデータベースのアーカイブ・モードの詳細は、『Oracle8i概要』を参照してください。 ARCHIVE LOGコマンドの詳細は、第 8章「コマンド・リファレンス」を参照してください。

自動的にアーカイブを開始するには、次のように入力します。

SQL> ARCHIVE LOG START

アーカイブされた現行のログ・ファイルの詳細をリスト表示するには、次のように入力します。

SQL> ARCHIVE LOG LIST

次のような結果が表示されます。

Database log mode Archive Mode Automatic archival Enabled Archive destination /vobs/oracle/dbs/arch Oldest online log sequence 221 Next log sequence to archive 222 Current log sequence 222

Page 127: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

データベースの回復

データベース管理 5-5

データベースの回復データベースの回復データベースの回復データベースの回復破損したデータベースが ARCHIVELOGモードの場合、完全メディア回復または不完全メディア回復の操作の候補となります。 メディア回復操作を開始するには、RECOVERコマンドを使用します。 RECOVERコマンドの詳細は、第 8章「コマンド・リファレンス」を参照してください。

回復操作を開始するには、DBA権限が必要です。

制御ファイルのバックアップ・ファイルを使用して指定時間までデータベースを回復するには、次のように入力します。

SQL> RECOVER DATABASE UNTIL TIME ’1998-11-23:12:47:30’-> USING BACKUP CONTROLFILE

2つのオフライン表領域を回復するには、次のように入力します。

SQL> RECOVER TABLESPACE ts1, ts2

表領域の回復を続行する前に、対象の表領域がオフラインになっていることを確認してください。

Page 128: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

データベースの回復

5-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

Page 129: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQLデータベースへのアクセス 6-1

6SQLデータベースへのアクセスデータベースへのアクセスデータベースへのアクセスデータベースへのアクセス

この章では、SQL*Plusを介してデータベースにアクセスする方法を示し、次のトピックについて説明します。

■ デフォルト・データベースへの接続

■ リモート・データベースへの接続

■ データベース間でのデータのコピー

■ 1つのデータベース上にある表の間でのデータのコピー

この章を読むときは、コンピュータの前に座り、示されている例を実際に試してみてください。 始める前に、第 1章で説明したサンプル表へのアクセス権があることを確認してください。

Page 130: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

デフォルト・データベースへの接続

6-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

デフォルト・データベースへの接続デフォルト・データベースへの接続デフォルト・データベースへの接続デフォルト・データベースへの接続あるデータベース内のデータにアクセスするためには、最初にそのデータベースに接続しなければなりません。 通常、SQL*Plusを起動すると、起動時に入力したユーザー名およびパスワードでデフォルトの Oracleデータベースに接続します。 いったんログインすると、SQL*Plusの CONNECTコマンドを使用して別のユーザー名で接続できるようになります。 ユーザー名およびパスワードは、そのデータベースに対して有効でなければなりません。

たとえば、パスワード FOXを使用してユーザー名 TODDでデフォルト・データベースに接続するには、次のように入力します。

SQL> CONNECT TODD/FOX

ユーザー名およびパスワードを省略した場合、それらの入力を求めるプロンプトが表示されます。 CONNECTコマンドの後にユーザー名のみを入力し、パスワードを省略する方法もあります(この場合は、パスワードの入力を求めるプロンプトが表示されます)。 CONNECTコマンドは、最初にユーザーを現行データベースから切断するので、CONNECTコマンドに無効なユーザー名およびパスワードを使用した場合は、どのデータベースにも接続していない状態になります。

アカウントの有効期限が切れたユーザーとしてログインまたは接続した場合は、接続の前にパスワードを変更するように求めるプロンプトが表示されます。

アカウントがロックされている場合は、メッセージが表示され、そのユーザーとしての接続は、アカウントのロックが DBAによって解除されるまで許可されません。

SQL*Plusのコマンド・プロンプトで SQL*Plusの DISCONNECTコマンドを入力することによって、SQL*Plusを終了せずに現在 Oracleに接続しているユーザー名を切断できます。

デフォルト・データベースは、オペレーティング・システムの環境変数やシンボルを設定するか、または Oracleの特定の構成ファイルを編集することによって、オペレーティング・システム・レベルで構成されます。 詳細は、ご使用のオペレーティング・システム用のOracleのマニュアルを参照してください。

リモート・データベースへの接続リモート・データベースへの接続リモート・データベースへの接続リモート・データベースへの接続多数の大きなシステムでは、複数のコンピュータ上で Oracleを実行します。 それらのコンピュータは、多くの場合、ネットワーク上で接続されているので、異なるコンピュータ上のプログラム間でデータを効率よく高速に交換できます。 ネットワーク化されたコンピュータは、互いに物理的に近い位置に設置されている場合と、遠く離れた位置に設置され、通信リンクで接続されている場合があります。

Page 131: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

リモート・データベースへの接続

SQLデータベースへのアクセス 6-3

他のコンピュータ上にあるデータベース、またはデフォルト・データベース以外のホスト・コンピュータ上にあるデータベースは、リモート・データベースと呼ばれます。 目的のデータベースに Net8があり、両方のデータベースが互換性のあるネットワーク・ドライバを備えている場合は、リモート・データベースにアクセスできます。

リモート・データベースには、次の 2つの方法のいずれかで接続できます。

■ SQL*Plusから、CONNECTコマンドを使用する

■ SQL*Plusを起動するときに、SQLPLUSコマンドを使用する

SQL*Plusからのリモート・データベースへの接続からのリモート・データベースへの接続からのリモート・データベースへの接続からのリモート・データベースへの接続CONNECTを使用してリモート・データベースに接続するには、次のいずれかの形式でCONNECTコマンドに Net8データベース指定を設定します(入力するユーザー名およびパスワードは、接続先のデータベースに対して有効なものでなければなりません)。

■ CONNECT SCOTT@net_service_name

■ CONNECT SCOTT/TIGER@net_service_name

SQL*Plusは必要に応じてパスワードの入力を求めるプロンプトを表示し、指定されたデータベースにユーザーを接続します。 そのデータベースは、ユーザーが別のデータベースに再び CONNECTするか、DISCONNECTするか、または SQL*Plusを終了するまでデフォルト・データベースになります。

アカウントの有効期限が切れたユーザーとしてログインまたは接続した場合は、接続の前にパスワードを変更するように求めるプロンプトが表示されます。

アカウントがロックされている場合は、メッセージが表示され、そのユーザーとしての接続は、アカウントのロックが DBAによって解除されるまで許可されません。

この方法でリモート・データベースに接続した場合、そのデータベースに対してすべてのSQLコマンド、SQL*Plusコマンド、および PL/SQLブロックが使用できます。

サービス名を指定するために入力する正確な文字列は、コンピュータが使用する Net8プロトコルによって異なります。 詳細は、第 8章の「CONNECT」およびご使用のプロトコルに該当する Net8のマニュアルを参照するか、または DBAに問い合せてください。

SQL*Plus起動時のリモート・データベースへの接続起動時のリモート・データベースへの接続起動時のリモート・データベースへの接続起動時のリモート・データベースへの接続SQL*Plusを起動したときにリモート・データベースに接続するには、次のいずれかの形式で SQLPLUSコマンドに Net8サービス名を挿入します。

■ SQLPLUS SCOTT@net_service_name

■ SQLPLUS SCOTT/TIGER@net_service_name

Page 132: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

データベース間でのデータのコピー

6-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

リモート・データベースに対して有効なユーザー名およびパスワードを使用しなければならず、そのリモート・データベース用に適切なサービス名に置換する必要があります。 SQL*Plusは必要に応じてユーザー名およびパスワードの入力を求めるプロンプトを表示し、SQL*Plusを起動して、指定されたデータベースにユーザーを接続します。 そのデータベースは、ユーザーが別のデータベースに CONNECTするか、DISCONNECTするか、またはSQL*Plusを終了するまでデフォルト・データベースになります。

アカウントの有効期限が切れたユーザーとしてログインまたは接続した場合は、接続の前にパスワードを変更するように求めるプロンプトが表示されます。

アカウントがロックされている場合は、メッセージが表示され、そのユーザーとしての接続は、アカウントのロックが DBAによって解除されるまで許可されません。

この場合も、この方法で接続した後、リモート・データベース内の表を直接操作できます。

データベース間でのデータのコピーデータベース間でのデータのコピーデータベース間でのデータのコピーデータベース間でのデータのコピーデータベースとデータベースの間、および同じデータベースの表と表の間でデータをコピーするには、SQL*Plusの COPYコマンドを使用します。 COPYコマンドを使用すると、次のようにしてデータベース間でデータをコピーできます。

■ リモート・データベースからローカル・データベースにデータをコピーする

■ ローカル(デフォルト)・データベースから(ほとんどのシステム上の)リモート・データベースにデータをコピーする

■ 1つのリモート・データベースから(ほとんどのシステム上の)別のリモート・データベースにデータをコピーする

注意注意注意注意 : 接続文字列の @記号を、コマンド・ファイルの実行に使用する @コマンドと混同しないでください。

注意注意注意注意 : 一般に、COPYコマンドは、Oracleデータベースと Oracle以外のデータベースの間でデータをコピーするために使用するよう設計されています。 Oracleデータベース間でデータをコピーするには、SQLコマンド(CREATE TABLE ASおよび INSERT)を使用してください。

Page 133: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

データベース間でのデータのコピー

SQLデータベースへのアクセス 6-5

COPYコマンドの構文についてコマンドの構文についてコマンドの構文についてコマンドの構文についてCOPYコマンドは、次の形式で入力します。

SQL> COPY FROM database TO database action -> destination_table (column_name, column_name, -> column_name ...) USING query

次に COPYコマンドの例を示します。

SQL> COPY FROM SCOTT/TIGER@BOSTONDB -> TO TODD/FOX@CHICAGODB -> CREATE NEWDEPT (DNUMBER, DNAME, CITY)-> USING SELECT * FROM DEPT

FROM句または TO句の中でデータベースを指定するには、ローカル・データベースおよびリモート・データベースに対し有効なユーザー名およびパスワードを持っていなければならず、適切なサービス名を知っている必要があります。 COPYは Oracleセキュリティに従うので、表にアクセスするには、指定するユーザー名が表へのアクセス権を付与されていなければなりません。 どのデータベースが使用可能であるかについては、DBAに問い合せてください。

リモート・データベースからローカル・データベースにコピーする場合は、TO句を省略できます。 ローカル・データベースからリモート・データベースにコピーする場合は、FROM句を省略できます。 リモート・データベース間でコピーする場合は、必ず両方の句を挿入しなければなりません。

COPYコマンドの動作は、宛先の表がすでに存在するかどうか、およびユーザーが入力したアクション句(上の例では CREATE)によって異なります。 詳細は、この章の後半の「宛先の表の扱いを制御する方法」を参照してください。

デフォルトでは、宛先の表にコピーされた列はソース表での名前と同じ名前になります。 宛先の表の中で列に新しい名前を指定する場合は、宛先の表名の後に新しい名前をカッコで囲んで入力します。 1つでも列名を入力する場合は、コピーするすべての列の名前を入力しなければなりません。

注意注意注意注意 : Oracleデータベースと Oracle以外のデータベースの間でデータをコピーできるようにするため、NUMBER列は宛先の表の中で DECIMAL列に変更されます。 したがって、Oracleデータベース間でコピーする場合、精度がない NUMBER列は DECIMAL(38)列に変更されます。 Oracleデータベース間でコピーする場合は、SQLコマンド(CREATE TABLE ASおよび INSERT)を使用するか、列に精度が指定されているようにする必要があります。

Page 134: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

データベース間でのデータのコピー

6-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

USING句を使用すると、ソース表に対して問合せを行うことによって、COPYで宛先の表にコピーするデータを指定できます。 COPYコマンドでコピーするデータを選択するには、任意の形式で SQLの SELECTコマンドを使用できます。

次に示す COPYコマンドの例では、ソース表から 2つの列のみコピーし、DEPTNOの値が30である行のみをコピーします。

SQL> COPY FROM SCOTT/TIGER@BOSTONDB -> REPLACE EMPCOPY2 -> USING SELECT ENAME, SAL -> FROM EMPCOPY -> WHERE DEPTNO = 30

長い COPYコマンドは、コマンド・プロンプトから直接入力するよりも、コマンド・ファイルに入力して編集する方が簡単です。

宛先の表の扱いを制御する方法宛先の表の扱いを制御する方法宛先の表の扱いを制御する方法宛先の表の扱いを制御する方法宛先の表の扱いを制御するには、REPLACE、CREATE、INSERTまたは APPENDの 4つの制御句のいずれかを入力します。

REPLACE句は、宛先のデータベース内に作成する表の名前を指定し、次のアクションを指定します。

■ 宛先の表がすでに存在する場合、COPYは既存の表を削除し、コピーされたデータが入った表に置き換える。

■ 宛先の表が存在しない場合、COPYはコピーされたデータを使用してその表を作成する。

Page 135: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

データベース間でのデータのコピー

SQLデータベースへのアクセス 6-7

既存の表を誤って上書きしないように、CREATE句を使用することができます。 CREATEは、次のアクションを指定します。

■ 宛先の表がすでに存在する場合、COPYはエラーを報告して停止する。

■ 宛先の表が存在しない場合、COPYはコピーされたデータを使用してその表を作成する。

既存の表にデータを挿入するには、INSERTを使用します。 INSERTは、次のアクションを指定します。

■ 宛先の表がすでに存在する場合、COPYはコピーされたデータを宛先の表に挿入する。

■ 宛先の表が存在しない場合、COPYはエラーを報告して停止する。

既存の表にデータを挿入する場合、または宛先の表が存在しないときに新しい表を作成する場合は、APPENDを使用します。 APPENDは、次のアクションを指定します。

■ 宛先の表がすでに存在する場合、COPYはコピーされたデータを宛先の表に挿入する。

■ 表が存在しない場合、COPYは表を作成し、コピーされたデータをその表に挿入する。

例例例例 6-1 CREATEを使用したリモート・データベースからローカル・データベースへのコピーを使用したリモート・データベースからローカル・データベースへのコピーを使用したリモート・データベースからローカル・データベースへのコピーを使用したリモート・データベースからローカル・データベースへのコピー

リモート・データベースからユーザー自身のデータベース上にある EMPCOPYという表にEMPをコピーするには、次のコマンドを入力します。

SQL> COPY FROM SCOTT/TIGER@BOSTONDB -> CREATE EMPCOPY -> USING SELECT * FROM EMP

SQL*Plusは、次のメッセージを表示します。

Array fetch/bind size is 20. (arraysize is 20)Will commit when done. (copycommit is 0)Maximum long size is 80. (long is 80)

注意注意注意注意 : EMPのコピーが入っているリモート・コンピュータ用の適切なユーザー名、パスワードおよびサービス名については、DBAに問い合せてください。

Page 136: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

データベース間でのデータのコピー

6-8 SQL*Plusユーザーズ・ガイドおよびリファレンス

その後、SQL*Plusは表 EMPCOPYを作成し、行をコピーし、次の追加メッセージを表示します。

Table EMPCOPY created. 14 rows selected from SCOTT@BOSTONDB. 14 rows inserted into EMPCOPY. 14 rows committed into EMPCOPY at DEFAULT HOST connection.

この COPYコマンドに FROM句が指定されていると、BOSTONDBで指定されたデータベースに、ユーザー名 SCOTT、パスワード TIGERで接続します。

コマンドの終わりにセミコロンを付ける必要はありません。COPYは問合せを含んでいても、SQLコマンドではなく SQL*Plusコマンドです。 ほとんどの COPYコマンドは長さが 1行を超えるので、最終行を除く各行の終わりにハイフン(-)を使用する必要があります。ハイフンの前に空白を付けてもかまいません。

COPYで表示されるメッセージの解釈で表示されるメッセージの解釈で表示されるメッセージの解釈で表示されるメッセージの解釈COPYによって表示される最初の 3つのメッセージは、その COPY操作に影響を及ぼす SETコマンド変数の値を示しています。 最も重要なのは LONGで、これは LONG列の値の長さを制限します。 (LONGは、CHARと同じように 1つのデータ型です。) ソース表に LONG列が含まれている場合、COPYでは、その列の値はシステム変数 LONGで指定された長さまで切り捨てられます。

変数 ARRAYSIZEは、SQL*Plusがデータベースから一度にフェッチする行数を制限します。 これらの行は、バッチを形成します。 変数 COPYCOMMITは、COPYが変更をデータベースにコミットするまでのバッチの数を設定します。 (COPYCOMMITをゼロに設定した場合、COPYはすべてのバッチがコピーされた後にのみ、変更をコミットします。) SETコマンドの変数について、それらの設定を変更する方法も含め、詳細は、第 8章の「SET」コマンドを参照してください。

3つのシステム変数およびそれらの値がリスト表示された後、コピーの間に表の削除、作成または更新があったかどうかが示されます。 その後、選択、挿入およびコミットが実行された行数がリスト表示されます。

別ユーザーの表の指定別ユーザーの表の指定別ユーザーの表の指定別ユーザーの表の指定ローカル・データベースの場合やデータベース・リンクを使用した問合せの場合とまったく同じように、COPYコマンドの中で表名をユーザー名で修飾することによって、別のユーザーの表を参照できます。

Page 137: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

1つのデータベース上にある表の間でのデータのコピー

SQLデータベースへのアクセス 6-9

たとえば、ユーザー名 ADAMSが所有し、Net8接続文字列 BOSTONDBに対応付けられているデータベース上にある DEPTという名前の表のローカル・コピーを作成するには、次のように入力します。

SQL> COPY FROM SCOTT/TIGER@BOSTONDB -> CREATE EMPCOPY2 -> USING SELECT * FROM ADAMS.DEPT

COPYにリモート・データベースへログインするよう指示することによって、ADAMSと同じ結果を得ることができます。 ただし、ユーザー名 ADAMSに対応付けられているパスワードを知らなければ、それはできません。

1つのデータベース上にある表の間でのデータのコピーつのデータベース上にある表の間でのデータのコピーつのデータベース上にある表の間でのデータのコピーつのデータベース上にある表の間でのデータのコピー単一のデータベース(ローカルまたはリモート)内で、1つの表から別の表にデータをコピーできます。 ローカル・データベース内の表と表の間でコピーするには、次のようにFROM句または TO句のいずれかで(その他の句は省略し)ユーザー自身のユーザー名とパスワード、およびローカル・データベースのサービス名を指定します。

SQL> COPY FROM SCOTT/TIGER@MYDATABASE -> INSERT EMPCOPY2 -> USING SELECT * FROM EMP

リモート・データベース上にある表と表の間でコピーするには、次のように FROM句および TO句の両方に同じユーザー名、パスワードおよびサービス名を挿入します。

SQL> COPY FROM SCOTT/TIGER@BOSTONDB -> TO SCOTT/TIGER@BOSTONDB -> INSERT EMPCOPY2 -> USING SELECT * FROM EMP

Page 138: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

1つのデータベース上にある表の間でのデータのコピー

6-10 SQL*Plusユーザーズ・ガイドおよびリファレンス

Page 139: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

第第第第 II部部部部リファレンスリファレンスリファレンスリファレンス

この部では、SQL*Plusの起動方法の概要を説明します。 それぞれの SQL*Plusコマンドの説明を含むコマンド・リファレンスについても説明します。

この部では、次の章について説明します。

■ SQL*Plusの起動およびヘルプの表示

■ コマンド・リファレンス

■ 付録 A「COPYコマンドのメッセージおよびコード」

■ 付録 B「リリース 8.1.5での拡張機能」

■ 付録 C「SQL*Plusの制限」

■ 付録 D「SQLコマンド・リスト」

■ 付録 E「セキュリティ」

■ 付録 F「旧リリースの SQL*Plusコマンド」

Page 140: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース
Page 141: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusの起動およびヘルプの表示 7-1

7SQL*Plusの起動およびヘルプの表示の起動およびヘルプの表示の起動およびヘルプの表示の起動およびヘルプの表示

この章では、オペレーティング・システムのプロンプトから SQL*Plusにアクセスする方法を示し、次のトピックについて説明します。

■ SQLPLUSコマンドによる SQL*Plusの起動

■ ヘルプの表示

Page 142: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQLPLUSコマンドによる SQL*Plusの起動

7-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQLPLUSコマンドによるコマンドによるコマンドによるコマンドによる SQL*Plusの起動の起動の起動の起動SQL*Plusをオペレーティング・システムのプロンプトから起動するには、SQLPLUSコマンドを次の形式で入力します。

SQLPLUS [[-S[ILENT]] [logon] [start]]|-|-?

各項目の意味は、次のとおりです。

logonの入力は、オプションです。 logonを指定しないで、startを指定した場合、SQL*Plusは、コマンド・ファイルの 1行目に有効なログインが含まれているものとみなします。 startも logonも指定しなかった場合、SQL*Plusはログイン情報の入力を求めるプロンプトを表示します。

項または句の詳細は、次を参照してください。

-S[ILENT]すべての SQL*Plus情報メッセージおよびプロンプト・メッセージを抑止します。コマンド・プロンプト、コマンドのエコー、SQL*Plusの起動時に通常表示されるバナーも含まれます。 ユーザーには見えないように SQL*Plusを使用するには、SILENTを使用して別のプログラム内で SQL*Plusを起動します。

username[/password]SQL*Plusを起動し、Oracleに接続するためのユーザー名およびパスワードを指定します。 usernameおよび passwordを省略すると、SQL*Plusは入力を求めるプロンプトを表示します。 usernameの入力を求めるプロンプトに対して、スラッシュ(/)を入力するか、そのまま [Return]を押すと、SQL*Plusはデフォルトのログインを使用してユーザーをログインします(後述の「/」を参照)。

passwordだけを省略すると、SQL*Plusは passwordの入力を求めるプロンプトを表示します。 プロンプトを表示する場合、SQL*Plusが端末画面に passwordを表示することはありません。

logon 次の構文に従います。

username[/password][@net_service_name]|/|/NOLOG

start コマンド・ファイル名および引数を入力できます。 SQL*Plusは、SQL*Plus STARTコマンドを使用してファイルを実行した場合と同様に、引数をコマンド・ファイルに渡します。 start句は、次の構文に従います。

@file_name[.ext][arg ...]

詳細は、第 8章の「START」コマンドを参照してください。

Page 143: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQLPLUSコマンドによる SQL*Plusの起動

SQL*Plusの起動およびヘルプの表示 7-3

net_service_nameNet8接続文字列で構成されます。 正確な構文は、Oracleインストレーションで使用中の Net8通信プロトコルによって異なります。 詳細は、ご使用のプロトコルに該当する Net8のマニュアルを参照するか、データベース管理者に問い合せてください。

/オペレーティング・システム認証を使用するデフォルト・ログインを表します。 デフォルト・ログインを使用する場合、net_service_nameを指定できません。 デフォルト・ログインでは、SQL*Plusは通常、ユーザー名 OPS$nameを使用してユーザーをログインさせようとします。nameは、ご使用のオペレーティング・システムのユーザー名です。 接頭辞「OPS$」は、テキストの他の文字列にも設定されることがあります。 たとえば、INIT.ORAパラメータ・ファイルの設定を LOGONnameまたは USERIDnameに変更することがあります。 オペレーティング・システム認証の詳細は、『Oralce8i管理者ガイド』を参照してください。

/NOLOGOracleへの初期接続を確立しません。 SQLコマンドを発行する前に、CONNECTコマンドを発行して有効なログインを確立する必要があります。 ユーザー名、パスワードまたはデータベースを指定するためのプロンプトを、SQL*Plusコマンド・ファイルから表示するには、/NOLOGを使用します。 コマンド・ファイルの 1行目には、ログインが含まれていないものとみなされます。

-SQLPLUSコマンドの使用方法および構文を表示し、オペレーティング・システムに制御を戻します。

-?SQL*Plusの現行のバージョンおよびレベル番号を表示し、オペレーティング・システムに制御を戻します。 ハイフン(-)および疑問符(?)の間に、空白を入れないでください。

SQL*Plusコマンドは、一部のオペレーティング・システムで別の名前(たとえば、plus81)で認識されることがあります。 ご使用のオペレーティング・システムでの詳細は、SQL*Plusのインストレーション・ガイドを参照してください。

Page 144: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQLPLUSコマンドによる SQL*Plusの起動

7-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

サイト・プロファイルの設定サイト・プロファイルの設定サイト・プロファイルの設定サイト・プロファイルの設定SQL*Plusはサイト・プロファイル、つまりデータベース管理者が作成した SQL*Plusコマンド・ファイルをサポートします。 このファイルは、通常、SQLの拡張子が付いているGLOGINという名前になっています。 ユーザーが SQL*Plusを起動して、SQL*PlusがOracle接続を確立するたびに、SQL*Plusはこのコマンド・ファイルを実行します。 DBAは、サイト・プロファイルを使用して、特定サイトのすべてのユーザー用の SQL*Plus環境デフォルトを設定します。ユーザーは、直接サイト・プロファイルにアクセスできません。 サイト・プロファイルのデフォルト名およびデフォルト位置は、ご使用のシステムによって異なります。 サイト・プロファイルの詳細は、ご使用のオペレーティング・システム用のOracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

ユーザー・プロファイルの設定ユーザー・プロファイルの設定ユーザー・プロファイルの設定ユーザー・プロファイルの設定SQL*Plusは、サイト・プロファイルの後に実行されるユーザー・プロファイルもサポートします。 SQL*Plusは、現行のディレクトリ内で名前が LOGINで拡張子が SQLのファイルを検索します。 ファイルが見つからない場合、SQL*Plusは、そのファイルを見つけるためにシステム依存パスを検索します。 オペレーティング・システムによっては、このパス検索がサポートされていない場合もあります。

リターン・コードの受信リターン・コードの受信リターン・コードの受信リターン・コードの受信無効なユーザー名かパスワードを指定したため、または、その他のエラーが発生したために、SQL*Plusへのログインに失敗した場合、SQL*Plusは、EXIT FAILUREコマンドと同じエラー状態を戻します。 詳細は、この章の「EXIT」コマンドを参照してください。

例例例例 7-1 SQL*Plus の起動の起動の起動の起動

ユーザー名 SCOTTおよびパスワード TIGERで SQL*Plusを起動するには、次のように入力します。

SQL> SQLPLUS SCOTT/TIGER

SQL*Plusを前述のように起動し、POLICYをデフォルトのデータベースにするには(POLICYは、有効な Net8データベース接続文字列とします)、次のように入力します。

SQL> SQLPLUS SCOTT/TIGER@POLICY

ユーザー名 SCOTTおよびパスワード TIGERで SQL*Plusを起動し、名前が STARTUPで拡張子が SQLのコマンド・ファイルを実行するには、次のように入力します。

SQL> SQLPLUS SCOTT/TIGER @STARTUP

TIGERおよび @STARTUPの間には、空白を入れてください。

Page 145: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ヘルプの表示

SQL*Plusの起動およびヘルプの表示 7-5

例例例例 7-2 SQLPLUS構文の表示構文の表示構文の表示構文の表示

SQLPLUSコマンドの構文を表示するには、次のように入力します。

SQL> SQLPLUS -

SQL*Plusは、次のように表示します。

Usage: SQLPLUS [<option>] [<user>[/password>] [@<host>]] [@<startfile> [<parm1>] [<parm2>] ...]where <option> ::= {-s|-?}-s for silent mode and -? to obtain version number

ヘルプの表示ヘルプの表示ヘルプの表示ヘルプの表示SQL*Plusコマンドのオンライン・ヘルプにアクセスするには、SQLコマンド・プロンプトで HELPと入力し、続けてコマンド名を入力します。 たとえば、次のように入力します。

SQL> HELP ACCEPT

ヘルプが使用できないことを示す応答があった場合は、データベース管理者に連絡してください。 詳細は、第 8章の「HELP」コマンドを参照してください。

Page 146: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ヘルプの表示

7-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

Page 147: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

コマンド・リファレンス 8-1

8コマンド・リファレンスコマンド・リファレンスコマンド・リファレンスコマンド・リファレンス

この章では、SQL*Plusのコマンドをアルファベット順に説明します。 この章は参照のためにのみ利用してください。 それぞれのコマンドの説明内容は、次のとおりです。

SQL*Plusの各コマンドを個別に説明する前に、全コマンドをリストに示し、それぞれを簡単に紹介する一覧表を記載しています。

長文の SQL*Plusコマンドは、行末にハイフン(-)を付けて [Return]を押すと、次行に続けて入力できます。 ハイフンの前に空白文字を入力してもかまいません。 右山カッコ(>)がそれぞれの追加行のプロンプトとして表示されます。

SQL*Plusコマンドは、必ずしもセミコロンで終了する必要はありません。 コマンドの入力が終了したら、そのまま [Return]を押します。 SQL*Plusコマンドの末尾にセミコロンを入力してもかまいません。

用途用途用途用途 コマンドの基本的な用途について説明します。

構文構文構文構文 コマンドの入力方法を示します。 コマンドの表記法の説明については、第 1章 を参照してください。

項および句項および句項および句項および句 構文の中に含まれるそれぞれの項または句の働きについて説明します。

使用方法使用方法使用方法使用方法 コマンドの働きおよびコマンドの使用方法に関する追加情報を示します。

例例例例 コマンドの例を 1つ以上示します。

Page 148: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusコマンド一覧

8-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusコマンド一覧コマンド一覧コマンド一覧コマンド一覧コマンドコマンドコマンドコマンド 説明説明説明説明

@ 指定したコマンド・ファイルを実行する。

@@ コマンド・ファイルを実行する。

/ SQLコマンドまたは PL/SQLブロックを実行する。

ACCEPT 1行の入力を読み取り、それを所定のユーザー変数に格納する。

APPEND 指定したテキストをバッファ内の現在行の終わりに追加する。

ARCHIVE LOG オンライン REDOログ・ファイルの自動アーカイブを開始または終了する、指定した REDOログ・ファイルを手動で(明示的に)アーカイブする、または REDOログ・ファイルの情報を表示する。

ATTRIBUTE オブジェクト型列の特定の属性の表示特性を指定し、1つまたはすべての属性の現行の表示特性をリスト表示する。

BREAK レポート内のどこでどのように書式設定を変更するかを指定する、または現行のブレーク定義をリスト表示する。

BTITLE 各レポート・ページの下部に指定のタイトルを配置し書式設定をする、または現行の BTITLE定義をリスト表示する。

CHANGE バッファ内の現在行のテキストを変更する。

CLEAR 指定したオプション(たとえば BREAKSや COLUMNS)などの現行の値または設定を、リセットまたは消去する。

COLUMN 特定の列の表示特性を指定するか、1列またはすべての列の現行の表示特性をリスト表示する。

COMPUTE 選択した行のサブセットについて、各種の標準計算方法を使用してサマリー行を計算し出力する、またはすべての COMPUTE定義をリスト表示する。

CONNECT 指定したユーザー名を Oracleに接続する。

COPY 問合せから、ローカル・データベースまたはリモート・データベース内の表にデータをコピーする。

Page 149: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusコマンド一覧

コマンド・リファレンス 8-3

DEFINE ユーザー変数を指定し、それに CHAR値を割り当てるか、1つまたはすべての変数の値および変数型をリスト表示する。

DEL バッファの 1行以上を削除する。

DESCRIBE 指定した表、ビュー、またはシノニムの列定義をリスト表示する、または指定した関数またはプロシージャの仕様をリスト表示する。

DISCONNECT データベースに対する保留中の変更をコミットし、現行ユーザー名をOracleからログオフするが、SQL*Plusは終了しない。

EDIT 指定したファイルの内容またはバッファの内容を対象として、ホスト・オペレーティング・システムのテキスト・エディタを起動する。

EXECUTE PL/SQL文 1文を実行する。

EXIT SQL*Plusを終了し、オペレーティング・システムに制御を戻す。

GET ホスト・オペレーティング・システム・ファイルを SQLバッファにロードする。

HELP SQL*Plusヘルプ・システムにアクセスする。

HOST SQL*Plusを終了せずにホスト・オペレーティング・システム・コマンドを実行する。

INPUT バッファ内の現在行の後に、新しく 1行以上追加する。

LIST SQLバッファの 1行以上の行をリスト表示する。

PASSWORD パスワードを入力デバイスにエコー表示せずに変更できるようにする。

PAUSE 空白行を 1行と、それに続いてテキストを含む行を 1行表示し、ユーザーが [Return]を押すまで待つか、空白行を 2行表示しユーザーの応答を待つ。

PRINT バインド変数の現在の値を表示する。

PROMPT 指定したメッセージまたは空白行を、ユーザーの画面に送る。

コマンドコマンドコマンドコマンド 説明説明説明説明

Page 150: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusコマンド一覧

8-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

RECOVER 1つ以上の表領域、1つ以上のデータファイル、またはデータベース全体に対しメディア回復を実行する。

REMARK コマンド・ファイルの中でコメントを開始する。

REPFOOTER 各レポートの下部に指定のレポート・フッターを配置し書式設定する、または現行の REPFOOTER定義をリスト表示する。

REPHEADER 各レポートの上部に指定のレポート・ヘッダーを配置し書式設定する、または現行の REPHEADER定義をリスト表示する。

RUN 現在 SQLバッファに格納されている SQLコマンドまたは PL/SQLブロックをリスト表示し実行する。

SAVE SQLバッファの内容を、ホスト・オペレーティング・システム・ファイル(コマンド・ファイル)に保存する。

SET 現行セッション用に SQL*Plus環境を変更するためのシステム変数を設定する。

SHOW SQL*Plusシステム変数の値または現行の SQL*Plus環境を表示する。

SHUTDOWN 現在実行中の Oracleインスタンスを停止し、オプションとしてデータベースをクローズし、アンマウントする。

SPOOL 問合せの結果をオペレーティング・システム・ファイルに格納し、オプションとしてそのファイルをプリンタに送る。

START 指定したコマンド・ファイルの内容を実行する。

STARTUP データベースのマウントおよびオープンを含むオプションを付けて、Oracleインスタンスを起動する。

STORE 現行の SQL*Plus環境の属性を、ホスト・オペレーティング・システム・ファイル(コマンド・ファイル)に保存する。

TIMING 経過時間に関するタイミング・データを記録するか、現行のタイマーのタイトルとタイミング・データをリスト表示するか、アクティブ・タイマーの数をリスト表示する。

TTITLE 各レポート・ページの上部に指定のタイトルを配置し書式設定する、または現行の TTITLE定義をリスト表示する。

UNDEFINE 明示的に(DEFINEコマンドを使用して)定義したか、または暗黙に(STARTコマンドでの引数によって)定義した 1つ以上のユーザー変数を削除する。

VARIABLE PL/SQLで参照できるバインド変数を宣言する。

コマンドコマンドコマンドコマンド 説明説明説明説明

Page 151: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusコマンド一覧

コマンド・リファレンス 8-5

WHENEVER OSERROR オペレーティング・システム・コマンドがエラーとなった場合、SQL*Plusを終了する。

WHENEVER SQLERROR SQLコマンドまたは PL/SQLブロックがエラーとなった場合、SQL*Plusを終了する。

コマンドコマンドコマンドコマンド 説明説明説明説明

Page 152: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

@(アット・マーク)

8-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

@(アット・マーク)(アット・マーク)(アット・マーク)(アット・マーク)

用途用途用途用途指定したコマンド・ファイルを実行します。

構文構文構文構文@ file_name[.ext] [arg...]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

file_name[.ext]実行するコマンド・ファイルを指定します。 拡張子を指定しなかった場合、SQL*Plusは、デフォルトのコマンド・ファイル拡張子(通常は SQL)が指定されたものとみなします。 デフォルトの拡張子の変更の詳細は、この章の SETコマンドの SUFFIX変数を参照してください。

@file_name.extを入力すると、SQL*Plusは、現行のデフォルト・ディレクトリの中で指定したファイル名および拡張子を持つファイルを検索します。 該当のファイルが見つからない場合、SQL*Plusは、そのファイルを見つけるためにシステム依存パスを検索します。 オペレーティング・システムによっては、このパス検索がサポートされていない場合もあります。 オペレーティング・システム環境に特有の情報については、ご使用のオペレーティング・システム用のOracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

arg...コマンド・ファイル内のパラメータに渡すデータ項目を指定します。 1つ以上の引数を入力すると、SQL*Plusは、該当の値をコマンド・ファイルのパラメータ(&1、&2など)に代入します。 最初の引数は &1となっているすべての箇所に、2番目の引数は &2となっているすべての箇所に置換されます。

@コマンドは、引数の値でパラメータを定義します。このセッションで同じコマンド・ファイルを再度実行する場合には、新しい引数を入力したり、現行値をそのまま使用するために、引数を省略したりできます。

パラメータの使用方法の詳細は、第 3章の「対話型コマンドの作成」の「STARTコマンドを使用してパラメータを渡す方法」を参照してください。

Page 153: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

@(アット・マーク)

コマンド・リファレンス 8-7

使用方法使用方法使用方法使用方法コマンド・ファイルには、通常対話形式で入力するコマンド(主として SQLコマンド、SQL*Plusコマンドまたは PL/SQLブロック)なら、どのコマンドでも記述できます。

コマンド・ファイル内で EXITまたは QUITコマンドを使用すると、そこで SQL*Plusが終了します。

@コマンドは、STARTに似た働きをします。

STARTコマンドが使用禁止にされると(付録 Eの「SQL*Plus、SQLおよび PL/SQLコマンドの使用禁止」を参照)、同時に @コマンドも使用禁止にされます。 STARTコマンドの詳細は、この章の「START」コマンドを参照してください。

SQL*Plusは、@コマンドを発行する前に SQLTERMINATOR(デフォルトではセミコロン)を削除します。 これに対処するには、新たな SQLTERMINATORを追加します。 詳細は、この章の「SET」コマンドの SQLTERMINATOR変数を参照してください。

例例例例名前が PRINTRPTで拡張子が SQLであるコマンド・ファイルを実行するには、次のように入力します。

SQL> @PRINTRPT

名前がWKRPTで拡張子が QRYであるコマンド・ファイルを実行するには、次のように入力します。

SQL> @WKRPT.QRY

Page 154: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

@@(二重アット・マーク)

8-8 SQL*Plusユーザーズ・ガイドおよびリファレンス

@@(二重アット・マーク)(二重アット・マーク)(二重アット・マーク)(二重アット・マーク)

用途用途用途用途コマンド・ファイルを実行します。 このコマンドは、@(アット・マーク)コマンドとほぼ同じですが、このコマンドがコールされたコマンド・ファイルと同じパス内で、指定のコマンド・ファイルを検索するという点が異なります。

構文構文構文構文@@ file_name[.ext]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

file_name[.ext]実行するネストされたコマンド・ファイルを指定します。 拡張子を指定しなかった場合、SQL*Plusは、デフォルトのコマンド・ファイル拡張子(通常はSQL)が指定されたものとみなします。 デフォルトの拡張子の変更については、この章の SETコマンドの SUFFIX変数を参照してください。

あるコマンド・ファイルの中で @@file_name.extを入力すると、SQL*Plusはそのコマンド・ファイルと同じディレクトリから file_name.extを実行します。 @@file_name.extを対話形式で入力すると、SQL*Plusは、現行の作業ディレクトリから file_name.extを実行します。 該当のファイルが見つからない場合、SQL*Plusは、そのファイルを見つけるためにシステム依存パスを検索します。 オペレーティング・システムによっては、このパス検索がサポートされていない場合もあります。 オペレーティング・システム環境に特有の情報については、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

使用方法使用方法使用方法使用方法コマンド・ファイルには、通常対話形式で入力するコマンド(主として SQLコマンドまたは SQL*Plusコマンド)なら、どのコマンドでも記述できます。

コマンド・ファイル内で EXITまたは QUITコマンドを使用すると、そこで SQL*Plusが終了します。

@@コマンドは、STARTに似た働きをします。

STARTコマンドが使用禁止にされると、同時に @@コマンドも使用禁止にされます。 STARTコマンドの詳細は、この章の「START」 コマンドを参照してください。

Page 155: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

@@(二重アット・マーク)

コマンド・リファレンス 8-9

SQL*Plusは、@@コマンドを発行する前に SQLTERMINATOR(デフォルトではセミコロン)を削除します。 これに対処するには、新たな SQLTERMINATORを追加します。 詳細は、この章の「SET」コマンドの SQLTERMINATOR変数を参照してください。

例例例例PRINTRPTという名前の次のようなコマンド・ファイルがあるとします。

SELECT * FROM EMP@EMPRPT@@ WKRPT

PRINTRPTを開始し、それが @コマンドに到達すると、現行の作業ディレクトリ内でEMPRPTという名前のコマンド・ファイルが検索され、実行されます。 PRINTRPTが @@コマンドに達すると、このコマンドは、PRINTRPTと同じパスの中でWKRPTという名前のコマンド・ファイルを見つけて、それを実行します。

Page 156: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

/(スラッシュ)コマンド

8-10 SQL*Plusユーザーズ・ガイドおよびリファレンス

/(スラッシュ)コマンド(スラッシュ)コマンド(スラッシュ)コマンド(スラッシュ)コマンド

用途用途用途用途現在 SQLバッファに格納されている SQLコマンドまたは PL/SQLブロックをリスト表示し、実行します。

構文構文構文構文/

使用方法使用方法使用方法使用方法スラッシュ(/)コマンドは、コマンド・プロンプトに入力することも、複数行コマンドの行番号プロンプトに入力することもできます。

スラッシュ・コマンドは、RUNに似た働きをしますが、バッファ内のコマンドを画面に表示することはしません。

スラッシュ・コマンドを使用して SQLコマンドまたは PL/SQLブロックを実行しても、SQLバッファ内のコマンドにエラーがない限り、バッファ内の現在行の番号が変化することはありません。 エラーがある場合、SQL*Plusは、現在行の番号をエラーがある行の番号に変更します。

例例例例実行する SQL*Plusコマンドを見るには、バッファの内容をリスト表示します。

SQL> LIST 1* SELECT ENAME, JOB FROM EMP WHERE ENAME = 'JAMES'

バッファ内のコマンドを実行するには、コマンド・プロンプトにスラッシュ(/)を入力します。

SQL> /

前述の問合せの場合、SQL*Plusは次のような結果を表示します。

ENAME JOB---------- ---------JAMES CLERK

Page 157: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ACCEPT

コマンド・リファレンス 8-11

ACCEPT

用途用途用途用途1行の入力を読み取り、それを所定のユーザー変数に格納します。

構文構文構文構文ACC[EPT] variable [NUM[BER]|CHAR|DATE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text|NOPR[OMPT]] [HIDE]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

variable値を格納する変数の名前を指定します。 variableが存在しない場合、SQL*Plusはその変数を作成します。

NUM[BER]variable のデータ型を NUMBERデータ型に設定します。 応答がデータ型に一致しない場合、ACCEPTは、エラー・メッセージを出し、再度プロンプトを表示します。

CHARvariable のデータ型を CHARデータ型に設定します。 CHARの最大長制限は240バイトです。 マルチバイト・キャラクタ・セットを使用する場合は、1つのCHARのサイズが 1バイトを超えることがあります。

DATE応答を有効な DATE書式に設定します。 応答が有効な DATE書式でない場合、ACCEPTはエラー・メッセージを出し、再度プロンプトを表示します。 データ型は CHARです。

FOR[MAT]応答の入力書式を指定します。 応答が指定された書式と一致しない場合、ACCEPTはエラー・メッセージを出し、再度応答を求めます。 書式要素は、A10または 9.999などのテキスト定数でなければなりません。 書式要素の完全なリストについては、この章の「COLUMN」コマンドを参照してください。

データ型が DATEである場合は、"dd/mm/yy"などの Oracle日付書式が有効です。 指定した書式でない DATEは、デフォルトによって現行セッションのOracle NLS_DATE_FORMATになります。 Oracle日付書式の詳細は、『Oracle8i管理者ガイド』および『Oracle8i SQLリファレンス』を参照してください。

Page 158: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ACCEPT

8-12 SQL*Plusユーザーズ・ガイドおよびリファレンス

DEF[AULT]応答がない場合のデフォルト値を設定します。 応答が定義されている場合は、指定の書式に従っている必要があります。

PROMPT textユーザーからの変数の値を受け入れる前に、画面に textを表示します。

NOPR[OMPT]1行スキップし、プロンプトを表示せずに入力を待ちます。

HIDEユーザーによる応答の入力を表示しません。

変数を表示または参照するには、DEFINEコマンドを使用します。 詳細は、この章の「DEFINE」コマンドを参照してください。

例例例例「Password:」というプロンプトを表示し、PSWDという名前の CHAR変数に応答を入れ、その表示を抑制するには、次のように入力します。

SQL> ACCEPT pswd CHAR PROMPT ’Password: ’ HIDE

「Enter weekly salary:」というプロンプトを表示し、デフォルト値が 000.0の SALARYという名前の NUMBER変数に応答を入れるには、次のように入力します。

SQL> ACCEPT salary NUMBER FORMAT ’999.99’ DEFAULT ’000.0’ -> PROMPT ’Enter weekly salary: ’

「Enter date hired:」というプロンプトを表示し、書式が "dd/mm/yy"でデフォルト値が"01/01/94"である HIREDという名前の DATE変数に応答を入れるには、次のように入力します。

SQL> ACCEPT hired DATE FORMAT ’dd/mm/yy’ DEFAULT ’01/01/94’-> PROMPT ’Enter date hired: ’

「Enter employee lastname:」というプロンプトを表示し、LASTNAMEという名前の CHAR変数に応答を入れるには、次のように入力します。

SQL> ACCEPT lastname CHAR FORMAT ’A20’ -> PROMPT ’Enter employee lastname: ’

Page 159: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

APPEND

コマンド・リファレンス 8-13

APPEND

用途用途用途用途指定したテキストを SQLバッファ内の現在行の終わりに追加します。

構文構文構文構文A[PPEND] text

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

text追加するテキストを指定します。 textと現在行の終わりの文字の間に空白を入れるには、APPENDと textの間に空白を 2つ入力します。

セミコロンで終わる textを追加するには、コマンドを 2つのセミコロンで終わらせます(セミコロンが 1つだけだと、SQL*Plusはそれをオプションのコマンド終了記号と解釈します)。

例例例例1個の空白と DEPTという列名をバッファの 2行目に追加するには、その行を現在行にするために、次のようにその行をリスト表示します。

SQL> 2 2* FROM EMP,

次に、APPENDを入力します。

SQL> APPEND DEPTSQL> 2 2* FROM EMP, DEPT

APPENDと DEPTの間に空白が 2つあることに注意してください。最初の空白は APPENDと追加する文字を区切るためのものです。2番目の空白が、追加される最初の文字になります。

Page 160: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

APPEND

8-14 SQL*Plusユーザーズ・ガイドおよびリファレンス

この行にセミコロンを追加するには、次のように入力します。

SQL> APPEND ;;

SQL*Plusは、最初のセミコロンをこの行に追加し、2番目のセミコロンは APPENDコマンドの終了記号と解釈します。

Page 161: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ARCHIVE LOG

コマンド・リファレンス 8-15

ARCHIVE LOG

用途用途用途用途オンライン REDOログ・ファイルの自動アーカイブを開始または終了する、指定したREDOログ・ファイルを手動で(明示的に)アーカイブする、または REDOログ・ファイルの情報を表示します。

構文構文構文構文ARCHIVE LOG {LIST|STOP}|{START|NEXT|ALL|integer} [TO destination]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

LISTアーカイブ予定の REDOログ・ファイルの範囲、現行のログ・ファイル・グループの順序番号および現行のアーカイブ宛先(オプションのコマンド・テキストまたは初期化パラメータ LOG_ARCHIVE_DESTで指定します)を表示するよう要求します。

ARCHIVELOGモードおよび自動アーカイブを使用すると、次のように表示されます。

SQL> ARCHIVE LOG LIST

Database log mode Archive ModeAutomatic archival EnabledArchive destination /vobs/oracle/dbs/archOldest online log sequence 221Next log sequence to archive 222Current log sequence 222

現行のログ・グループと次にアーカイブするログ・グループのログ順序番号は同じで、現行のログ・グループまでのすべてのログ・グループをアーカイブします。

ARCHIVELOGモードで、自動アーカイブを無効にする場合、最後の 3行を次のように指定します。

Oldest online log sequence 222Next log sequence to archive 222Current log sequence 225

NOARCHIVELOGモードの場合は、"next log sequence to archive"の行を削除します。

Page 162: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ARCHIVE LOG

8-16 SQL*Plusユーザーズ・ガイドおよびリファレンス

ログ順序は、ログ・ライターが他の REDOログ・ファイル・グループに書込みを開始するたびに、毎回増加します。ログ順序は、使用したログの数を示すものではありません。オンライン REDOログ・ファイルが再使用されると、毎回その内容に新しいログ順序番号が割当てられます。

STOP自動アーカイブを無効にします。インスタンスが ARCHIVELOGモードで、すべての REDOログ・ファイル・グループが満杯の場合、データベース処理はREDOログ・ファイルがアーカイブされるまで中断されます(たとえば、ARCHIVE LOG NEXTまたは ARCHIVE LOG ALLコマンドを入力するまで)。

START自動アーカイブを有効にします。バックグラウンド・プロセス ARCHを起動し、要求に応じて自動アーカイブを実行します。ARCHが起動され、ファイル名が指定されると、そのファイル名が新しいデフォルトのアーカイブ出力先になります。

初期化パラメータ LOG_ARCHIVE_STARTが TRUEに設定されている場合、インスタンス起動時に ARCHが自動的に起動します。

NEXT満杯でまだアーカイブされていない次のオンライン REDOログ・ファイル・グループを、手動でアーカイブします。

ALL満杯でまだアーカイブされていないすべてのオンライン REDOログ・ファイル・グループを、手動でアーカイブします。

integerログ順序番号 nで、オンライン REDOログ・ファイル・グループのアーカイブを指定します。オンラインであるどの REDOログ・ファイル・グループでも指定できます。ログ・ファイルがオンラインに見つからない、または順序番号が無効な場合は、エラーが発生します。このオプションは、ログ・ ファイル・グループの再アーカイブに使用します。

destinationオペレーティング・システムでの出力先デバイスまたはディレクトリを指定します。 アーカイブの出力先デバイスは、インストレーション時に指定します。アーカイブの出力先を指定する方法については、ご使用のプラットフォーム固有の Oracleマニュアルを参照してください。オペレーティング・システムの多くは、複数のログ・ファイルを同一のテープにスプールできます。

Page 163: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ARCHIVE LOG

コマンド・リファレンス 8-17

アーカイブ出力先がコマンド行で指定されていない場合は、初期化パラメータLOG_ARCHIVE_DESTの指定に従います。コマンド ARCHIVE LOG STARTの destinationで指定されたデバイスまたはディレクトリは、今後すべての自動または手動アーカイブの新たなデフォルト出力先になります。他のオプションで出力先を指定された場合は、一時的に、現行の(手動の)アーカイブのみで有効な出力先になります。その後の自動アーカイブでは、デフォルト出力先を変更しません。

アーカイブの出力先の指定方法については、ご使用のプラットフォーム固有のOracleマニュアルを参照してください。

使用方法使用方法使用方法使用方法SYSOPERまたは SYSDBAとしてデータベースに接続していなければなりません。データベース接続については、「CONNECT」コマンドを参照してください。

オンライン REDOログ・ファイル・グループが満杯で、再使用可能なものがない場合は、データベース処理が中断されます。ログ・ファイル・グループをアーカイブすると、データベース処理が再開されます。

アーカイブの出力先の指定方法については、ご使用のプラットフォーム固有の Oracleマニュアルを参照してください。

例例例例アーカイバ・プロセスを起動し、LOG_ARCHIVE_DESTで指定したアーカイブ先を使用して自動アーカイブを開始するには、次のように入力します。

SQL> ARCHIVE LOG START

自動アーカイブを停止するには、次のように入力します。

SQL> ARCHIVE LOG STOP

注意注意注意注意 : このコマンドを使用できるのは、現行のインスタンスだけです。 Parallel Server内の異なるインスタンスまたはすべてのインスタンスに対してアーカイブを指定するには、SQLコマンドの ALTER SYSTEMを使用します。 SQLコマンドの使用方法については、『Oracle8i SQLリファレンス』を参照してください。

Page 164: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ARCHIVE LOG

8-18 SQL*Plusユーザーズ・ガイドおよびリファレンス

順序番号 1001を使用して、指定した出力先へアーカイブ・ログ・ファイル・グループをアーカイブするには、次のように入力します。

SQL> ARCHIVE LOG 1001 '/vobs/oracle/dbs/arch'

'arch'は、出力先デバイス上のファイル名に接頭辞を指定します。残りのファイル名は初期化パラメータ LOG_ARCHIVE_FORMATによって、アーカイブ REDOログ・ファイルのファイル名書式を指定します。

Page 165: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ATTRIBUTE

コマンド・リファレンス 8-19

ATTRIBUTE

用途用途用途用途オブジェクト型列の特定の表示特性(たとえば NUMBERデータの書式など)を指定します。

さらに、1つまたはすべての属性の現行の表示特性をリスト表示します。

構文構文構文構文ATTRIBUTE [type_name.attribute_name [option ...]]

option は、次のいずれかの句を表します。

ALI[AS] aliasCLE[AR]FOR[MAT] formatLIKE {type_name.attribute_name|alias}ON|OFF

項および句項および句項および句項および句指定した属性についてのみ現行の表示特性をリスト表示するには、ATTRIBUTEの後に、type_name.attribute_nameだけを入力し、他の句は省略します。 現行の属性すべてについて表示特性をリスト表示するには、句を指定せずに ATTRIBUTEとだけ入力します。

それぞれの項または句の詳細は、次の説明を参照してください。

type_name.attribute_nameオブジェクト型 type_nameの特定のオブジェクトに関する属性セットのデータ項目(一般に属性の名前)を指定します。

同じオブジェクト型のオブジェクトを選択した場合は、そのtype_name.attribute_name に対する ATTRIBUTEコマンドは、このセッション内で参照する該当オブジェクトすべてに適用されます。

ALI[AS] alias指定した別名 aliasが type_name.attribute_nameに割り当てられます。 これは、他の ATTRIBUTEコマンドで type_name.attribute_name を参照するために使用できます。

Page 166: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ATTRIBUTE

8-20 SQL*Plusユーザーズ・ガイドおよびリファレンス

CLE[AR]attribute_nameの表示特性がリセットされます。書式指定は、変数ではなく、A10や $9,999などのテキスト定数でなければなりません。

FOR[MAT] format列の表示書式を指定します。 書式指定は、変数ではなく、A10や $9,999などのテキスト定数でなければなりません。

LIKE {type_name.attribute_name|alias}別の属性の表示特性がコピーされます。 LIKEによってコピーされるのは、現行の ATTRIBUTEコマンド内の他の句で定義されていない特性だけです。

ON|OFF列の表示特性の状態を制御します。 OFFを指定すると、特性の定義に影響を与えることなく属性の特性が使用禁止にされます。 ONを指定すると、特性が復元されます。

使用方法使用方法使用方法使用方法1つ以上の属性について、ATTRIBUTEコマンドをいくつでも入力できます。 属性を OFFに切り替えるか、CLEAR COLUMNコマンドを使用しない限り、各属性について設定されているすべての属性特性がセッションの終わりまで有効です。 したがって、入力したATTRIBUTEコマンドによって、複数の SQL SELECTコマンドについて、属性の表示特性を制御できます。

同じ属性について複数の ATTRIBUTEコマンドを入力すると、SQL*Plusはそれらのコマンドのすべての句をまとめて適用します。 複数の ATTRIBUTEコマンドで、同じ属性に対して同じ句が適用される場合は、最後に入力した句が出力に適用されます。

例例例例オブジェクト型 EMP_TYPEの ENAME属性の幅を 20文字に設定するには、次のように入力します。

SQL> ATTRIBUTE EMP_TYPE.ENAME FORMAT A20

オブジェクト型 EMP_TYPEの SAL属性の書式を、100万ドルの位まで表示し、セントの単位を四捨五入し、3桁区切りにカンマを使用し、値がゼロのときは $0.00を表示するように設定するには、次のように入力します。

SQL> ATTRIBUTE EMP_TYPE.SAL FORMAT $9,999,990.99

Page 167: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

BREAK

コマンド・リファレンス 8-21

BREAK

用途用途用途用途レポート内で次のような書式設定をどこでどのように変更するかを指定します。

■ 特定の列について重複する値の表示の抑止

■ 特定の列値が変化するたびに 1行スキップ

■ 特定の列値が変化するたび、またはレポートの終わりに COMPUTEによって計算された数値を出力(「COMPUTE」コマンドも参照)

また、現行の BREAK定義もリスト表示します。

構文構文構文構文BRE[AK] [ON report_element [action [action]]] ...

report_elementは、次の構文に従ってください。

{column|expr|ROW|REPORT}

actionは、次の構文に従ってください。

[SKI[P] n|[SKI[P]] PAGE][NODUP[LICATES]|DUP[LICATES]]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

ON column [action [action]]アクションを指定する場合、指定した列(ブレーク列といいます)の中でブレークが生じるたびに SQL*Plusがとるアクションを指定します。 (columnには、表もビューも追加できません。 これを行うためには、SQL文の中でその列に別名を付けます。) ブレークとは、次の 3つのイベントのいずれかです。

■ 列または式の値の変化

■ 行の出力

■ レポートの終わり

アクションを省略した場合、BREAK ON columnによって、columnの中で重複する値の出力が抑止されます。また、レポート内で COMPUTEコマンドに指定された計算を SQL*Plusが実行する位置にマークが付けられます。

Page 168: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

BREAK

8-22 SQL*Plusユーザーズ・ガイドおよびリファレンス

ON columnは、1回以上指定できます。 次の例のように、複数の ON句を指定したとします。

SQL> BREAK ON DEPTNO SKIP PAGE ON JOB - > SKIP 1 ON SAL SKIP 1

最初の ON句は最も外側のブレーク(この場合は ON DEPTNO)を表し、最後の ON句は最も内側のブレーク(この場合は ON SAL)を表しています。 SQL*Plusは、それぞれの出力行から指定されたブレークを検索します。このとき、まず最も外側のブレークから始めて、最も内側のブレークに到達するまで、入力された句の順序で処理が進められます。 例では、SQL*PlusはまずDEPTNO、次に JOB、最後に SALの値の変化を検索します。

次に SQL*Plusは、最も内側のブレークについて指定されているアクションから始めて、最も外側のブレークまで逆に順序をたどる形で、各アクションを実行します(この例では、ON SALEの場合の SKIP 1から始めて、ON DEPTNOの場合の SKIP PAGEまで進みます)。 SQL*Plusは、最初の検索で見つかった 1番初めの発生ブレークについて指定されているアクションまでのそれぞれのアクションを実行します。

たとえば、ある行で JOBの値が変化し、DEPTNOおよび SALの値には変化がなかった場合、SQL*Plusは、2行スキップしてからその行を出力します(1行は ON SAL句の SKIP1の結果で、もう 1行は ONJOB句の SKIP1の結果です)。

ON columnを使用するときは必ず、SQL SELECTコマンドの中で ORDER BY句を使用します。 通常、BREAKコマンドの中で使用する列は、ORDER BY句の中にも同じ順序で使用してください(ただし、ORDER BY句で指定したすべての列を BREAKコマンドの中で指定しなくてもかまいません)。 これは、レポート上の意味のない位置でブレークが発生するのを防ぐためです。

次の SELECTコマンドを使用すると、有効な結果が得られます。

SQL> SELECT DEPTNO, JOB, SAL, ENAME 2 FROM EMP 3 ORDER BY DEPTNO, JOB, SAL, ENAME;

DEPTNOが同じであるすべての行がまとめて 1ページに出力され、そのページの中では、JOBが同じであるすべての行が 1グループにまとめられます。 それぞれの職種(JOB)グループの中では、SALが同じである職種がグループにまとめられます。 この BREAKコマンドには ENAMEは指定されていないので、ENAME内にブレークがあってもアクションは実行されません。

Page 169: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

BREAK

コマンド・リファレンス 8-23

ON expr [action [action]]アクションを指定する場合は、式の値が変化したときに SQL*Plusがとるアクションを指定します。

アクションを省略した場合、BREAK ON exprは、expr の重複値の出力を抑止し、レポート内で COMPUTEコマンドに指定された計算を SQL*Plusが実行する位置にマークを付けます。

SQL SELECTまたは SQL*Plus COLUMN コマンドでは、1つ以上の表の列を含む式 、あるいはレポート列に割り当てられている別名を含む式を使用できます。 BREAKコマンドの中で式を使用する場合は、SELECTコマンドの中での順序と同じ順序で exprを入力します。 たとえば、SELECTコマンドの中の式がa+bであるとすれば、COLUMNコマンドの中で SELECTコマンドの中の式を参照するときに、b+aまたは(a+b)はいずれも使用できません。

前述の ON columnに関する説明は、ON exprにもあてはまります。

ON ROW [action [action]]アクションを指定する場合は、SQL SELECTコマンドによって行が戻されたときの SQL*Plusがとるアクションを指定します。 ROWブレークは、BREAKコマンド内のどこに指定してあっても、最も内側のブレークになります。 特定の行について BREAKを指定する場合は、必ずアクションを指定します。

ON REPORT [action]レポート内で COMPUTEコマンドに指定された計算を、SQL*Plusが実行する位置にマークを付けます。 総合計またはその他の総計値を出力するには、BREAK ON REPORTと COMPUTEを併用します。

REPORTブレークは、BREAKコマンド内のどこに指定してあっても、最も外側のブレークになります。

SQL*Plusはレポートの終わりにページをスキップしないので、BREAK ON REPORT SKIP PAGEは使用できません。

それぞれの項または句の詳細は、次の説明を参照してください。

SKI[P] nブレークが発生した行を出力する前に、n行スキップします。

Page 170: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

BREAK

8-24 SQL*Plusユーザーズ・ガイドおよびリファレンス

[SKI[P]] PAGEブレークが発生した行を出力する前に、1ページ分として定義されている行数だけスキップします。 1ページの行数は、SETコマンドの PAGESIZE句を使用して設定できます。 PAGESIZEは、SQL*Plusが 1ページとみなす行数を変更するだけなので、NEWPAGE 0と同時に指定しない限り、SKIP PAGEによって必ずしも物理的なページ・ブレークが行われるとは限りません。

NODUP[LICATES]あるブレーク列の値が前行の値と同じである場合は、その値ではなく空白が出力されます。

DUP[LICATES]選択した各行のブレーク列の値が出力されます。

現行のブレーク定義をリスト表示するには、句を指定せずに、BREAKとだけ入力します。

使用方法使用方法使用方法使用方法新しい BREAKコマンドを入力すると、前の BREAKコマンドは無効になります。

BREAKコマンドを取り消すには、CLEAR BREAKSを使用します。

例例例例職種の重複値を出力し、JOBの値が変化したときに SALの平均値を出して空白行を 1行挿入し、さらに 、DEPTNOの値が変化したときには SALの合計値を出力して再び空白行を挿入するようなレポートを生成するには、次のコマンドを入力します。 (この例では、部門 10および 30から、CLERKおよび SALESMANの職種だけが選択されます。)

SQL> BREAK ON DEPTNO SKIP 1 ON JOB SKIP 1 DUPLICATESSQL> COMPUTE SUM OF SAL ON DEPTNOSQL> COMPUTE AVG OF SAL ON JOBSQL> SELECT DEPTNO, JOB, ENAME, SAL FROM EMP 2 WHERE JOB IN ('CLERK', 'SALESMAN') 3 AND DEPTNO IN (10, 30) 4 ORDER BY DEPTNO, JOB;

Page 171: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

BREAK

コマンド・リファレンス 8-25

出力結果は次のようになります。

DEPTNO JOB ENAME SAL--------- --------- ---------- --------- 10 CLERK MILLER 1300 ********* --------- avg 1300

********** ----------sum 1300

30 CLERK JAMES 1045 ********* ---------- avg 1045

SALESMAN ALLEN 1760 SALESMAN MARTIN 1375 SALESMAN TURNER 1650 SALESMAN WARD 1375 ********* ---------- avg 1540

********** ----------sum 7205

Page 172: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

BTITLE

8-26 SQL*Plusユーザーズ・ガイドおよびリファレンス

BTITLE

用途用途用途用途各レポート・ページの下部に指定のタイトルを配置し書式設定をするか、または現行のBTITLE定義をリスト表示します。

旧形式の BTITLEの詳細は、付録 Fを参照してください。

構文構文構文構文BTI[TLE] [printspec [text|variable] ...]|[OFF|ON]

項および句項および句項および句項および句BTITLEコマンド構文の中の項と句の詳細は、TTITLE コマンドを参照してください。

現行の BTITLE定義をリスト表示するには、句を指定せずに、BTITLEとだけ入力します。

使用方法使用方法使用方法使用方法textが最初に現れる前に、printspec句を入力しなかった場合、BTITLEは textを左揃えにします。 コマンド名の直後に有効な printspec句(LEFT、SKIP、COLなど)が続いている場合、SQL*Plusは新しい形式で BTITLEを解釈します。

例例例例左側には CORPORATE PLANNING DEPARTMENTという下部タイトル、そして右側には日付が示されるように設定するには、次のように入力します。

SQL> BTITLE LEFT ’CORPORATE PLANNING DEPARTMENT’ -> RIGHT ’23 Nov 1998’

50桁目から CONFIDENTIALという下部タイトルが表示され、その後に 6つの空白を置いて日付が続くように設定するには、次のように入力します。

SQL> BTITLE COL 50 ’CONFIDENTIAL’ TAB 6 ’23 Nov 1998’

Page 173: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

CHANGE

コマンド・リファレンス 8-27

CHANGE

用途用途用途用途バッファ内の現在行でのテキストの最初のオカレンスを変更します。

構文構文構文構文C[HANGE] sepchar old [sepchar [new [sepchar]]]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

sepchar"/"または "!"などの英数字以外の文字を指定します。 sepchar には、oldまたはnewに使用されていない文字を使用します。 CHANGEと最初の sepcharの間の空白は省略できます。

old変更するテキストを指定します。 CHANGEでは、 oldを検索する際に大文字と小文字の区別は無視されます。 たとえば、次のように入力したとします。

CHANGE /aq/aw

この場合、"aq"、"AQ"、"aQ"、"Aq"の最初のオカレンスが検索され、それが"aw"に変更されます。 SQL*Plusは、newテキストをユーザーが指定したとおりに挿入します。

old の前に "..."を付けた場合、oldの最初のオカレンスに達するまでのすべてのもの(最初のオカレンスを含む)を意味します。 oldの後に "..."を付けた場合は、old の最初のオカレンスとそこから行末までのすべてのものを意味します。 途中に "..."を含めた場合は、 "..."の前の部分から "..."より後の部分に囲まれたすべてのものが該当します。

newoldと置換するテキストを指定します。 newと、オプションの第 2および第 3のsepcharsを省略した場合、 CHANGEは、バッファの現在行から oldを削除します。

Page 174: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

CHANGE

8-28 SQL*Plusユーザーズ・ガイドおよびリファレンス

使用方法使用方法使用方法使用方法CHANGEは、バッファの現在行で、指定された既存のテキストの最初のオカレンスを、指定された新しいテキストに変更します。 LIST出力では、現在行にはアスタリスク(*)が付けられています。

SQL*Plusは、エラーがある行をバッファの現在行に設定するので、CHANGEを使用して、Oracleエラーの原因となったバッファ内の行を変更することもできます。

1つの行全体を入力し直すには、行番号を入力し、続いてその行の新しい内容を入力します。 バッファ内の行数より大きい行番号を指定し、その後にテキストを続けた場合、SQL*Plusは、バッファの終わりに新しい行を追加して、そのテキストを入れます。 行番号としてゼロ("0")を指定し、その後にテキストを入力した場合、SQL*Plusは、バッファの先頭にその行を挿入します(つまりその行が行 1になります)。

例例例例バッファの現在行に次のテキストが含まれているとします。

4* WHERE JOB IS IN ('CLERK','SECRETARY','RECEPTIONIST')

次のコマンドを入力します。

SQL> C /RECEPTIONIST/GUARD/

バッファ内のテキストは、次のように変更されます。

4* WHERE JOB IS IN ('CLERK','SECRETARY','GUARD')

または次のコマンドを入力します。

SQL> C /’CLERK’,.../’CLERK’)/

元の行は次のように変更されます。

4* WHERE JOB IS IN ('CLERK')

または次のコマンドを入力します。

SQL> C /(...)/(’COOK’,’BUTLER’)/

元の行は次のように変更されます。

4* WHERE JOB IS IN ('COOK','BUTLER')

Page 175: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

CHANGE

コマンド・リファレンス 8-29

行番号を使用して、行全体の内容を置き換えられます。 たとえば、次のように入力したとします。

SQL> 2 FROM EMP e1

すると、バッファの 2番目の行が次のように置き換えられます。

FROM EMP e1

行番号に続けて文字列を入力すると、その行番号の後にどのようなテキストがあってもすべて置換されます。 たとえば、次のように入力したとします。

SQL> 2 c/old/new/

すると、バッファの 2番目の行が次のように変更されます。

2* c/old/new/

Page 176: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

CLEAR

8-30 SQL*Plusユーザーズ・ガイドおよびリファレンス

CLEAR

用途用途用途用途指定したオプションの現行の値または設定をリセットまたは消去します。

構文構文構文構文CL[EAR] option ...

option は、次のいずれかの句を表します。

BRE[AKS]BUFF[ER]COL[UMNS]COMP[UTES]SCR[EEN]SQLTIMI[NG]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

BRE[AKS]BREAKコマンドで設定したブレーク定義が取り消されます。

BUFF[ER]バッファからテキストが消去されます。 複数のバッファを使用している場合以外は、CLEAR BUFFERの機能は CLEAR SQLと同じです(付録 Fの「SET BUFFER」コマンドを参照。)

COL[UMNS]すべての列について、COLUMNコマンドで設定した列表示属性がデフォルト設定にリセットされます。 1つの列だけについて表示属性をリセットするには、COLUMNコマンドの CLEAR句を使用します。 CLEAR COLUMNSでは、該当の列の ATTRIBUTEも消去されます。

COMP[UTES]COMPUTEコマンドで設定したすべての COMPUTE定義が取り消されます。

SCR[EEN]画面がクリアされます。

Page 177: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

CLEAR

コマンド・リファレンス 8-31

SQLSQLバッファからテキストが消去されます。 複数のバッファを使用している場合以外は、CLEAR SQLの機能は CLEAR BUFFERと同じです(付録 Fの「SET BUFFER」コマンドを参照。)

TIMI[NG]TIMINGコマンドによって作成されたすべてのタイマーが削除されます。

例例例例ブレークを消去するには、次のように入力します。

SQL> CLEAR BREAKS

列定義を消去するには、次のように入力します。

SQL> CLEAR COLUMNS

Page 178: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

8-32 SQL*Plusユーザーズ・ガイドおよびリファレンス

COLUMN

用途用途用途用途特定の列について次のような表示属性を指定します。

■ 列ヘッダーのテキスト

■ 列ヘッダーの位置

■ NUMBERデータの書式

■ 列データの折返し

さらに、1つまたはすべての列の現行の表示属性をリスト表示します。

構文構文構文構文COL[UMN] [{column|expr} [option ...]]

option は、次のいずれかの句を表します。

ALI[AS] aliasCLE[AR]FOLD_A[FTER]FOLD_B[EFORE]FOR[MAT] formatHEA[DING] textJUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}LIKE {expr|alias}NEWL[INE]NEW_V[ALUE] variableNOPRI[NT]|PRI[NT]NUL[L] textOLD_V[ALUE] variableON|OFFWRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]

項および句項および句項および句項および句指定した列または式についてだけ現行の表示属性をリスト表示するには、columnまたは expr だけを指定して COLUMNを入力します(その他の句は使用しません)。 現行のすべての列表示属性をリスト表示するには、句を指定せずに、COLUMNとだけ入力します。

Page 179: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

コマンド・リファレンス 8-33

それぞれの項または句の詳細は、次の説明を参照してください。

{column|expr}COLUMNコマンドで、SQL SELECT コマンドの中のどのデータ項目を参照するかを指示します(通常は列の名前)。 COLUMNコマンドの中で式を使用する場合は、SELECTコマンドの中での順序と同じ順序で exprを入力します。 たとえば、SELECTコマンドの中の式が a+bであるとすれば、COLUMNコマンドの中で SELECTコマンドの中の式を参照するときに、b+aまたは(a+b)はいずれも使用できません。

異なる表から同じ名前の列を選択してある場合は、その列名を指定したCOLUMNコマンドは両方の列に適用されます。 つまり、列 ENAMEを対象とする COLUMNコマンドは、このセッションで参照する ENAMEという名前のすべての列に適用されます。 COLUMNは、SELECTコマンドに指定した表名の接頭辞を無視します。 また、名前が二重引用符で囲まれている場合を除き、空白も無視されます。

列を別々に書式設定するには、SELECTコマンド中で各列にそれぞれ一意の別名を割り当て(COLUMNコマンドの ALIAS句は使用しないでください)、そして各列の別名を指定して COLUMNコマンドを入力します。

ALI[AS] alias指定した別名が列に割り当てられます。 この別名は、BREAKおよびCOMPUTE、他の COLUMNコマンドの中でその列を参照するために使用できます。

CLE[AR]列の表示属性がデフォルト値にリセットされます。

すべての列の属性をリセットするには、CLEAR COLUMNSコマンドを使用します。 CLEAR COLUMNSでは、該当の列の ATTRIBUTEも消去されます。

FOLD_A[FTER]列ヘッダーの後および列内のそれぞれの行の後に、キャリッジ・リターンが挿入されます。SQL*Plusは、SELECTリスト内の最後の列の後には余分なキャリッジ・リターンを挿入しません。

FOLD_B[EFORE]列ヘッダーの前および列内のそれぞれの行の前に、キャリッジ・リターンが挿入されます。 SQL*Plusは、SELECTリスト内の最初の列の前には余分なキャリッジ・リターンを挿入しません。

Page 180: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

8-34 SQL*Plusユーザーズ・ガイドおよびリファレンス

FOR[MAT] format列の表示書式を指定します。 書式指定は、変数ではなく、A10や $9,999などのテキスト定数でなければなりません。

文字列文字列文字列文字列 CHAR、NCHAR、VARCHAR2 (VARCHAR)およびNVARCHAR2 (NCHAR VARYING) 列のデフォルトの幅は、データベース内の列の幅です。

SQL*Plusは、これらのデータ型を左揃えで書式設定します。 値が列幅に収まらない場合、SQL*Plusは、SET WRAPの設定に応じて、文字列を折り返すか切り捨てます。

LONG列または CLOB列、NCLOB列のデフォルトの幅は、SET LONGCHUNKSIZEまたは SET LONGのいずれか小さい方の値です。

データ型の幅を nに変更するには、FORMAT Anを使用します。(Aは英数字です。) 列ヘッダーより短い幅を指定した場合は、ヘッダーが切り捨てられます。 LONG、CLOBまたは NCLOBのいずれかの列に幅を指定した場合は、LONGCHUNKSIZE、または指定した幅のどちらか小さい方が列幅として使用されます。

DATE列列列列 SQL*Plus内の書式未設定の DATE列のデフォルトの幅と書式は、有効な NLSパラメータから導出されます。 その他の場合、デフォルトの幅はA9です。 Oracle8では、NLSパラメータは、データベース・パラメータ・ファイル内で設定されることもあり、環境変数またはそれに相当するプラットフォーム固有メカニズムのこともあります。 また、NLSパラメータは、ALTER SESSIONコマンドによって各セッションごとに指定することもできます。 (NLSパラメータの詳細は、Oracle8iのマニュアルを参照してください)。

SQL SELECT文の中で SQL関数 TO_CHARを使用して、任意の DATE列の書式を変更できます。 明示的な COLUMN FORMATコマンドを使用して、列幅を調整することもできます。

Oracleでは、TO_CHARのような SQL関数を使用するときに、非常に幅の広い列が自動的に使用できるようになります。

DATE列の幅を nに変更するには、COLUMNコマンドで FORMAT Anを指定します。列ヘッダーより短い幅を指定した場合、ヘッダーは切り捨てられます。

NUMBER列列列列 NUMBER列の幅を変更するには、FORMATの後に、表 8-1に示す要素の 1つを指定します。

Page 181: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

コマンド・リファレンス 8-35

表表表表 8-1 数値書式数値書式数値書式数値書式

要素要素要素要素 例例例例 説明説明説明説明

9 9999 "9"の数は、戻される有効桁数を指定する。 先行ゼロには空白が表示される。 ゼロの値にはゼロ(0)が表示される。

0 09999990

先行ゼロまたはこの桁のゼロの値は、0と表示される。

$ $9999 値の前にドル記号が付けられる。

B B9999 書式モデル内の "0"に関係なく、ゼロの値が空白で表示される。

MI 9999MI 負の値の後に "-"が表示される。 正の値の場合は、後続空白が表示される。

S S9999 正の値の場合は "+"、負の値の場合は、"-"が、この桁に戻される。

PR 9999PR 負の値は <山カッコ >で囲まれて表示される。 正の値の場合は、先行空白および後続空白が表示される。

D 99D99 この桁には、数値の整数部と小数部を区切る小数点文字が表示される。

G 9G999 この桁には、桁グループ・セパレータが表示される。

C C999 この桁には、ISO通貨記号が表示される。

L L999 この桁には、各国通貨記号が表示される。

,(カンマ) 9,999 この桁にはカンマが表示される。

. (ピリオド) 99.99 この桁には、数値の整数部と小数部を区切るピリオド(小数点)が表示される。

V 999V99 値に 10n を掛ける。 nは、"V"の後の "9"の数です。

EEEE 9.999EEEE 値が科学表記法で表示される(書式には確実に 4つの "E"が含まれていなければなりません)。

RNまたは rn RN 大文字または小文字のローマ数字が表示される。 値は 1から3999までの範囲内の整数です。

DATE DATE 値がMM/DD/YY書式の日付として表示される。これは、ユリウス暦日付を表す NUMBER列を書式設定するために使用されます。

Page 182: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

8-36 SQL*Plusユーザーズ・ガイドおよびリファレンス

MIおよび PR書式要素が使用できるのは、数値書式モデルの最後の桁だけです。 S書式要素が使用できるのは、最初または最後の桁だけです。

数値書式モデルにMI、Sまたは PR書式が含まれていない場合、負の戻り値には自動的に先行負記号が含まれ、正の値には、自動的に先行空白が含まれます。

1つの数値書式モデルに挿入できる小数点文字(D)またはピリオド(.)は 1つだけです。ただし、桁グループ・セパレータ(G)またはカンマ(,)は、2つ以上挿入できます。数値書式モデル内で、小数点文字またはピリオドより右側に、桁グル-プ・セパレ-タまたはカンマを使用することはできません。

SQL*Plusは、NUMBERデータを右揃えで書式設定します。 NUMBER列の幅は、ヘッダーの幅か、FORMATの幅に符号用の 1つの空白を加えた幅のどちらか大きい方に等しくなります。 明示的に FORMATを使用しなかった場合、列の幅は必ず最低でも SET NUMWIDTHの値になります。

SQL*Plusは、NUMBERデータを書式設定またはフィールド幅に合わせて四捨五入する場合があります。

値が列幅に収まらない場合、SQL*Plusは、その幅に相当する各桁にシャープ記号(#)を表示することによって、オーバーフローを示します。

正の値が極端に大きく、数値の四捨五入の際に数値オーバーフローが生じる場合は、値のかわりに無限大記号(~)が表示されます。 同様に、負の値が極端に小さく、数値の四捨五入の際に数値オーバーフローが生じる場合は、値のかわりに負の無限大記号(-~)が表示されます。

HEA[DING] text列ヘッダーを定義します。 HEADING句を使用しなかった場合の、デフォルトの列ヘッダーは、columnまたは exprです。textに空白または句読点文字が含まれている場合は、一重または二重の引用符でそのテキストを囲む必要があります。 HEADSEP文字(デフォルトでは "|")が生じるたびに、新しい行が始まります。

Page 183: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

コマンド・リファレンス 8-37

たとえば、次のように入力したとします。

COLUMN ENAME HEADING 'Employee |Name'

この場合は、2行の列ヘッダーが生成されます。 HEADSEP文字の変更の詳細は、この章の「SET」コマンドの HEADSEP変数を参照してください。

JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}ヘッダーを整列させます。 JUSTIFY句を使用しなかった場合、NUMBER列のヘッダーのデフォルトは RIGHTで、その他の列型のヘッダーのデフォルトはLEFTです。

LIKE {expr|alias} 他の列または式(他の COLUMNコマンドですでに属性を定義してあるもの)の表示属性がコピーされます。 LIKEによってコピーされるのは、現行のCOLUMNコマンド内の他の句で定義されていない属性のみです。

NEWL[INE]列の値を表示する前に新しい行を開始します。 NEWLINEは、FOLD_BEFOREと同じ働きをします。

NEW_V[ALUE] variable列値を保持する変数を指定します。 この変数は、TTITLEコマンドの中で参照できます。 NEW_VALUEは、列値または日付を上部タイトルに表示するために使用します。 この列は、SKIP PAGEアクションを伴う BREAKコマンドに挿入しておく必要があります。 変数名にシャープ記号(#)は挿入できません。

NEW_VALUEは、それぞれのページごとに新しいマスター・レコードが使用されるマスター /ディテール・レポートに使用すると便利です。 マスター /ディテール・レポートを作成するには、ORDER BY句にもこの列を挿入しておきます。 このコマンドの説明の終わりに記載されている例を参照してください。

下部タイトルに列値を表示する方法の詳細は、COLUMN OLD_VALUEを参照してください。 タイトル内の変数の参照については、この章の終わりにある「TTITLE」コマンド を参照してください。 書式設定および有効な書式モデルの詳細は、「COLUMN」コマンドの FORMAT句を参照してください。

Page 184: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

8-38 SQL*Plusユーザーズ・ガイドおよびリファレンス

NOPRI[NT]|PRI[NT]列(列ヘッダーおよび選択したすべての値)の印刷を制御します。 NOPRINTを指定すると、列の印刷がされません。 PRINTを指定すると、列の印刷がされます。

NUL[L] textSQL*Plusによって特定の列に NULL値として表示されるテキストを制御します。 デフォルトはホワイト・スペースです。 SET NULLは、すべての列のすべての NULL値のかわりに表示されるテキストを制御します。ただし、COLUMNコマンドの NULL句に指定した列には適用されません。 NULL値を選択すると、変数の型は常に CHARになるので、SET NULLテキストをその変数に格納できます。

NEW_V[ALUE] variable列値を保持する変数を指定します。 この変数は、BTITLEコマンドの中で参照できます。 OLD_VALUEは、下部タイトルに列値を表示するために使用します。 この列は、SKIP PAGEアクションを伴う BREAKコマンドに挿入しておく必要があります。

OLD_VALUEは、それぞれのページごとに新しいマスター・レコードが使用されるマスター /ディテール・レポートに使用すると便利です。 マスター /ディテール・レポートを作成するには、ORDER BY句にもこの列を挿入しておきます。

上部タイトルに列値を表示する方法の詳細は、COLUMN NEW_VALUEを参照してください。 タイトル内の変数の参照については、この章の終わりにある「TTITLE」コマンド を参照してください。

ON|OFF列の表示特性の状態を制御します。 OFFを指定すると、属性の定義に影響を与えることなく列の属性が使用禁止にされます。 ONを指定すると、属性が復元されます。

WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]長すぎて列に収まらないデータ型または DATE列を SQL*Plusでどのように取り扱うかを指定します。 WRAPPEDを指定すると、列の境界内で文字列が折り返され、必要に応じて新しい行が開始されます。 WORD_WRAPが使用可能になっている場合、SQL*Plusは、組込みの改行文字を含むすべての先行ホワイト・スペース(たとえばリターン、改行文字、タブ、空白など)をスキップして、各行を左揃えにします。 行の境界上にない組込みホワイト・スペースはスキップされません。 TRUNCATEDを指定すると、最初の表示行の終わりの文字列が切り捨てられます。

Page 185: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

コマンド・リファレンス 8-39

使用方法使用方法使用方法使用方法1つ以上の列について、COLUMNコマンドをいくつでも入力できます。 列をOFFに切り替えるか、CLEAR COLUMNコマンドを使用しない限り、各列について設定されているすべての列属性がセッションの終わりまで有効です。 したがって、入力した COLUMNコマンドによって、複数の SQL SELECTコマンドについて特定の列の表示属性を制御できます。

同じ列について複数の COLUMNコマンドを入力すると、SQL*Plusは、それらのコマンドのすべての句をまとめて適用します。 複数の COLUMNコマンドで、同じ列に対して同じ句が適用される場合は、最後に入力した句によって出力が制御されます。

例例例例ENAME列の幅を 20文字にし、EMPLOYEE NAMEを最上部の 2行に表示するには、次のように入力します。

SQL> COLUMN ENAME FORMAT A20 HEADING ’EMPLOYEE |NAME’

SAL列の書式を 100万ドルの位まで表示し、セントの単位を四捨五入し、3桁区切りにカンマを使用し、値がゼロのときは $0.00と表示するように設定するには、次のように入力します。

SQL> COLUMN SAL FORMAT $9,999,990.99

長い式を含む列に別名 NETを割り当て、結果をドル書式で表示し、NULL値には <NULL>を表示するには、次のように入力します。

SQL> COLUMN SAL+COMM+BONUS-EXPENSES-INS-TAX ALIAS NETSQL> COLUMN NET FORMAT $9,999,999.99 NULL ’<NULL>’

この例では、この列指定を 2つのコマンドに分けています。 最初のコマンドは別名 NETを定義し、2番目のコマンドは NETを使用して書式を定義しています。

また、最初のコマンドでは、SELECTコマンドで入力した(またはこれから入力する)のとまったく同じように式を入力する必要があります。違う場合は、SQL*Plusは COLUMNコマンドを適正な列に対応付けることができません。

REMARKSという名前の列の中の長い値を折り返すには、次のように入力します。

SQL> COLUMN REMARKS FORMAT A20 WRAP

Page 186: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

8-40 SQL*Plusユーザーズ・ガイドおよびリファレンス

次に例を示します。

CUSTOMER DATE QUANTITY REMARKS---------- --------- -------- --------------------123 25-AUG-86 144 This order must be s hipped by air freigh t to ORD

WRAPをWORD_WRAPで置換した場合、REMARKSは次のようになります。

CUSTOMER DATE QUANTITY REMARKS---------- --------- -------- ---------------------123 25-AUG-86 144 This order must be shipped by air freight to ORD

TRUNCATEを指定した場合、REMARKSは次のようになります。

CUSTOMER DATE QUANTITY REMARKS---------- --------- -------- --------------------123 25-AUG-86 144 This order must be s

現行の日付および各職種の名前を上部タイトルに出力するには、次のように入力します。 (日付変数の作成方法の詳細は、第 4章の「ページおよびレポートのタイトルとサイズの定義」の「タイトル内に現在の日付を表示する方法」を参照してください。)

SQL> COLUMN JOB NOPRINT NEW_VALUE JOBVARSQL> COLUMN TODAY NOPRINT NEW_VALUE DATEVARSQL> BREAK ON JOB SKIP PAGE ON TODAYSQL> TTITLE CENTER ’Job Report’ RIGHT DATEVAR SKIP 2 -> LEFT ’Job: ’ JOBVAR SKIP 2SQL> SELECT TO_CHAR(SYSDATE, ’MM/DD/YY’) TODAY, 2 ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO 3 FROM EMP WHERE JOB IN ('CLERK', 'SALESMAN') 4 ORDER BY JOB, ENAME;

Page 187: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

コマンド・リファレンス 8-41

2ページにわたるレポートは次のようになり、"Job Report"が現行サイズの行の中央にきます。

Job Report 11/23/98Job: CLERK

ENAME MGR HIREDATE SAL DEPTNO---------- ------- --------- ----------- ----------ADAMS 7788 14-JAN-87 1100 20JAMES 7698 03-DEC-81 950 30MILLER 7782 23-JAN-82 1300 10SMITH 7902 17-DEC-80 800 20

Job Report 11/23/98Job: CLERK

ENAME MGR HIREDATE SAL DEPTNO---------- ------- --------- ----------- ----------ALLEN 7698 20-JAN-81 1600 30MARTIN 7698 03-DEC-81 950 30MILLER 7782 23-JAN-82 1300 10SMITH 7902 17-DEC-80 800 20

DATE列のデフォルトの書式を ’YYYY-MM-DD’に変更するには、次のように入力します。

SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';

出力結果は次のようになります。

Session altered

変更内容を表示するには、次のような SELECT文を入力します。

SQL> SELECT HIREDATE 2 FROM EMP 3 WHERE EMPNO = 7839;

出力結果は次のようになります。

HIREDATE----------1981-11-17

ALTER SESSIONコマンドの詳細は、『Oracle8i SQLリファレンス』 を参照してください。

Page 188: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COLUMN

8-42 SQL*Plusユーザーズ・ガイドおよびリファレンス

SELECT文では、一部の SQL計算または関数(TO_CHARなど)の結果として、列幅が非常に広くなることがあります。 このような場合は、FORMATオプションを使用して列幅を変更します。

Page 189: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COMPUTE

コマンド・リファレンス 8-43

COMPUTE

用途用途用途用途選択した行のサブセットについて、各種の標準計算方法を使用してサマリー行を計算し出力するか、またはすべての COMPUTE定義をリスト表示します。 (サマリーの作成方法の詳細は、第 4章の「間隔の設定およびサマリー行によるレポートの明確化」を参照してください。)

構文構文構文構文COMP[UTE] [function [LAB[EL] text] ... OF {expr|column|alias} ... ON {expr|column|alias|REPORT|ROW} ...]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

function ...表 8-2に示す関数の 1つを指定します。 複数の関数を指定する場合は、関数と関数の間を空白で区切ります。

表表表表 8-2 COMPUTE関数関数関数関数

関数関数関数関数 計算計算計算計算 適用されるデータ型適用されるデータ型適用されるデータ型適用されるデータ型

AVG NULL以外の値の平均 NUMBER

COU[NT] NULL以外の値の数 すべての型

MAX[IMUM] 最大値 NUMBER、CHAR、NCHAR、VARCHAR2(VARCHAR)、

NVARCHAR2(NCHAR VARYING)

MIN[IMUM] 最小値 NUMBER、CHAR、NCHAR、VARCHAR2(VARCHAR)、

NVARCHAR2(NCHAR VARYING)

NUM[BER] 行の数 すべての型

STD NULL以外の値の標準偏差 NUMBER

SUM NULL以外の値の合計 NUMBER

Page 190: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COMPUTE

8-44 SQL*Plusユーザーズ・ガイドおよびリファレンス

LAB[EL] text

計算値に対応して出力されるラベルを定義します。 LABEL句を使用しなかった場合のデフォルトの textは、省略されていない関数キーワードです。 text に空白または句読点が含まれている場合は、一重引用符でテキストを囲む必要があります。 ラベルは左揃えで出力され、列幅または行サイズのいずれか小さい方に合わせて切り捨てられます。 ラベルの最大長は 500文字です。

計算された値のラベルは、指定したブレーク列に表示されます。 ラベルを抑止するには、ブレーク列に対して、COLUMNコマンドの NOPRINTオプションを使用します。

COMPUTEコマンドの中で同じ関数を反復使用すると、SQL*Plusは警告を発行し、その関数の最初のオカレンスだけを使用します。

ON REPORTおよび ON ROW計算では、SELECT文のリストに指定された最初の列にラベルが示されます。 SELECT文の中で最初にNOPRINT列を使用することによって、ラベルを抑止できます。 SELECT文 ON REPORTまたは ON ROWの最初の列の関数を計算する場合は、計算済みの値が最初の列に表示され、ラベルは表示されません。 ラベルを見るには、SELECTリストで最初にダミー列を選択します。

OF {expr|column|alias} ...OF句では、式または関数の参照を二重引用符で囲むことによって、SELECT文の中の式または関数の参照を指定できます。 列の名前および別名に引用符は必要ありません。

ON {expr|column|alias|REPORT|ROW} ...SQL*Plusがブレークとして使用するイベントを指定します。 (columnには、表もビューも追加できません。 これを行うには、SQL文の中でその列に別名を付けることができます。) このイベントが発生すると(つまり、式の値が変化するか、新しい ROWがフェッチされるか、レポートの終わりに達すると)、COMPUTEは計算済みの値を出力し、計算を再開します。

VAR[IANCE] NULL以外の値の平方偏差 NUMBER

表表表表 8-2 COMPUTE関数関数関数関数

関数関数関数関数 計算計算計算計算 適用されるデータ型適用されるデータ型適用されるデータ型適用されるデータ型

Page 191: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COMPUTE

コマンド・リファレンス 8-45

複数の COMPUTEコマンドの ON句で同じ列が参照されている場合は、最後の COMPUTEコマンドだけが適用されます。

ON句で SQL SELECT式または関数の参照を指定するには、その式または関数の参照を引用符で囲みます。 列の名前および別名に引用符は必要ありません。

すべての COMPUTE定義をリスト表示するには、句を指定せずに COMPUTEとだけ入力します。

使用方法使用方法使用方法使用方法計算が実行されるためには、次の条件がすべて満たされている必要があります。

■ OF句で参照している式、列または列の別名の少なくとも 1つが、SELECTコマンドの中でも指定されている。

■ ON句で参照している式、列または列の別名が、SELECTコマンドの中および最新のBREAK コマンドの中にも指定されている。

■ ON句で ROWまたは REPORTを参照する場合は、最新の BREAKコマンドの中でもROWまたは REPORTを参照する。

すべての COMPUTE定義を取り消すには、CLEAR COMPUTESコマンドを使用します。

例例例例"clerk"、"analyst"および "salesman"の各職種別に給与の小計を計算し、"TOTAL"という計算ラベルを付けるには、次のように入力します。

SQL> BREAK ON JOB SKIP 1SQL> COMPUTE SUM LABEL ’TOTAL’ OF SAL ON JOBSQL> SELECT JOB, ENAME, SAL 2 FROM EMP 3 WHERE JOB IN ('CLERK', 'ANALYST', 'SALESMAN') 4 ORDER BY JOB, SAL;

Page 192: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COMPUTE

8-46 SQL*Plusユーザーズ・ガイドおよびリファレンス

出力結果は次のようになります。

JOB ENAME SAL--------- ---------- ----------ANALYST SCOTT 3000 FORD 3000********* ----------TOTAL 6000

CLERK SMITH 800 JAMES 950 ADAMS 1100 MILLER 1300********* ----------TOTAL 4150

SALESMAN WARD 1250 MARTIN 1250 TURNER 1500 ALLEN 1600********* ----------TOTAL 5600

レポート上の 1,000未満の給与の合計を計算するには、次のように入力します。

SQL> COMPUTE SUM OF SAL ON REPORTSQL> BREAK ON REPORTSQL> COLUMN DUMMY HEADING ’’SQL> SELECT ’ ’ DUMMY, SAL, EMPNO 2 FROM EMP 3 WHERE SAL < 1000 4 ORDER BY SAL;

出力結果は次のようになります。

SAL EMPNO--- ---------- ----------- 800 7369 950 7900 ----------sum 5350

Page 193: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COMPUTE

コマンド・リファレンス 8-47

経理部門および販売部門の中での給与の平均と最高額を計算するには、次のように入力します。

SQL> BREAK ON DNAME SKIP 1SQL> COMPUTE AVG LABEL ’Dept Average’ -> MAX LABEL ’Dept Maximum’ -> OF SAL ON DNAMESQL> SELECT DNAME, ENAME, SAL 2 FROM DEPT, EMP 3 WHERE DEPT.DEPTNO = EMP.DEPTNO 4 AND DNAME IN ('ACCOUNTING', 'SALES') 5 ORDER BY DNAME;

出力結果は次のようになります。

DNAME ENAME SAL-------------- ---------- ----------ACCOUNTING CLARK 2450 KING 5000 MILLER 1300************** ----------Dept Average 2916.66667Dept Maximum 5000

SALES ALLEN 1600 WARD 1250 JAMES 950 TURNER 1500 MARTIN 1250 BLAKE 2850************** ----------Dept Average 1566.66667Dept Maximum 2850

部門 10および 20の給与の合計を計算し、計算ラベルを出力しないようにするには、次のようにします。

SQL> COLUMN DUMMY NOPRINTSQL> COMPUTE SUM OF SAL ON DUMMYSQL> BREAK ON DUMMY SKIP 1SQL> SELECT DEPTNO DUMMY, DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE DEPTNO <= 20 4 ORDER BY DEPTNO;

Page 194: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COMPUTE

8-48 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusは、次の出力を表示します。

DEPTNO ENAME SAL---------- ---------- ---------- 10 KING 5000 10 CLARK 2450 10 MILLER 1300 ---------- 8750

20 JONES 2975 20 FORD 3000 20 SMITH 800 20 SCOTT 3000 20 ADAMS 1100 ---------- 10875

ラベルを出力せずに、レポートの終わりに給与合計額のみが示されるようにするには、次のように入力します。

SQL> COLUMN DUMMY NOPRINTSQL> COMPUTE SUM OF SAL ON DUMMYSQL> BREAK ON DUMMYSQL> SELECT NULL DUMMY, DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE DEPTNO <= 20 4 ORDER BY DEPTNO;

SQL*Plusは、次の出力を表示します。

DEPTNO ENAME SAL---------- ---------- ---------- 10 KING 5000 10 CLARK 2450 10 MILLER 1300 20 JONES 2975 20 FORD 3000 20 SMITH 800 20 SCOTT 3000 20 ADAMS 1100 ---------- 19625

Page 195: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

CONNECT

コマンド・リファレンス 8-49

CONNECT

用途用途用途用途指定したユーザー名を Oracleに接続します。

構文構文構文構文CONN[ECT] [[logon] [AS [SYSOPER|SYSDBA]]]

logonは、次の構文に従ってください。

username[/password][@net_service_name]|/

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

username[/password]Oracleに接続するためのユーザー名およびパスワードを指定します。 usernameおよび passwordを省略すると、SQL*Plusは、入力を求めるプロンプトを表示します。 usernameの入力を求めるプロンプトに対してスラッシュ(/)を入力するか、そのまま [Return]を押した場合、SQL*Plus は、デフォルトのログインを使用してユーザーをログインします(下記の "/"を参照)。

passwordだけを省略すると、 SQL*Plusは passwordの入力を求めます。 プロンプトを表示するとき、SQL*Plusが端末画面にパスワードを表示することはありません。 パスワードを変更する方法については、この章の「PASSWORD」コマンドを参照してください。

net_service_nameNet8接続文字列で構成されます。 正確な構文は、Oracleインストレーションで使用中の Net8通信プロトコルによって異なります。 詳細は、ご使用のプロトコルに関する Net8のマニュアルを参照するか、データベース管理者に問い合せてください。 SQL*Plusは、データベース指定については、プロンプトを表示せず、その指定がないときはデフォルトのデータベースを使用します。

/オペレーティング・システム認証を使用するデフォルト・ログインを表します。 デフォルト・ログインを使用するときは、net_service_nameは入力できません。 デフォルト・ログインでは、SQL*Plusは通常、ユーザー名 OPS$nameを使用してユーザーをログインさせようとします。この nameは、使用中のオペレーティング・システム・ユーザー名です。 オペレーティング・システム認証の詳細は、『Oracle8i 管理者ガイド』 を参照してください。

Page 196: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

CONNECT

8-50 SQL*Plusユーザーズ・ガイドおよびリファレンス

AS [SYSOPER|SYSDBA]AS句は、SYSOPERまたは SYSDBAシステム権限を付与されているユーザーに対して、特権を付けて接続を許可します。

使用方法使用方法使用方法使用方法CONNECTは、現行のトランザクションをデータベースに対してコミットし、現行のユーザー名を Oracleから切断し、指定されたユーザー名で再接続します。

アカウントの有効期限が切れたユーザーとしてログインまたは接続した場合は、接続の前にパスワードを変更するように求めるプロンプトが表示されます。

アカウントがロックされている場合は、メッセージが表示され、DBAがロックを解除するまで、そのアカウントへの(そのユーザーとしての)接続は許可されません。

アカウント管理の詳細は、「CREATE」コマンドおよび「ALTER USER」コマンドを参照してください。また『Oracle8i SQLリファレンス』の「CREATE PROFILE」コマンドも参照してください。

例例例例Net8を介し、ユーザー名 SCOTTおよびパスワード TIGERを使用して、FLEETDBというNet8別名を持つデータベースに接続するには、次のように入力します。

SQL> CONNECT SCOTT/TIGER@FLEETDB

ユーザー名 SCOTTを使用して接続するときに、SQL*Plusがパスワードの入力を求めるプロンプトを表示するようにするには、次のように入力します。

SQL> CONNECT SCOTT

パスワード・ファイルの設定の詳細は、『Oracle8i 管理者ガイド』を参照してください。

パスワード・ファイルを使用して、現行ノードのインスタンスに、ユーザー名 SCOTTおよびパスワード TIGERの権限で接続するには、次のように入力します。

SQL> CONNECT SCOTT/TIGER AS SYSDBA

このとき、デフォルトのスキーマは、SCOTTではなく SYSになっています。

Page 197: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COPY

コマンド・リファレンス 8-51

COPY

用途用途用途用途問合せから、ローカル・データベースまたはリモート・データベース内の表にデータをコピーします。

構文構文構文構文COPY {FROM username[/password]@net_service_name| TO username[/password]@net_service_name| FROM username[/password]@net_service_name TO username[/password]@net_service_name} {APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column ...)] USING query

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

username[/password]コピー元とコピー先の Oracle ユーザー名 /パスワードを指定します。 FROM句の username/password は、データのソースを示し、TO句の username/password は、宛先を示します。 FROM句または TO句のいずれかのパスワードを指定しなかった場合、SQL*Plusはその入力を求めるプロンプトを表示します。 SQL*Plusは、このプロンプトに対するユーザーの応答を表示しません。

net_service_nameNet8接続文字列で構成されます。 COPYコマンドでは、net_service_name句の指定は必須です。 FROM句の net_service_nameはソースのデータベースを示し、TO句の net_service_name は、宛先のデータベースを示します。 正確な構文は、Oracleインストレーションで使用中のNet8通信プロトコルによって異なります。 詳細は、ご使用のプロトコルに関する Net8のマニュアルを参照するか、またはデータベース管理者に問い合せてください。

destination_table作成する表またはデータを追加する表を指定します。

(column, column, column, ...)destination_tableの中の列の名前を指定します。 名前に小文字または空白が含まれている場合は、その名前を二重引用符で囲む必要があります。

Page 198: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COPY

8-52 SQL*Plusユーザーズ・ガイドおよびリファレンス

列を指定する場合は、指定する列の数は、問合せによって選択した列の数と同じでなければなりません。 COPYによって destination_tableを作成する場合に、列を指定しないと、宛先表内でのコピーされた列の名前は、ソースでの名前と同じになります。

USING queryCOPYによってコピーする行および列を決定する SQL問合せ(SELECTコマンド)を指定します。

FROM username [/password] @net_service_nameユーザー名、パスワードおよびコピーするデータを含むデータベースを指定します。 FROM句を省略した場合のデフォルトのソースは、SQL*Plusが接続されているデータベース(つまり他のコマンドがアドレス指定するデータベース)です。 FROM句を挿入する必要があります。

FROM username [/password] @net_service_name宛先表を含むデータベースを指定します。 TO句を省略した場合のデフォルトの宛先は、SQL*Plusが接続されているデータベース(つまり他のコマンドがアドレスを指定するデータベース)です。 デフォルト以外の宛先データベースを指定するには、TO句を挿入する必要があります。

APPENDdestination_tableが存在する場合は、queryからその表へ行が挿入されます。 destination_tableが存在しない場合、COPYによってその表が作成されます。

CREATEdestination_tableを作成した後、query からその表に行が挿入されます。 destination_tableがすでに存在している場合は、COPYによってエラーが戻されます。

INSERTqueryから destination_tableに行が挿入されます。 destination_tableが存在しない場合は、COPYによってエラーが戻されます。 INSERTを使用するときは、USING query によって destination_tableの中の各列について 1列ずつ選択する必要があります。

REPLACEdestination_tableとその内容が queryからの行で置換されます。destination_tableが存在しない場合は、COPYによってその表が作成されます。 存在する場合は、COPYによってその既存の表が削除され、コピーしたデータを含む表で置換されます。

Page 199: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COPY

コマンド・リファレンス 8-53

使用方法使用方法使用方法使用方法Oracleデータベースと Oracle以外のデータベースの間でデータをコピーできるようにするため、NUMBER列は宛先の表の中でDECIMAL列に変更されます。 したがって、Oracleデータベース間でコピーする場合、精度がない NUMBER列は DECIMAL(38)列に変更されます。 Oracleデータベース間でコピーする場合は、SQLコマンド(CREATE TABLE ASおよび INSERT)を使用するか、列に精度が指定されているようにする必要があります。

SQL*Plus SET変数 LONGは、コピーする LONG列の長さを制限するために使用します。 LONG列に LONGの値より長いデータが含まれている場合、COPYによってそのデータが切り捨てられます。

SQL*Plusは、COPYが正常に完了するたびにコミットを実行します。 SQL*Plus SET変数COPYCOMMITを正の値 nに設定すると、SQL*Plusはレコード・バッチを n回コピーするたびにコミットを 1回行います。 バッチのサイズは、SQL*Plus SET変数 ARRAYSIZEによって決まります。

操作環境によっては、サービス名を二重引用符で囲む必要があります。

例例例例次のコマンドは、EMP表の全体をWESTEMPという名前の表にコピーします。 これらの表は 2つの異なるデータベース内にあります。 WESTEMPがすでに存在している場合は、その表およびその内容を置換します。 WESTEMPの中の列は、ソース表 EMPの中の列と同じ名前になります。

SQL> COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST -> REPLACE WESTEMP -> USING SELECT * FROM EMP

次のコマンドは、EMPから選択されたレコードを SQL*Plusが接続しているデータベースにコピーします。 SQL*Plusは、コピーの際に SALESMENを作成します。 SQL*Plusでは、列EMPNOおよび ENAMEだけがコピーされ、宛先でのこれらの列の名前は EMPNOおよびSALESMANになります。

SQL> COPY FROM SCOTT/TIGER@HQ -> CREATE SALESMEN (EMPNO,SALESMAN) -> USING SELECT EMPNO, ENAME FROM EMP -> WHERE JOB=’SALESMAN’

Page 200: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DEFINE

8-54 SQL*Plusユーザーズ・ガイドおよびリファレンス

DEFINE

用途用途用途用途ユーザー変数を指定し、それに CHAR値を割り当てるか、1つまたはすべての変数の値および変数型をリスト表示します。

構文構文構文構文DEF[INE] [variable]|[variable = text]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

variableどのユーザー変数の値を割り当てるか(またはリスト表示するか)を指定します。

textvariableに割り当てる CHAR値を指定します。 textに句読点または空白が含まれている場合は、テキストを一重引用符で囲みます。

variable = textユーザー変数を定義(命名)し、それに CHAR値を割り当てます。

variableの値と型をリスト表示するには、DEFINEに続けて variableを入力します。 すべてのユーザー変数の値と型をリスト表示するには、句を指定せずに、DEFINEとだけ入力します。

使用方法使用方法使用方法使用方法事前定義変数は、次のいずれかのイベントが発生するまでそれぞれの値を保持します。

■ その変数を参照する新しい DEFINEコマンドの入力

■ その変数を参照する UNDEFINEコマンドの入力

■ その変数を参照する ACCEPTコマンドの入力

■ COLUMNコマンドの NEW_VALUE句または OLD_VALUE句の中でその変数が参照され、後続の SQL SELECTコマンドでその列が参照される

■ SQL*Plusの終了

格納された問合せまたはコマンド・ファイルを実行するたびに、SQL*Plusは、variable を参照するそれぞれの置換変数(&variableまたは &&variableの書式)を、variable の値で置換します。 SQL*Plusは、UNDEFINE variableが入力されるまでは、このセッションで変数の値を求めるプロンプトを表示しません。

Page 201: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DEFINE

コマンド・リファレンス 8-55

DEFINEを使用して変数 _EDITORを定義できます。この変数は、SQL*Plus EDITコマンドによって起動されるホスト・システム・エディタを確立します。

定義した変数の値を複数の行に継続させた場合(SQL*Plusのコマンド継続文字を使用)、SQL*Plusは、結果の変数の中で、入力された各継続文字およびキャリッジ・リターンを空白で置換します。 たとえば、次のように入力したとします。

SQL> DEFINE TEXT = ’ONE-> TWO-> THREE’

SQL*Plusはこれを次のように解釈します。

SQL> DEFINE TEXT = ’ONE TWO THREE’

例例例例値MANAGERを変数 POSに割り当てるには、次のように入力します。

SQL> DEFINE POS = MANAGER

&POSに対する参照を含むコマンドを実行すると、SQL*Plusは、&POSを値MANAGERで置換し、 POS値の入力を求めるプロンプトは表示しません。

CHAR値 20を変数 DEPTNOに割り当てるには、次のように入力します。

SQL> DEFINE DEPTNO = 20

20という数値を入力しても、SQL*Plusは、2および 0という 2つの文字からなる CHAR値を DEPTNOに割り当てます。

DEPTNOの定義をリスト表示するには、次のように入力します。

SQL> DEFINE DEPTNODEFINE DEPTNO = "20" (CHAR)

この結果は、DEPTNOの値が 20であることを示しています。

Page 202: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DEL

8-56 SQL*Plusユーザーズ・ガイドおよびリファレンス

DEL

用途用途用途用途バッファの 1つ以上の行を削除します。

構文構文構文構文DEL [n|n m|n *|n LAST|*|* n|* LAST|LAST]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

バッファ内の現在行を削除するには、句を指定せずに、DELとだけ入力します。

使用方法使用方法使用方法使用方法DELを実行すると、バッファの次の行が(もしあれば)現在行になります。 DELを繰り返し入力することによって、複数の連続した行を削除できます。

n 行 nが削除されます。

n m 行 n~ mが削除されます。

n * 行 nから現在行までが削除されます。

n LAST 行 nから最終行までが削除されます。

* 現在行が削除されます。

* n 現在行から行 nまでが削除されます。

* LAST 現在行から最終行までが削除されます。

LAST 最終行が削除されます。

注意注意注意注意 : DELは SQL*Plusコマンドで、DELETEは SQLコマンドです。 SQL DELETEコマンドの詳細は、『Oracle8i SQLリファレンス』を参照してください。

Page 203: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DEL

コマンド・リファレンス 8-57

例例例例SQLバッファに次の問合せが含まれているとします。

1 SELECT ENAME, DEPTNO2 FROM EMP3 WHERE JOB = 'SALESMAN'4* ORDER BY DEPTNO

WHERE句を含む行を現在行にするには、次のように入力します。

SQL> LIST 3 3* WHERE JOB = 'SALESMAN'

続いて次のように入力します。

SQL> DEL

現在、SQLバッファには次の行が含まれています。

1 SELECT ENAME, DEPTNO2 FROM EMP3* ORDER BY DEPTNO

バッファの 2番目の行を削除するには、次のように入力します。

SQL> DEL 2

現在、SQLバッファには次の行が含まれています。

1 SELECT ENAME, DEPTNO2* ORDER BY DEPTNO

Page 204: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DESCRIBE

8-58 SQL*Plusユーザーズ・ガイドおよびリファレンス

DESCRIBE

用途用途用途用途指定した表、ビュー、またはシノニムの列定義をリスト表示する、または指定した関数またはプロシージャの仕様をリスト表示します。

構文構文構文構文DESC[RIBE] {[schema.]object[@net_service_name]}

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

schemaobject が設定されているスキーマを指定します。 schemaを省略した場合、SQL*Plusは、コマンド発行者自身の objectを指定したとみなします。

object記述する表、ビュー、型、プロシージャ、関数、パッケージまたはシノニムを指定します。

@net_service_nameobjectが存在しているデータベースに対応するデータベース・リンク名です。 異なるスキーマ内の別の表にアクセスできる権限の詳細は、『Oracle8i SQL リファレンス』を参照してください。

使用方法使用方法使用方法使用方法表、ビュー、型およびシノニムの記述には、次の情報が含まれます。

■ それぞれの列の名前

■ それぞれの列について NULL値が許されるかどうか(NULLか NOT NULLか)。

■ 列のデータ型、たとえば、NUMBER、CHAR、VARCHAR2 (VARCHAR)、LONG、DATE、RAW、 LONGRAWまたは ROWID

■ 列の精度(および、数値列の場合は、もしあれば位取り)。

DESCRIBEを実行すると、VARCHAR列が VARCHAR2の型とともに戻されます。

Page 205: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DESCRIBE

コマンド・リファレンス 8-59

DESCRIBEコマンドでは、SET DESCRIBEコマンドの深さレベルの設定に、オブジェクトを繰り返し記述できます。 1つのオブジェクトに複数のオブジェクト型が含まれている場合は、行番号および属性や列のインデントを表示することもできます。 詳細は、この章の「SET」コマンドを参照してください。

表示されるデータの幅を制御するには、SET LINESIZEを使用します。 詳細は、この章の「SET」コマンドを参照してください。

関数およびプロシージャの記述には、次の情報が含まれます。

■ PL/SQLオブジェクトの型(ファンクションまたはプロシージャ)

■ ファンクションまたはプロシージャの名前

■ 戻される値の型(ファンクションの場合)

■ 引数名、型、入力か出力か、デフォルト値(もしあれば)

例例例例表 EMPを記述するには、次のように入力します。

SQL> DESCRIBE EMP

SQL*Plusは、次の情報をリスト表示します。

Name Null? Type------------------------------ -------- ------------EMPNO NOT NULL NUMBER(4)ENAME CHAR(10)JOB JOB(9)MGR NUMBER(4)HIREDATE DATESAL NUMBER(7,2)COMM NUMBER(7,2)DEPTNO NUMBER(2)

CUSTOMER_LOOKUPという名前のプロシージャを記述 するには、次のように入力します。

SQL> DESCRIBE customer_lookup

Page 206: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DESCRIBE

8-60 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusは、次の情報をリスト表示します。

PROCEDURE customer_lookupArgument Name Type In/Out Default?---------------------- -------- -------- ---------CUST_ID NUMBER INCUST_NAME VARCHAR2 OUT

プロシージャ aprocおよび bprocを含むパッケージ APACKを作成し、記述するには、次のように入力します。

SQL> CREATE PACKAGE apack AS 2 PROCEDURE aproc(P1 CHAR, P2 NUMBER); 3 PROCEDURE bproc(P1 CHAR, P2 NUMBER); 4 END apack; 5 /SQL> DESCRIBE apack

SQL*Plusは、次の情報をリスト表示します。

PROCEDURE aprocArgument Name Type In/Out Default?---------------------- -------- -------- ---------P1 CHAR INP2 NUMBER INPROCEDURE bprocArgument Name Type In/Out Default?---------------------- -------- -------- ---------P1 CHAR INP2 NUMBER IN

属性 STREETおよび CITYを含むオブジェクト型 ADDRESSを作成し、記述するには、次のように入力します。

SQL> CREATE TYPE ADDRESS AS OBJECT 2 ( STREET VARCHAR2(20), 3 CITY VARCHAR2(20) 4 ); 5 /SQL> DESCRIBE address

Page 207: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DESCRIBE

コマンド・リファレンス 8-61

SQL*Plusは、次の情報をリスト表示します。

Name Null? Type------------------------------ -------- ------------STREET VARCHAR2(20)CITY VARCHAR2(20)

属性 ENAME、EMPADDR、JOBおよび SALを含むオブジェクト型 EMPLOYEEを作成し、記述するには、次のように入力します。

SQL> CREATE TYPE EMPLOYEE AS OBJECT 2 ( ENAME VARCHAR2(30), 3 EMPADDR ADDRESS, 4 JOB VARCHAR2(20), 5 SAL NUMBER(7,2) 6 ); 7 /SQL> DESCRIBE employee

SQL*Plusは、次の情報をリスト表示します。

Name Null? Type------------------------------ -------- ------------ENAME VARCHAR2(30)EMPADDR ADDRESSJOB VARCHAR2(20)SAL NUMBER(7,2)

オブジェクト型 addr_typeをオブジェクト型 ADDRESSの表として作成し、記述するには、次のように入力します。

SQL> CREATE TYPE addr_type IS TABLE OF ADDRESS; 2 /SQL> DESCRIBE addr_type

SQL*Plusは、次の情報をリスト表示します。

addr_type TABLE OF ADDRESSName Null? Type------------------------------ -------- ------------STREET VARCHAR2(20)CITY VARCHAR2(20)

Page 208: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DESCRIBE

8-62 SQL*Plusユーザーズ・ガイドおよびリファレンス

オブジェクト型 addr_varrayをオブジェクト型 ADDRESSの varrayとして作成し、記述するには、次のように入力します。

SQL> CREATE TYPE addr_varray AS VARRAY(10) OF ADDRESS; 2 /SQL> DESCRIBE addr_varray

SQL*Plusは、次の情報をリスト表示します。

addr_varray VARRAY(10) OF ADDRESSName Null? Type------------------------------ -------- ------------STREET VARCHAR2(20)CITY VARCHAR2(20)

列 DEPTNO、PERSONおよび LOCを含む表 dept_empを作成し、記述するには、次のように入力します。

SQL> CREATE TABLE dept_emp 2 ( DEPTNO NUMBER, 3 PERSON EMPLOYEE, 4 LOC NUMBER 5 ); 6 /SQL> DESCRIBE dept_empSQL*Plusは、次の情報をリスト表示します。

Name Null? Type------------------------------ -------- ------------DEPTNO NUMBERPERSON EMPLOYEELOC NUMBER

属性 NUMERATOR、DENOMINATORおよびMETHOD rational_orderを含むオブジェクト型 rationalを作成し、記述するには、次のように入力します。

SQL> CREATE OR REPLACE TYPE rational AS OBJECT 2 ( NUMERATOR NUMBER, 3 DENOMINATOR NUMBER, 4 MAP MEMBER FUNCTION rational_order - > RETURN DOUBLE PRECISION, 5 PRAGMA RESTRICT_REFERENCES 6 (rational_order, RNDS, WNDS, RNPS, WNPS) ); 7 /

Page 209: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DESCRIBE

コマンド・リファレンス 8-63

SQL> CREATE OR REPLACE TYPE BODY rational AS OBJECT 2 MAP MEMBER FUNCTION rational_order - > RETURN DOUBLE PRECISION IS 3 BEGIN 4 RETURN NUMERATOR/DENOMINATOR; 5 END; 6 END; 7 /SQL> DESCRIBE rational

SQL*Plusは、次の情報をリスト表示します。

Name Null? Type------------------------------ -------- ------------NUMERATOR NUMBERDENOMINATOR NUMBER

METHOD------MAP MEMBER FUNCTION RATIONAL_ORDER RETURNS NUMBER

オブジェクト emp_objectを記述し、SET DESCRIBEコマンドを使用して出力を書式設定するには、まず次のように入力します。

SQL> desc emp_object

SQL*Plusは、次の情報をリスト表示します。

Name Null Type ----------------------------------------- -------- ---------------------------- EMPLOYEE RECUR_PERSON DEPT RECUR_DEPARTMENT START_DATE DATE POSITION VARCHAR2(1) SAL RECUR_SALARY

SETコマンドを使用して DESCRIBEの出力を書式設定するには、次のように入力します。

SQL> set linesize 80SQL> set desc depth 2SQL> set desc indent onSQL> set desc line off

Page 210: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DESCRIBE

8-64 SQL*Plusユーザーズ・ガイドおよびリファレンス

オブジェクトの設定を表示するには、SHOWコマンドを使用して次のように入力します。

SQL> show descdescribe DEPTH 2 LINENUM OFF INDENT ONSQL> desc emp_object

SQL*Plusは、次の情報をリスト表示します。

Name Null Type ----------------------------------------- -------- ---------------------------- EMPLOYEE RECUR_PERSON NAME VARCHAR2(20) ADDR RECUR_ADDRESS ADDR1 RECUR_ADDRESS1 DOB DATE GENDER VARCHAR2(10) DEPT RECUR_DEPARTMENT DEPTNO NUMBER DEPT_NAME VARCHAR2(20) LOCATION VARCHAR2(20) START_DATE DATE POSITION VARCHAR2(1) SAL RECUR_SALARY ANNUAL_SAL NUMBER(10,2) EMP_TYPE VARCHAR2(1) COMM NUMBER(10,2) PENALTY_RATE NUMBER(5,2)

SQL DELETEコマンドの詳細は、『Oracle8i SQLリファレンス』を参照してください。

SET DESCRIBEコマンドおよび SHOW DESCRIBEコマンドの使用方法については、この章の「SET」コマンドおよび「SHOW」コマンドを参照してください。

Page 211: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

DISCONNECT

コマンド・リファレンス 8-65

DISCONNECT

用途用途用途用途データベースに対する保留中の変更をコミットし、現行ユーザー名を Oracleからログアウトしますが、SQL*Plusを終了しません。

構文構文構文構文DISC[ONNECT]

使用方法使用方法使用方法使用方法ユーザーを Oracleからログアウトさせるが、SQL*Plusの内部には残しておくという場合で、データベースへのユーザー・アクセスを防止するには、コマンド・ファイルの内部でDISCONNECTを使用します。 Oracleからログアウトしてホスト・コンピュータのオペレーティング・システムに制御を戻すには、EXITまたは QUITを使用します。

例例例例次に示すように、コマンド・ファイルを CONNECTコマンドで開始し、DISCONNECTコマンドで終了することができます。

SQL> GET MYFILE 1 CONNECT ... . . . . 15* DISCONNECT

Page 212: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

EDIT

8-66 SQL*Plusユーザーズ・ガイドおよびリファレンス

EDIT

用途用途用途用途指定したファイルの内容またはバッファの内容を対象として、ホスト・オペレーティング・システムのテキスト・エディタを起動します。

構文構文構文構文ED[IT] [file_name[.ext]]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

file_name[.ext]編集するファイル(通常はコマンド・ファイル)を指定します。

SQLバッファの内容をホスト・オペレーティング・システムのテキスト・エディタで編集するには、ファイル名を指定せずに EDITとだけ入力します。

使用方法使用方法使用方法使用方法拡張子を省略すると、SQL*Plusは、デフォルトのコマンド・ファイル拡張子(通常は SQL)が指定されたものとみなします。 デフォルトの拡張子の変更については、この章の SETコマンドの SUFFIX変数を参照してください。

ファイル名を指定すると、SQL*Plusは、そのディレクトリを見つけるために現在の作業ディレクトリを検索します。 現行の作業ディレクトリの中でファイルが見つからないと、SQL*Plusは、指定の名前のファイルを作成します。

ユーザー変数 _EDITORには、EDITによって起動されるテキスト・エディタの名前が含まれています。 _EDITORの値を変更することによって、テキスト・エディタを変更できます。 ユーザー変数の値の変更については、「DEFINE」コマンドを参照してください。 _EDITORが未定義であれば、EDITは、デフォルトのホスト・オペレーティング・システム・エディタの起動を試みます。

EDITを単独で指定すると、SQLバッファの内容を入れた AFIEDT.BUF というデフォルト名のファイルが(現行の作業ディレクトリ内に)作成され、テキスト・エディタが起動され、そのファイルの内容が表示されます。 ファイル AFIEDT.BUFがすでに存在している場合は、そのファイルが、バッファの内容に上書きされます。 SET EDITFILEコマンドを使用して、デフォルトのファイル名を変更できます。EDITコマンドでデフォルトのファイル名の設定を変更する方法については、この章の 「SET」コマンドの EDITFILE変数を参照してください。

注意注意注意注意 : デフォルトのファイル名 AFIEDT.BUFは、一部のオペレーティング・システムでは名前が異なる場合があります。

Page 213: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

EDIT

コマンド・リファレンス 8-67

ファイル名の指定がなく、バッファが空の場合は、EDITからエラー・メッセージが戻されます。

編集セッションから SQL*Plusに戻るには、テキスト・エディタの通常の終了方法に従って編集セッションを終了します。 エディタを終了するとき、SQL*Plusはファイルの名前をバッファにロードします。

例例例例ホスト・オペレーティング・システムのテキスト・エディタを使用して、拡張子 SQLの付いたファイル REPORTを編集するには、次のように入力します。

SQL> EDIT REPORT

Page 214: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

EXECUTE

8-68 SQL*Plusユーザーズ・ガイドおよびリファレンス

EXECUTE

用途用途用途用途PL/SQL文 1文を実行します。 EXECUTEコマンドは、ストアド・プロシージャを参照するPL/SQL文を実行する場合に便利です。 PL/SQLの詳細は、『PL/SQL ユーザーズ・ガイドおよびリファレンス』を参照してください。

構文構文構文構文EXEC[UTE] statement

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

statementPL/SQL文を指定します。

使用方法使用方法使用方法使用方法PL/SQL文があるために EXECUTEコマンドが 1行に収まらない場合は、次の例に示すように、SQL*Plusの継続文字(ハイフン)を使用します。

コマンドおよび PL/SQL文の長さが、SET LINESIZEで定義された長さを超えてはいけません。

例例例例次の EXECUTEコマンドは、バインド変数に値を割り当てます。

SQL> EXECUTE :n := 1

次の EXECUTEコマンドは、ストアド・プロシージャを参照する PL/SQL文を実行します。

SQL> EXECUTE -> :ID := EMP_MANAGEMENT.HIRE(’BLAKE’,’MANAGER’,’KING’,2990,’SALES’)

ストアド・プロシージャから戻される値がバインド変数 :IDに入ることに注意してください。バインド変数の作成方法については、この章の「VARIABLE」コマンドを参照してください。

Page 215: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

EXIT

コマンド・リファレンス 8-69

EXIT

用途用途用途用途SQL*Plusを終了し、オペレーティング・システムに制御を戻します。

構文構文構文構文{EXIT|QUIT} [SUCCESS|FAILURE|WARNING|n|variable|:BindVariable] [COMMIT|ROLLBACK]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

{EXIT|QUIT}どちらでも同じように使用できます。(QUITは EXITのシノニムです。)

SUCCESS正常に終了します。

FAILURE障害を示すリターン・コードが戻され、処理が終了します。

WARNING警告を示すリターン・コードが戻され、処理が終了します。

COMMIT終了する前に、保留中の変更がデータベースに保存されます。

nリターン・コードとして指定する整数を指定します。

variableSQL.SQLCODEのような、ユーザー定義変数またはシステム変数(バインド変数ではありません)を表します。EXIT variable では、variable の値がリターン・コードとして戻され、処理が終了します。

:BindVariableVARIABLEコマンドを使用して SQL*Plusで作成され、PL/SQLまたはその他のサブプログラムの中で参照される変数を指定します。:BindVariable を使用すると、サブプログラムを終了し、SQL*Plusの画面に戻ることができます。

ROLLBACKROLLBACK文が実行され、終了の前に、データベースに対する保留中の変更が破棄されます。

句を指定せずに EXITとだけ入力すると、コミットが実行され、値 SUCCESSが戻され、処理が終了します。

Page 216: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

EXIT

8-70 SQL*Plusユーザーズ・ガイドおよびリファレンス

使用方法使用方法使用方法使用方法EXITを使用すると、オペレーティング・システムのリターンコードを指定できます。 したがって、SQL*Plusコマンド・ファイルをバッチ・モードで実行したり、予期しないイベントの発生をプログラムによって検出したりできます。 検出の方法は、オペレーティング・システムによって異なります。 詳細は、ご使用のオペレーティング・システムの Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

キーワード SUCCESS、WARNINGおよび FAILUREは、オペレーティング・システム依存値を表します。 システムによっては、WARNINGと FAILUREの区別がない場合もあります。

オペレーティング・システムによっては、オペレーティング・システム・リターン・コードの範囲が制限されていることもあります。 その場合は、プラット・フォーム間での EXITnおよび EXIT variableの移植性が制限されます。 たとえば UNIXでは、リターン・コード用の記憶域は 1バイトしかありません。したがって、リターン・コードの範囲は 0(ゼロ)~ 255に制限されます。

EXITオプションに構文エラーがあった場合または非数値変数を使用した場合は、SQL*Plusによって EXIT FAILURE COMMITが実行されます。

条件付きの終了については、この章の「WHENEVER SQLERROR」コマンドおよび「WHENEVER OSERROR」コマンドを参照してください。

例例例例次の例では、まだコミットされていないすべてのトランザクションをコミットし、最後に実行された SQLコマンドまたは PL/SQLブロックのエラー・コードを戻します。

SQL> EXIT SQL.SQLCODE

リターン・コードの位置は、システムによって異なります。 ご使用のオペレーティング・システムがプログラムからデータを取り出す方法については、DBAに問い合わせてください。 SQL.SQLCODEの詳細は、この章の「TTITLE」コマンドを参照してください。

注意注意注意注意 : SUCCESS、FAILUREおよびWARNINGは、予約語ではありません。

Page 217: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

GET

コマンド・リファレンス 8-71

GET

用途用途用途用途ホスト・オペレーティング・システム・ファイルを SQLバッファにロードします。

構文構文構文構文GET file_name[.ext] [LIS[T]|NOL[IST]]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

file_name[.ext]ロードするファイル(通常はコマンド・ファイル)を指定します。

LIS[T]ファイルの内容がリスト表示されます。

NOL[IST]リスト表示が抑止されます。

使用方法使用方法使用方法使用方法ファイル拡張子を指定しなかった場合、SQL*Plusは、デフォルトのコマンド・ファイル拡張子(通常は SQL)が指定されたものとみなします。 デフォルトの拡張子の変更については、この章の「SET」コマンドの SUFFIX変数を参照してください。

指定するファイル名の一部に list という単語または fileという単語が含まれている場合は、ファイル名を二重引用符で囲む必要があります。

SQL*Plusは、現行の作業ディレクトリでファイルを検索します。

オペレーティング・システム・ファイルには、単一の SQL文または PL/SQLブロックが含まれていなければなりません。また、 文をセミコロンで終了させてはいけません。

SQL*Plusコマンド、または複数の SQL文か PL/SQLブロックが、オペレーティング・システム・ファイルから SQLバッファにロードされた場合、RUNコマンドまたはスラッシュ(/)コマンドを使用してバッファを実行すると、エラーになります。

SAVEコマンドで作成されたファイルをロードするには、GETコマンドを使用します。 詳細は、この章の「SAVE」コマンドを参照してください。

Page 218: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

GET

8-72 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例名前が YEARENDRPTで拡張子が SQLのファイルをバッファにロードするには、次のようにします。

SQL> GET YEARENDRPT

Page 219: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

HELP

Command Reference 8-73

HELP

用途用途用途用途SQL*Plusヘルプ・システムにアクセスします。

構文構文構文構文HELP [topic]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

topicSQL*Plusヘルプ・トピックを指定します。たとえば、COLUMNを指定できます。

ヘルプ・システムに関するヘルプを得るには、topicを指定しないでHELPのみを入力します。

使用方法使用方法使用方法使用方法HELPの後には、1つのトピックのみ入力できます。 トピックを略称(たとえば、COLUMNを COL)で指定できます。 ただし、略称したトピックのみを入力して、その略称が一意でない場合、SQL*Plusは略称に合致するすべてのトピックのヘルプを表示します。 たとえば、次のように入力したとします。

SQL> HELP EX

SQL*Plusは、EXECUTEコマンドの構文に続いて EXITコマンドの構文も表示します。

ヘルプが使用できないことを示す応答があった場合、データベース管理者に連絡してください。

例例例例SQL*Plusコマンドのリストを表示するには、次のように入力します。

SQL> HELP INDEX

Page 220: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

HOST

8-74 SQL*Plusユーザーズ・ガイドおよびリファレンス

HOST

用途用途用途用途SQL*Plusを終了しないで、ホスト・オペレーティング・システムのコマンドを実行します。

構文構文構文構文HO[ST] [command]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

commandホスト・オペレーティング・システムのコマンドを指定します。

オペレーティング・システムのプロンプトを表示するには、commandを指定しないで HOSTのみを入力します。 そうすると、複数のオペレーティング・システムのコマンドを入力できます。 SQL*Plusに戻る方法については、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

使用方法使用方法使用方法使用方法一部のオペレーティング・システムでは、HOSTのかわりに「$」(VSM)、「!」(UNIX)またはその他の文字を使用できます。 詳細は、ご使用のオペレーティング・システム用のOracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

ご使用のオペレーティング・システムによっては、HOSTコマンドにアクセスできない場合があります。 詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照するか、または DBAに問い合せてください。

SQL*Plusは、HOSTコマンドが発行される前に SQLTERMINATOR(デフォルトではセミコロン)を削除します。 これを回避するには、SQLTERMINATORをもう 1つ追加します。 SQLTERMINATORの詳細は、この章の「SET」コマンドの「SQLTERMINATOR」変数を参照してください。

例例例例オペレーティング・システムのコマンド ls *.sqlを実行するには、次のように入力します。

SQL> HOST ls *.sql

Page 221: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

INPUT

Command Reference 8-75

INPUT

用途用途用途用途バッファ内の現在行の後に、1行以上の新規テキストを追加します。

構文構文構文構文I[NPUT] [text]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

text追加するテキストを指定します。1行を追加するには、コマンド INPUTの後にテキスト行を入力します。コマンドとテキストの間は 1つの空白で区切ります。 1つ以上の空白で行を始めるには、INPUTおよび textの最初の非空白文字の間に複数の空白を入力します。

複数の行を追加するには、textを指定しないで INPUTを入力します。 INPUTは、それぞれの行に対するプロンプトを表示します。 INPUTを終了するには、NULL(空の)行を入力します。

使用方法使用方法使用方法使用方法バッファ内の行数より大きい行番号をコマンド・プロンプトで入力して、その番号に続けてテキストを入力すると、SQL*Plusは、そのテキストをバッファの最後の新規行に追加します。 その行番号に 0(ゼロ)を指定して、0に続けてテキストを入力すると、SQL*Plusは、バッファの最初に行を挿入します(その行が行 1になります)。

例例例例SQLバッファに次のコマンドが含まれているとします。

1 SELECT ENAME, DEPTNO, SAL, COMM2 FROM EMP

問合せに ORDER BY句を追加するには、次のように入力します。

SQL> LIST 2 2* FROM EMPSQL> INPUT ORDER BY ENAME

Page 222: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

INPUT

8-76 SQL*Plusユーザーズ・ガイドおよびリファレンス

LIST 2によって、行 2が現在行になります。 INPUTは、現在行の後に ORDER BY句を含む新規行を追加します。 SQLバッファに、次の行が含まれます。

1 SELECT ENAME, DEPTNO, SAL, COMM2 FROM EMP3* ORDER BY ENAME

2行のWHERE句を追加するには、次のように入力します。

SQL> LIST 2 2* FROM EMPSQL> INPUT 3 WHERE JOB = 'SALESMAN' 4 AND COMM 500 5

INPUTは、空白行が入力されるまで新規行の入力を求めるプロンプトを表示します。 SQLバッファに、次の行が含まれます。

1 SELECT ENAME, DEPTNO, SAL, COMM2 FROM EMP3 WHERE JOB = 'SALESMAN'4 AND COMM 5005 ORDER BY ENAME

Page 223: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

LIST

Command Reference 8-77

LIST

用途用途用途用途SQLバッファの 1つ以上の行をリスト表示します。

構文構文構文構文L[IST] [n|n m|n *|n LAST|*|* n|* LAST|LAST]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

すべての行をリスト表示するには、句を指定しないで LISTのみを入力します。

使用方法使用方法使用方法使用方法リスト表示された最終行が新しい現在行になります(アスタリスクが付きます)。

例例例例バッファの内容をリスト表示するには、次のように入力します。

SQL> LIST

次の例のような形式で、バッファ内のすべての行がリスト表示されます。

1 SELECT ENAME, DEPTNO, JOB 2 FROM EMP 3 WHERE JOB = 'CLERK' 4* ORDER BY DEPTNO

アスタリスクは、行 4が現在行であることを示しています。

n 行 nがリスト表示されます。

n m 行 n~ mがリスト表示されます。

n * 行 nから現在行までがリスト表示されます。

n LAST 行 nから最終行までがリスト表示されます。

* 現在行がリスト表示されます。

* n 現在行から行 nまでがリスト表示されます。

* LAST 現在行から最終行までがリスト表示されます。

LAST 最終行がリスト表示されます。

Page 224: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

LIST

8-78 SQL*Plusユーザーズ・ガイドおよびリファレンス

2行目のみを表示するには、次のように入力します。

SQL> LIST 2

次のように表示されます。

2* FROM EMP

現在行(この時点では行 2)から最終行までをリスト表示するには、次のように入力します。

SQL> LIST * LAST

次のように表示されます。

2 FROM EMP 3 WHERE JOB = 'CLERK' 4* ORDER BY DEPTNO

Page 225: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PASSWORD

Command Reference 8-79

PASSWORD

用途用途用途用途入力デバイスにパスワードをエコー表示させないで、パスワードを変更できるようにします。

構文構文構文構文PASSW[ORD] [username]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

usernameユーザーを指定します。 ユーザー名を指定しないと、usernameはデフォルトで現在のユーザーになります。

使用方法使用方法使用方法使用方法他のユーザーのパスワードを変更するには、適切な権限が付与されている必要があります。

パスワード変更の詳細は、この章の「CONNECT」コマンドを参照してください。

例例例例scott/tigerでログインしていて、パスワードを tigertigerに変更する場合は、次のようにします。

SQL> passwChanging password for scottOld password: tigerNew password: tigertigerRetype new password: tigertigerPassword changed

Page 226: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PASSWORD

8-80 SQL*Plusユーザーズ・ガイドおよびリファレンス

DBAとしてログインしていて、ユーザー useraのパスワード(現在は passa)を passuseraに変更するには、次のようにします。

SQL> passw useraChanging password for useraNew password: passuseraRetype new password: passuseraPassword changed

Page 227: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PAUSE

Command Reference 8-81

PAUSE

用途用途用途用途テキストを含む行に続けて空白行を表示し、ユーザーが [Return]を押すまで待つか、または空白行を 2行表示しユーザーの応答を待ちます。

構文構文構文構文PAU[SE] [text]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

text表示するテキストを指定します。

2行の空白行を表示するには、テキストを指定しないで PAUSEのみを入力します。

使用方法使用方法使用方法使用方法PAUSEは、常にユーザーの応答を待つので、ユーザーが確実に [Return]を押すように通知するメッセージを使用するのが最善です。

コマンド入力のソースをファイルとして指定した場合でも、PAUSEは端末から入力を読み込みます(端末を使用できる場合)。

レポートのページ間での一時停止については、この章で後述する「SET」コマンドの PAUSE変数を参照してください。

例例例例「Adjust paper and press RETURN to continue.」と出力し、ユーザーが [Return]を押すまで

SQL*Plusが待つようにするには、コマンド・ファイル内に次の PAUSEコマンドを含める必要があります。

SET PAUSE OFFPAUSE Adjust paper and press RETURN to continue.SELECT ...

Page 228: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PRINT

8-82 SQL*Plusユーザーズ・ガイドおよびリファレンス

PRINT

用途用途用途用途バインド変数の現在の値を表示します。 バインド変数の詳細は、『 PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

構文構文構文構文PRI[NT] [variable ...]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

variable...値を表示するバインド変数の名前を指定します。

すべてのバインド変数を出力するには、変数を指定しないで PRINTのみを入力します。

使用方法使用方法使用方法使用方法バインド変数は、VARIABLEコマンドを使用して作成します。 詳細および例については、この章の「VARIABLE」コマンドを参照してください。

出力の問合せと同じように、PRINT出力の書式を制御できます。 詳細は、第 4章で説明した書式設定の方法を参照してください。

エラーのない PL/SQLブロックで参照されたバインド変数、または EXCUTEコマンドで使用されたバインド変数を自動的に表示するには、SETコマンドの AUTOPRINT句を使用します。 詳細は、この章の「SET」コマンドを参照してください。

例例例例次の例は、PRINTコマンドを示しています。

SQL> VARIABLE n NUMBERSQL> BEGIN 2 :n := 1; 3 END;SQL> PRINT n N---------- 1

Page 229: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PROMPT

Command Reference 8-83

PROMPT

用途用途用途用途指定したメッセージまたは空白行を、ユーザーの画面に送ります。

構文構文構文構文PRO[MPT] [text]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

text表示するメッセージの textを指定します。 text を省略すると、PROMPTはユーザーの画面に空白行を表示します。

使用方法使用方法使用方法使用方法このコマンドは、ユーザーに情報を与えるために、コマンド・ファイル内で使用できます。

例例例例次の例は、ASKFORDEPTというコマンド・ファイル内で ACCEPTとともに PROMPTを使用していることを示しています。 ASKFORDEPTには、次の SQL*Plusコマンドおよび SQLコマンドが含まれています。

PROMPTPROMPT Please enter a valid departmentPROMPT For example: 10, 20, 30, 40ACCEPT NEWDEPT NUMBER PROMPT ’DEPT:> ’SELECT DNAME FROM DEPTWHERE DEPTNO = &NEWDEPT

STARTまたは@を使用して、このファイルを実行するとします。

SQL> @ASKFORDEPT

SQL*Plusは、次のプロンプトを表示します。

Please enter a valid departmentFor example: 10, 20, 30, 40DEPT:>

Page 230: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PROMPT

8-84 SQL*Plusユーザーズ・ガイドおよびリファレンス

プロンプト DEPT:>が表示されたら、部門番号を入力できます。 デフォルトでは、SQL*Plusは置換の前および後で &NEWDEPTを含む行をリスト表示します。また、DEPT:>のプロンプトで入力された番号に対応する部門名を表示します。

Page 231: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

RECOVER

Command Reference 8-85

RECOVER

用途用途用途用途1つ以上の表領域、1つ以上のデータファイル、またはデータベース全体に対してメディア回復を実行します。

構文構文構文構文RECOVER [AUTOMATIC][FROM location] {[STANDBY] DATABASE [UNTIL options][USING BACKUP CONTROLFILE] |TABLESPACE {tablespace [, tablespace ...]} |DATAFILE {datafilename [, datafilename ...]} |STANDBY {TABLESPACE tablespace [,tablespace ...] |DATAFILE datafilename [, datafilename ...]} UNTIL CONTROLFILE |LOGFILE filename |CONTINUE [DEFAULT] |CANCEL} [PARALLEL clause]

optionsは、次の構文に従ってください。。

{CANCEL|CHANGE integer|TIME date}

clauseは、次の構文に従ってください。

{PARALLEL ([DEGREE {integer|DEFAULT}|INSTANCES {integer|DEFAULT}]...)|NOPARALLEL}

項および句項および句項および句項および句それぞれの項および句の詳細は、次の説明を参照してください。

AUTOMATIC回復操作を続ける必要のある次のアーカイブ REDOログ・ファイルの名前を自動的に生成します。 Oracleは、ターゲットの REDOログ・ファイル名を生成するために、LOG_ARCHIVE_DEST(または LOG_ARCHIVE_DEST_1)パラメータおよび LOG_ARCHIVE_FORMATパラメータ(またはそのデフォルト)を使用します。 そのファイルが存在した場合、REDOはそのファイルが適用されるように含めます。 ファイルが存在しない場合、Oracleは提案として生成したファイル名をプロンプトに表示します。

AUTOMATICまたは LOGFILEのどちらも指定しなかった場合、Oracleは提案として、生成したファイル名をプロンプトに表示します。 生成されたファイル名を指定するか、または完全に権限のあるファイル名に置き換えられます。 アーカイブされたファイル名が、Oracleが生成したものと異なっているとわかっている場合は、LOGFILE句を使用して時間を削減できます。

Page 232: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

RECOVER

8-86 SQL*Plusユーザーズ・ガイドおよびリファレンス

FROM locationアーカイブ REDOログ・ファイル・グループが読み込まれた位置を指定します。 位置の値は、オペレーティング・システムの表記規則に従って完全に指定されたファイル位置でなければなりません。 このパラメータを省略すると、Oracleはアーカイブ REDOログ・ファイル・グループが初期化パラメータLOG_ARCHIVE_DESTまたは LOG_ARCHIVE_DEST_1で指定された位置に存在するとみなします。

STANDBY制御ファイルおよびプライマリ・データベースからコピーしたアーカイブREDOログ・ファイルを使用して、スタンバイ・データベースを回復します。 スタンバイ・データベースは、マウントされているがオープンされていない状態でなければなりません。

DATABASEデータベース全体を回復します。

UNTIL CANCEL不完全で、キャンセルベースの回復を指定します。 アーカイブ REDOログ・ファイルの提案されたファイル名をプロンプトに表示することによって回復は進みます。また、ファイル名のかわりに CANCELを指定すると回復が完全になります。

UNTIL CHANGE integer不完全で、変更ベースの回復を指定します。integerは、回復する最新の変更に続く System Change Number(SCN)の番号です。 たとえば、データベースを9番の SCNでトランザクションに復元する場合は、UNTIL CHANGE 10と指定します。

UNTIL TIME date不完全で、時間ベースの回復を指定します。 一重引用符を使用して、次の形式で指定します。

'YYYY-MM-DD:HH24:MI:SS'

USING BACKUP CONTROLFILE現在の制御ファイルのかわりに使用される制御ファイルのバックアップを指定します。

Page 233: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

RECOVER

Command Reference 8-87

TABLESPACE tablespace特定の表領域を回復します。tablespace は、現行データベースの表領域の名前です。 1文で、16の表領域を回復できます。

DATAFILE datafilename特定のデータ・ファイルを回復します。 データ・ファイルのすべての番号を指定できます。

STANDBY {TABLESPACE tablespace [,tablespace ...][DATAFILE datafilename [, datafilename ...]}

スタンバイ・データベース内の損失または破損したデータファイルや表領域を、プライマリ・データベースおよび制御ファイルからコピーしたアーカイブREDOログ・ファイルを使用して再構築します。

UNTIL CONTROLFILE古いスタンバイ・データ・ファイルまたは表領域の回復に、現行のスタンバイ・データベースの制御ファイルを使用するように指定します。

LOGFILE filename指定した REDOログ・ファイルを適用して、メディア回復を続行します。

CONTINUE [DEFAULT]スレッドを無効にするために中断した後、マルチインスタンス回復を続行します。

ログ・ファイルを何も指定していない場合、Oracleが自動的に生成した REDOログ・ファイルを使用して回復を続行します。 このオプションは、Oracleがファイル名に対してプロンプトを表示しないことを除いて、AUTOMATICを指定するのと同じです。

CANCELキャンセルベースの回復を中断します。

PARALLEL DEGREE integerそれぞれのインスタンス上のデータ・ファイルに、REDOエントリを適用するために使用される回復プロセスの番号を指定します。 DEGREEに対して指定した整数は、初期化パラメータ RECOVERY_PARALLELISMで上書きされます。

PARALLEL DEGREE DEFAULT回復されているデータ・ファイルの番号の 2倍は、使用する回復プロセスの番号であることを示しています。

Page 234: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

RECOVER

8-88 SQL*Plusユーザーズ・ガイドおよびリファレンス

PARALLEL INSTANCES integerパラレル回復に使用するインスタンスの番号を指定します。

DEGREEで指定された回復プロセスの番号は、それぞれのインスタンスで使用されます。 したがって、回復プロセスの合計数は、DEGREEで指定した数にINSTANCESで指定した数を掛けた数です。 INSTANCESは、Oracle Parallel Serverにのみ関連しています。

PARALLEL INSTANCES DEFAULTINSTANCES DEFAULTまたは INSTANCESキーワードを含まないと、オペレーティング・システム固有の結果を引き起こします。 INSTANCES DEFAULT設定の詳細は、『Oracle8i Parallel Server概要および管理』を参照してください。

NOPARALLEL回復が連続的に進むように指定します。 PARALLEL(DEGREE 1 INSTANCES 1)の指定は、NOPARALLELキーワードを指定するのと同じです。

PARALLELキーワードは、RECOVERY_PARALLELISM初期化パラメータを上書きします。 PARALLELキーワードで指定した番号は、データ・ファイルに REDOエントリを適用するために使用される回復プロセスの番号です。 PARALLELキーワードの詳細は、『Oracle8i Parallel Server概要および管理』を参照してください。

使用方法使用方法使用方法使用方法SYSOPERまたは SYSDBAとして Oracleに接続していなければならないということに注意してください。 マルチスレッド・サーバーを経由して接続した場合、RECOVERコマンドを使用できません。

データベース全体(すべての表領域)でメディア回復を実行するには、EXCLUSIVEがマウントされていてクローズ状態でなければなりません。

表領域でメディア回復を実行するには、データベースはマウントされていてオープンされていなければなりません。また、表領域はオフラインである必要があります。

データ・ファイルでメディア回復を実行するには、データベースがオープンしていて破損したデータ・ファイルのオフライン(そのファイルが SYSTEM表領域の一部でない限り)でマウントされた状態である必要があります。

RECOVERコマンドを使用する前に、以前のバックアップから破損したデータ・ファイルのコピーを復元しておく必要があります。 バックアップが作成されたときまでさかのぼって、すべてのアーカイブされた REDOログ・ファイルおよびオンラインの REDOログ・ファイルにアクセスできることを確認してください。

Page 235: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

RECOVER

Command Reference 8-89

回復時に他のログ・ファイルが必要な場合、プロンプトは必要とされるファイルの名前を提案します。 名前は、初期化パラメータ LOG_ARCHIVE_DESTおよび LOG_ARCHIVE_FORMATで指定された値から導出されます。 必要ならば、LOG_ARCHIVE_DESTで指定された宛先に回復に必要なアーカイブ REDOログ・ファイルのコピーを復元します。 SETLOGSOURCEコマンドで LOGSOURCE変数を設定することによって初期化パラメータを上書きできます。

回復時に、[Return]を押すことによって提案されたログ名を指定できます。ログ名のかわりに CANCELを入力することによって回復を取消しできます。また、プロンプトを進めないでファイルを自動選択するにはプロンプトで AUTOを入力します。

自動回復(つまり、SET AUTORECOVERY ON)を使用可能にする場合は、ファイル名をプロンプトに表示させないで回復を進めます。 状態を示すメッセージは、それぞれのログ・ファイルが適用されているときに表示されます。

通常のメディア回復が実行されている場合、完了した状態で戻ってきます。

回復および RECOVERコマンドの詳細は、 『Oracle8i管理者ガイド』および『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

例例例例データベース全体を回復するには、次のように入力します。

SQL> RECOVER DATABASE

指定した時間までにデータベースを回復するには、次のように入力します。

SQL> RECOVER DATABASE UNTIL TIME 23-NOV-98:04:32:00

データベースから 2つの表領域 ts_oneおよび ts_twoを回復するには、次のように入力します。

SQL> RECOVER TABLESPACE ts_one, ts_two

データベースからデータ・ファイル data1.dbを回復するには、次のように入力します。

SQL> RECOVER DATAFILE 'data1.db'

Page 236: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REMARK

8-90 SQL*Plusユーザーズ・ガイドおよびリファレンス

REMARK

用途用途用途用途コマンド・ファイルの中でコメントを開始します。 SQL*Plusは、コメントをコマンドとして解釈しません。

構文構文構文構文REM[ARK]

使用方法使用方法使用方法使用方法REMARKコマンドは、行の先頭に指定する必要があります。コメントは、その行の終わりで終了します。 コメントおよびコマンドは同じ行に指定できません。

SQLコメント・デリミタ /*...*/または ANSI/ISOコメント・デリミタ --...を使用してコマンド・ファイルにコメントを入力する方法については、第 3章の「コマンド・ファイルへのコメントの挿入」を参照してください。

例例例例次のコマンド・ファイルには、代表的なコメントがいくつか含まれています。

REM COMPUTE uses BREAK ON REPORT to break on end of tableBREAK ON REPORTCOMPUTE SUM OF "DEPARTMENT 10" "DEPARTMENT 20" -"DEPARTMENT 30" "TOTAL BY JOB" ON REPORTREM Each column displays the sums of salaries by job forREM one of the departments 10, 20, 30.SELECT JOB, SUM( DECODE( DEPTNO, 10, SAL, 0)) "DEPARTMENT 10", SUM( DECODE( DEPTNO, 20, SAL, 0)) "DEPARTMENT 20", SUM( DECODE( DEPTNO, 30, SAL, 0)) "DEPARTMENT 30", SUM(SAL) "TOTAL BY JOB"FROM EMPGROUP BY JOB

Page 237: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REPFOOTER

Command Reference 8-91

REPFOOTER

用途用途用途用途各レポートの下部に指定のレポート・フッターを配置し書式設定するか、または現行のREPFOOTER定義をリスト表示します。

構文構文構文構文REPF[OOTER] [PAGE] [printspec [text|variable] ...]|[OFF|ON]

項および句項および句項および句項および句REPFOOTERコマンド構文の中の項および句に関する追加情報については、REPHEADERコマンドを参照してください。

現行の REPFOOTER定義をリスト表示するには、句を指定しないで REPFOOTERのみを入力します。

使用方法使用方法使用方法使用方法テキストまたは変数の前に printspec句を入力しなかった場合、REPFOOTERは、テキストまたは変数を左揃えにします。

printspecには、定数および変数をいくつでも指定できます。 SQL*Plusは、定数および変数を指定時と同じ順序で表示し、それぞれの定数または変数をその直前の printspec句で指定されている位置および書式に設定します。

例例例例「END EMPLOYEE LISTING REPORT」を独立ページのレポート・フッターとして定義して、中央揃えにするには、次のように入力します。

SQL> REPFOOTER PAGE CENTER ’END EMPLOYEE LISTING REPORT’SQL> TTITLE RIGHT ’Page: ’ FORMAT 999 SQL.PNOSQL> SELECT ENAME, SAL 2 FROM EMP 3 WHERE SAL > 2000; Page: 1

注意注意注意注意 : SET EMBEDDEDが ONの場合、レポート・フッターは抑止されます。

Page 238: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REPFOOTER

8-92 SQL*Plusユーザーズ・ガイドおよびリファレンス

ENAME SAL---------- ----------JONES 2975BLAKE 2850CLARK 2450SCOTT 3000KING 5000FORD 3000 Page: 2 END EMPLOYEE LISTING REPORT

レポート・フッターの定義を変更しないで、レポート・フッターを抑止するには、次のように入力します。

SQL> REPFOOTER OFF

Page 239: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REPHEADER

Command Reference 8-93

REPHEADER

用途用途用途用途各レポートの上部に指定のレポート・ヘッダーを配置し書式設定するか、または現行のREPHEADER定義をリスト表示します。

構文構文構文構文REPH[EADER] [PAGE] [printspec [text|variable] ...]|[OFF|ON]

printspecには、text の配置および書式設定に使用される次の句のうちの 1つ以上を指定します。

COL nS[KIP] [n]TAB nLE[FT]CE[NTER]R[IGHT]BOLDFORMAT text

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。 これらの項および句は、REPFOOTERコマンドにも適用されます。

PAGE指定のレポート・ヘッダーを印刷した後、または指定のレポート・フッターを印刷する前に、新規ページが開始されます。

textレポート・ヘッダーまたはレポート・フッターのテキストを指定します。 1行に 2つ以上の語を入れるには、textを一重引用符で囲んで入力します。 デフォルトは NULLです。

variableユーザー変数、または次のシステム管理値のいずれかを指定します。

■ SQL.LNO(現行の行番号)

■ SQL.PNO(現行のページ番号)

■ SQL.RELEASE(現行の Oracleリリース番号)

Page 240: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REPHEADER

8-94 SQL*Plusユーザーズ・ガイドおよびリファレンス

■ SQL.CODE(現行のエラー・コード)

■ SQL.USER(現行のユーザー名)

これらの値の 1つを出力するには、適切な変数をレポート・ヘッダーまたはレポート・フッターの中で参照します。 FORMAT句で variableの形式を設定できます。

OFF定義に影響を与えないで、レポート・ヘッダーまたはレポート・フッターをオフ(表示を抑止)にします。

COL n現在行の列 n までインデントします(列 nを過ぎてしまっている場合は、後退します)。 ここでいう "列 "とは、印刷位置のことで、表の列ではありません。

S[KIP][n]新規行の先頭まで n回スキップします。nを省略すると、1回スキップします。n に 0(ゼロ)を入力すると、現在行の先頭まで戻ります。

TABn n列分前方に(n に負の値を入力した場合は後方に)スキップします。 ここでいう "列 "とは、印刷位置のことで、表の列ではありません。

LE[FT] CE[NTER] R[IGHT]現在行のデータを、それぞれ左揃え、中央揃え、および右揃えにします。 SQL*Plusは、printspec の終わりまで、または次の LEFT、CENTER、RIGHTまたは COLコマンドの後続のデータ項目を、1グループとして整列させます。 CENTERおよび RIGHTでは、SET LINESIZE値を使用して、後続のデータ項目の位置が計算されます。

BOLDデータを太字で印刷します。 SQL*Plusは、端末上で同じデータを 3回続けて出力することによって、太字印刷を行います。 一部のオペレーティング・システムでは、SQL*Plusからプリンタに太字指定のテキストを太字でなく 3回連続で印刷するという命令が出ることがあります。

FORMAT text 次の FORMAT句まで、またはこのコマンドの終わりまでの、後続のデータ項目の書式を決定する書式モデルを指定します。 書式モデルは、A10や $999などの text定数でなければなりません。書式設定および有効な書式モデルの詳細は、「COLUMN」コマンドの FORMAT句を参照してください。

Page 241: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REPHEADER

Command Reference 8-95

書式モデルのデータ型が指定のデータ項目のデータ型と合致しない場合、FORMAT句はその項目には影響しません。

指定のデータ項目の前に適切な FORMATモデルがない場合、SQL*Plusは、SET NUMFORMATで指定された書式に従って、NUMBER値を出力します。また、SET NUMFORMATが指定されていない場合はデフォルトの書式に従って、NUMBER値を出力します。 SQL*Plusは、デフォルトの書式に従ってDATE値を出力します。

デフォルトの書式の詳細は、この章の「COLUMN」コマンドの FORMAT句を参照してください。

現行の REPHEADER定義をリスト表示するには、句を指定しないで REPHEADERのみを入力します。

使用方法使用方法使用方法使用方法テキストまたは変数の前に printspec句を入力しなかった場合、REPHEADERは、テキストまたは変数を左揃えにします。

printspecには、定数および変数をいくつでも指定できます。 SQL*Plusは、定数および変数を指定時と同じ順序で表示し、それぞれの定数または変数をその直前の printspec句で指定されている位置および書式に設定します。

例例例例「EMPLOYEE LISTING REPORT」を独立ページのレポート・ヘッダーとして定義して、中央揃えにするには、次のように入力します。

SQL> REPHEADER PAGE CENTER ’EMPLOYEE LISTING REPORT’SQL> TTITLE RIGHT ’Page: ’ FORMAT 999 SQL.PNOSQL> SELECT ENAME, SAL 2 FROM EMP 3 WHERE SAL > 2000; Page: 1 EMPLOYEE LISTING REPORT Page: 2

Page 242: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

REPHEADER

8-96 SQL*Plusユーザーズ・ガイドおよびリファレンス

ENAME SAL---------- ----------JONES 2975BLAKE 2850CLARK 2450SCOTT 3000KING 5000FORD 30006 rows selected.

レポート・ヘッダーの定義を変更しないで、レポート・ヘッダーを抑止するには、次のように入力します。

SQL> REPHEADER OFF

Page 243: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

RUN

Command Reference 8-97

RUN

用途用途用途用途現在 SQLバッファに格納されている SQLコマンドまたは PL/SQLブロックをリスト表示して実行します。

構文構文構文構文R[UN]

使用方法使用方法使用方法使用方法RUNを実行すると、SQLバッファの最終行が現在行になります。

スラッシュ・コマンド(/)は、RUNと似た動作をしますが、SQLバッファ内のコマンドを画面に表示しません。

例例例例SQLバッファに次の問合せが含まれているとします。

SELECT DEPTNO FROM DEPT

RUNを使用して問合せをするには、次のように入力します。

SQL> RUN

出力結果は次のようになります。

1* SELECT DEPTNO FROM DEPT

DEPTNO---------- 10 20 30 40

Page 244: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SAVE

8-98 SQL*Plusユーザーズ・ガイドおよびリファレンス

SAVE

用途用途用途用途SQLバッファの内容を、ホスト・オペレーティング・システム・ファイル(コマンド・ファイル)に保存します。

構文構文構文構文SAV[E] file_name[.ext] [CRE[ATE]|REP[LACE]|APP[END]]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

file_name[.ext]バッファ内容を保存するコマンド・ファイルを指定します。

REP[LACE]既存のファイル内容が置換されます。 ファイルが存在しない場合、REPLACEはファイルを作成します。

APP[END]指定したファイルの終わりに、バッファの内容が追加されます。

使用方法使用方法使用方法使用方法拡張子を指定しなかった場合、SQL*Plusは、デフォルトのコマンド・ファイル拡張子(通常は SQL)が指定されたものとみなします。 このデフォルト拡張子の変更については、この章の「SET」コマンドの SUFFIX変数を参照してください。

SAVEコマンド句(CREATE、REPLACEまたは APPEND)と同じ名前でファイルを保存するには、ファイル拡張子を指定する必要があります。

SAVEを使用して SQLバッファの内容を保存すると、スラッシュ(/)を含む 1行がファイルの終わりに追加されます。

指定するファイル名が file という語の場合は、名前を一重引用符で囲む必要があります。

Page 245: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SAVE

Command Reference 8-99

例例例例名前が DEPTSALRPTで、拡張子が SQLのファイルにバッファ内容を保存するには、次のように入力します。

SQL> SAVE DEPTSALRPT

名前が DEPTSALRPTで、拡張子が OLDのファイルにバッファ内容を保存するには、次のように入力します。

SQL> SAVE DEPTSALRPT.OLD

Page 246: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-100 SQL*Plusユーザーズ・ガイドおよびリファレンス

SET

用途用途用途用途現行セッション用に SQL*Plus環境を変更するために、次のようなシステム変数を設定します。

■ NUMBER型データの表示幅

■ LONG型データの表示幅

■ 列ヘッダーの出力の有効または無効

■ 1ページあたりの行数

構文構文構文構文SET system_variable value

system_variable valueは、次に示すようなシステム変数とそれに続く値を表します。

APPI[NFO]{ON|OFF|text}ARRAY[SIZE] {15|n}AUTO[COMMIT] {OFF|ON|IMM[EDIATE]|n}AUTOP[RINT] {OFF|ON}AUTORECOVERY {ON|OFF]AUTOT[RACE] {OFF|ON|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]BLO[CKTERMINATOR] {.|c}CMDS[EP] {;|c|OFF|ON}COLSEP {_|text}COM[PATIBILITY] {V7|V8|NATIVE}CON[CAT] {.|c|OFF|ON}COPYC[OMMIT] {0|n}COPYTYPECHECK {OFF|ON}DEF[INE] {'&'|c|OFF|ON}DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]ECHO {OFF|ON}EDITF[ILE] file_name[.ext]EMB[EDDED] {OFF|ON}ESC[APE] {\|c|OFF|ON}FEED[BACK] {6|n|OFF|ON}FLAGGER {OFF|ENTRY|INTERMED[IATE]|FULL}FLU[SH] {OFF|ON}HEA[DING] {OFF|ON}HEADS[EP] {||c|OFF|ON}INSTANCE [instance_path|LOCAL]

Page 247: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-101

LIN[ESIZE] {80|n}LOBOF[FSET] {n|1}LOGSOURCE [pathname]LONG {80|n}LONGC[HUNKSIZE] {80|n}NEWP[AGE] {1|n|NONE}NULL textNUMF[ORMAT] formatNUM[WIDTH] {10|n}PAGES[IZE] {24|n}PAU[SE] {OFF|ON|text}RECSEP {WR[APPED]|EA[CH]|OFF}RECSEPCHAR {_|c}SERVEROUT[PUT] {OFF|ON} [SIZE n] [FOR[MAT] {WRA[PPED]| WOR[D_WRAPPED]|TRU[NCATED]}]SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}SHOW[MODE] {OFF|ON}SQLBL[ANKLINES] {ON|OFF}SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}SQLCO[NTINUE] {> |text}SQLN[UMBER] {OFF|ON}SQLPRE[FIX] {#|c}SQLP[ROMPT] {SQL>|text}SQLT[ERMINATOR] {;|c|OFF|ON}SUF[FIX] {SQL|text}TAB {OFF|ON}TERM[OUT] {OFF|ON}TI[ME] {OFF|ON}TIMI[NG] {OFF|ON}TRIM[OUT] {OFF|ON}TRIMS[POOL] {ON|OFF}UND[ERLINE] {-|c|ON|OFF}VER[IFY] {OFF|ON}WRA[P] {OFF|ON}

項および句項および句項および句項および句それぞれの項、句またはシステム変数の詳細は、次の説明を参照してください。

APPI[NFO]{ON|OFF|text}DBMS_APPLICATION_INFOパッケージを介してコマンド・ファイルが自動登録されるように設定します。 この設定によって、各コマンド・ファイルのパフォーマンスおよびリソースの使用状況を DBAが監視できます。 V$SESSIONおよび V$SQLAREA仮想表のMODULE列には、登録名が表示されます。 DBMS_APPLICATION_INFO.READ_MODULEプロシージャを使用して、登録名を読み込むこともできます。

Page 248: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-102 SQL*Plusユーザーズ・ガイドおよびリファレンス

ONを指定すると、@コマンド、@@コマンドまたは STARTコマンドによって起動されたコマンド・ファイルが登録されます。 OFFを指定すると、コマンド・ファイルの登録が使用禁止になります。 そのかわりに、textの現在の設定値が登録されます。textには、コマンド・ファイルが実行されていない場合、または APPINFOが OFFの場合に登録するテキストを指定します。 textのデフォルトは、"SQL*Plus"です。 textに複数の語を入力する場合、それらの語全体を引用符で囲む必要があります。 textの最大長は、DBMS_APPLICATION_INFOパッケージによって制限されます。

登録名の書式は、nn@ xfilenameです。nnは、コマンド・ファイルの深さレベルです。x は、コマンド・ファイル名を切り捨てる場合は「< 」、そうでない場合は空白です。filenameはコマンド・ファイル名で、DBMS_APPLICATION_INFOパッケージ・インタフェースで許可されている長さまで切り捨てられる場合があります。

DBMS_APPLICATION_INFOパッケージの詳細は、『Oracle8iチューニング』を参照してください。

ARRAY[SIZE] {15|n}SQL*Plusが一度にデータベースからフェッチするバッチ と呼ばれる行の数を設定します。 有効な値は、1~ 5000です。値を大きくすると、多数の行をフェッチする問合せおよび副問合せの効率は増大しますが、必要なメモリーも多くなります。 100より大きい値を使用しても、パフォーマンスはほとんど向上しません。 ARRAYSIZEを指定しても、効率を上げる以外に SQL*Plus操作の結果に対して影響はありません。

AUTO[COMMIT]{OFF|ON|IMM[EDIATE]|n}Oracleがデータベースに対する保留中の変更をコミットする時点を制御します。 ONを指定すると、INSERT、UPDATE、DELETEの各コマンドまたはPL/SQLブロックが正常に実行された後で、データベースに対する保留中の変更がコミットされます。 OFFを指定すると、自動コミットが抑止されるので、手動で(たとえば、SQLコマンドの COMMITを使用して)変更をコミットする必要があります。 IMMEDIATEを指定すると、ONオプションと同じ効果が得られます。n を指定すると、n 個の SQL INSERT、UPDATE、DELETEコマンドまたは PL/SQLブロックが正常に実行された後で、データベースに対する保留中の変更がコミットされます。nは、0(ゼロ)より大きく、2,000,000,000より小さくなければなりません。文カウンタは、次の処理が正常に完了した後で、0にリセットされます。

注意注意注意注意 : この機能を使用するには、DBMS_APPLICATION_INFOパッケージへのアクセス権が必要です。 DBMS_APPLICATION_INFOパッケージを作成するには、DBMSUTIL.SQL(この名前はご使用のオペレーティング・システムによって異なります)を SYSとして実行します。 DBMSUTIL.SQLは、Oracle8データベース・サーバー製品の一部です。

Page 249: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-103

■ n個の INSERT、UPDATE、DELETEコマンドまたは PL/SQLブロック

■ 1つのコミット

■ 1つのロールバック

■ 1個の SET AUTOCOMMITコマンド

AUTOP[RINT] {OFF|ON}バインド変数の自動出力を設定します。 ONまたは OFFによって、SQL*Plusがバインド変数(正常に実行された PL/SQLブロックで参照されているか、または EXECUTEコマンドで使用されているもの)を自動的に表示するかどうかを制御します。 バインド変数の表示の詳細は、この章の「PRINT」コマンドを参照してください。

AUTORECOVERY [ON|OFF]ONを指定すると、回復時に必要なアーカイブ REDOログ・ファイルのデフォルトのファイル名を自動的に適用するために RECOVERコマンドが設定されます。 AUTORECOVERYに ONが指定されると、予期できる名前で予期できる位置に必要なファイルが提供されるので、対話は必要ありません。 AUTORECOVERYが ONの場合に使用されるファイル名は、初期化パラメータ LOG_ARCHIVE_DESTおよび LOG_ARCHIVE_FORMATの値から導出されます。

OFFを指定すると、デフォルト・オプションとして、手動でファイル名を入力するか、または提案されたデフォルトのファイル名を指定するかを選択できます。

AUTOT[RACE] {OFF|ON|TRACE[ONLY]} [EXP[LAIN] [STAT[ISTICS]]正常に実行された SQL DML文(SELECT、INSERT、UPDATEまたはDELETE)のレポートが表示されます。 レポートには、実行統計および問合せ実行パスを含めることができます。

OFFを指定すると、トレース・レポートが表示されません。 ONを指定すると、トレース・レポートが表示されます。 TRACEONLYを指定すると、トレース・レポートは表示されますが、問合せデータは、存在しても出力されません。 EXPLAINを指定すると、EXPLAIN PLANが実行されて、問合せ実行パスが表示されます。 STATISTICSを指定すると、SQL文統計が表示されます。

注意注意注意注意 : この機能の場合は、実際に含まれている SQLコマンドの数に関係なく、1つの PL/SQLブロックが 1つのトランザクションとみなされます。

Page 250: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-104 SQL*Plusユーザーズ・ガイドおよびリファレンス

明示オプションを指定しないで、ONまたは TRACEONLYを使用すると、デフォルトで EXPLAIN STATISTICSが使用されます。

TRACEONLYオプションは、大きな問合せデータを抑止する場合に有効です。 STATISTICSを指定すると、SQL*Plusは、サーバーから問合せデータをフェッチしますが、データは表示しません。

AUTOTRACEレポートは、文が正常に完了した後で出力されます。

実行計画および統計表示については、『Oracle8i チューニング』を参照してください。

SQL*Plusが STATISTICSレポートを作成すると、データベースへの 2番目の接続が自動的に確立されます。 STATISTICSオプションが OFFに設定されたか、または SQL*Plusからログアウトした場合に、この接続は切断されます。

AUTOTRACEレポートの書式は、接続されているサーバーのバージョンおよびサーバーの構成によって異なります。

FIPSフラグ付けが使用可能な状態のときは、AUTOTRACEは使用できません。

AUTOTRACEの詳細は、第 3章の「文のトレース」を参照してください。

BLO[CKTERMINATOR] {....|c}cに、PL/SQLブロックを終了するために使用する非英数文字を設定します。ブロックを実行するには、RUNコマンドまたは /(スラッシュ)コマンドを発行する必要があります。

CMDS[EP] {;|c|OFF|ON}cに、1行に入力する複数の SQL*Plusコマンドを区切るために使用する、非英数文字を設定します。ONまたは OFFによって、1行に複数のコマンドを入力できるかどうかを制御します。ONを指定すると、コマンド・セパレータ文字は自動的にセミコロン(;)に設定されます。

COLSEP { |text}SELECTによって選択された列の間に出力するテキストを設定します。 COLSEP変数に空白または句読記号が含まれている場合は、一重引用符でテキストを囲む必要があります。 textのデフォルト値は単一の空白です。

Page 251: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-105

複数行を含む行の場合、異なる行を開始する列の間には列セパレータは出力されません。 列セパレータは、BREAK...SKIP nによって生成される空白行には表示されず、レコード・セパレータが列セパレータで上書きされることもありません。 詳細は、このコマンドの RECSEP句を参照してください。

COM[PATIBILITY]{V7|V8|NATIVE}現行の接続先である Oracleのバージョンを指定します。 COMPATIBILITYは、Oracle7なら V7に、Oracle8および Oracle8iなら V8に設定します。 データベース側の判別によって設定が決まるようにするには、COMPATIBILITYをNATIVEに設定します(たとえば、Oracle8または Oracle8iに接続されていると、デフォルトによって V8に設定されます)。 COMPATIBILITYは、接続先のOracleのバージョンに正しく設定する必要があります。この設定に誤りがあると、SQLコマンドを実行できません。 ただし、Oracle8iに接続している場合でも、COMPATIBILITYに V7を設定することはできます。 こうすると、Oracle7 SQLを Oracle8iに対して実行できます。

CON[CAT] {.|c|OFF|ON} 通常なら、SQL*Plusが置換変数名の一部として解釈する文字を、変数の直後に続けて指定する場合、置換変数の指定を終了させるために使用できる文字を設定します。 CONCATをオンに切り替えると、SQL*Plusは CONCATの値をピリオドにリセットします。

COPYC[OMMIT] {0|n}COPYコマンドで、データベースに対する変更をコミットするときの基準となるバッチの数を制御します。 COPYでは、n個の行バッチがコピーされるたびに、宛先データベースへの行がコミットされます。 有効な値は 0~ 5000です。ARRAYSIZE変数を使用して、バッチのサイズを設定できます。 COPYCOMMITを 0に設定すると、COPYではコピー操作が終わったときにのみコミットします。

COPYTYPECHECK {OFF|ON}COPYコマンドを使用して表にデータを挿入または追加する間、データ型の比較を抑止します。 このため、CHARを DB2 DATEにコピーしなければならないDB2へのコピーが容易になります。

DEF[INE] {&|c|OFF|ON}cに、接頭辞置換変数に使用される文字を設定します。ONまたは OFFによって、SQL*Plusコマンドを走査して、見つけた置換変数をその値で置き換えるかを制御します。 ONを指定すると、cの値は、最近使用された文字に変わらず、デフォルトの ’&’に戻ります。 DEFINEを OFFに設定すると、SCAN変数の設定が上書きされます。 SCAN変数の詳細は、付録 Fの「SET SCAN」コマンドを参照してください。

Page 252: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-106 SQL*Plusユーザーズ・ガイドおよびリファレンス

DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]オブジェクトを繰り返し説明するための深さレベルを設定します。 DEPTH句の有効範囲は、1~ 50です。SET DESCRIBE DEPTH ALLを設定する場合、深さは最大レベルの 50に設定します。 1つのオブジェクトに複数のオブジェクト型が含まれている場合は、行番号および属性や列のインデントを表示することもできます。 SET LINESIZEコマンドを使って、表示されるデータ幅を制御します。

オブジェクト説明の詳細は、この章の「DESCRIBE」コマンドを参照してください。

ECHO {OFF|ON}STARTコマンドの実行時に、コマンド・ファイル内の各コマンドの実行時にそのコマンドをリスト表示するかどうかを制御します。 ONを指定すると、コマンドがリスト表示されます。OFFを指定すると、リスト表示が抑止されます。

EDITF[ILE] file_name[.ext]EDITコマンド用のデフォルトのファイル名を設定します。 EDITコマンドの詳細は、この章の「EDIT」コマンドを参照してください。

パスまたはファイル拡張子(またはその両方)を指定できます。 デフォルトの拡張子の変更については、このコマンドの SUFFIX変数を参照してください。 デフォルトのファイル名およびファイル名の最大長は、オペレーティング・システムによって異なります。

EMB[EDDED] {OFF|ON}ページのどこから各レポートが始まるかを制御します。 OFFを指定すると、各レポートは新しいページの一番上から始まります。 ONを指定すると、新しいページのどこからでもレポートを開始できます。 直前のレポートが終了した直後に次のレポートを出力するには、EMBEDDEDを ONに設定します。

ESC[APE] {\|c|OFF|ON}エスケープ文字として入力する文字を定義します。 OFFを指定すると、エスケープ文字の定義が解除されます。 ONを指定すると、エスケープ文字が使用可能になります。 ONを指定すると、cの値がデフォルトの ’\’に戻ります。

置換文字(SET DEFINEで指定された文字)の前にエスケープ文字を指定することによって、SQL*Plusにその置換文字を変数置換のための要求としてでなく通常の文字として処理するように指示できます。

Page 253: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-107

FEED[BACK] {6|n|OFF|ON}問合せによって少なくとも n個のレコードを選択する場合に、問合せから戻されたレコードの数を表示します。 ONまたは OFFによって、この表示をオンまたはオフにできます。 フィードバックを ONに設定すると、nが 1に設定されます。フィードバックを 0に設定することは、OFFに設定するのと同じです。

FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}SQL文が ANSI/ISO SQL92規格に準拠していることを確認するためのチェックが実行されます。 規格外の構成体が見つかると、Oracle Serverは、その構成体にエラーのフラグを付け、違反のある構文を表示します。 これは、SQL言語の ALTER SESSION SET FLAGGERコマンドと同等に機能します。

データベースに接続されていない場合でも、SET FLAGGERを実行できます。 FIPSフラグ付けは、SET FLAGGER OFF(または ALTER SESSION SET FLAGGER = OFF)コマンドが成功するか、または SQL*Plusを終了するまでは、SQL*Plusセッション全体にわたって有効な状態のままになっています。

FIPSフラグ付けを使用可能にすると、CONNECT、DISCONNECTおよびALTER SESSION SET FLAGGERコマンドが成功した場合でも、SQL*Plusはこれらのコマンドに対して警告を表示します。

FLU[SH] {OFF|ON}出力をユーザーの表示デバイスにいつ送るかを制御します。 OFFを指定すると、ホスト・オペレーティング・システムは出力をバッファに格納できます。 ONを指定すると、バッファリングは使用禁止になります。

OFFは、コマンド・ファイルを非対話形式で実行する場合(つまり、コマンド・ファイルの実行が完了するまで出力かプロンプト、またはその両方を表示させる必要がない場合)のみ使用します。 FLUSH OFFを使用すると、プログラム I/Oの量が減り、パフォーマンスが向上する場合があります。

HEA[DING] {OFF|ON}レポートへの列ヘッダーの出力を制御します。 ONを指定すると、列ヘッダーがレポートに出力されます。OFFを指定すると、列ヘッダーの出力が抑止されます。

SET HEADING OFFコマンドは、表示される列幅に影響しません。そのコマンドは、列ヘッダーの出力を抑止するだけです。

Page 254: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-108 SQL*Plusユーザーズ・ガイドおよびリファレンス

HEADS[EP] {||c|OFF|ON}ヘッダーのセパレータ文字として入力する文字を定義します。 ヘッダー区切り文字は、英数字またはホワイト・スペースであってはなりません。 ヘッダー区切り文字を、COLUMNコマンドの中で、および旧形式の BTITLEおよびTTITLEの中で使用して、列ヘッダーまたはタイトルを複数の行に分割できます。 ONまたは OFFによって、このヘッダー分割をオンまたはオフにできます。 ヘッダー分割を OFFにすると、SQL*Plusは、ヘッダー区切り文字を他の文字と同様に出力します。 ONを指定すると、cの値がデフォルトの ’|’に戻ります。

INSTANCE[instance_path|LOCAL]指定したインスタンス・パスを、ご使用のセッション用にデフォルト・インスタンスに変更します。 SET INSTANCEコマンドを使用して、データベースへは接続しません。 デフォルト・インスタンスは、インスタンスが何も指定されていないときにコマンドに対して使用されます。

SET INSTANCEを最初に使用する前の一部のコマンドは、デフォルト・インスタンスと通信します。

ご使用のオペレーティング・システムでデフォルト値のインスタンスをリセットするには、instance_pathを指定しないで SET INSTANCEを入力するか、または SET INSTANCE LOCALを入力します。 初期デフォルト・インスタンスの設定方法の詳細は、ご使用のオペレーティング・システム固有の Oracleマニュアルを参照してください。

一部のインスタンスに現在接続されていない場合は、インスタンスのみを変更できます。 つまり、現行インスタンスから切断したことを最初に確認する必要があります。インスタンスを設定または変更し、使用可能にして新しく設定するには、インスタンスを再接続します。

このコマンドは、Net8が実行されているときのみ発行されます。 指定するインスタンス・パスとして、一部の有効な Net8接続文字列を使用できます。 ご使用のオペレーティング・システムで Net8接続文字列を指定する方法の詳細は、オペレーティング・システム固有の Oracleマニュアルを参照してください。 インスタンス・パスの最大長は、64文字です。

LIN[ESIZE] {80|n}SQL*Plusが新しい行を開始する前に、1行に表示する文字の合計数を設定します。 TTITLE、BTITLE、REPHEADERおよび REPFOOTERの場合の、中央揃えおよび右揃えのテキストの位置も、この値によって制御されます。 LINESIZEは、値 1から最大値(システムによって異なります)の範囲内で定義できます。 詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

Page 255: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-109

LOBOF[FSET] {n|1}CLOBおよび NCLOBデータを取り出して表示する開始位置を設定します。

LOGSOURCE [pathname]回復中に取り出されたアーカイブ・ログの位置を指定します。 デフォルト値は、LOG_ARCHIVE_DEST初期化パラメータによって設定されます。 パス名なしのSET LOGSOUCEコマンドを使用して、デフォルト位置を復元します。

LONG {80|n}LONG、CLOBおよび NCLOB値を表示する場合、および LONG値をコピーする場合の最大幅を(バイト数で)設定します。 nの最大値は、2GBです。

LONGC[HUNKSIZE] {80|n}SQL*Plusが LONG、CLOBまたは NCLOB値を取り出すときの増分値のサイズを(バイト数で)設定します。

NEWP[AGE] {1|n|NONE}各ページの最上部から上部タイトルまでの間に入れる空白行の数を設定します。 値 0を指定すると、(最初のページも含めて)各ページの開始位置に改ページ文字が設定され、ほとんどの端末で画面がクリアされます。 NEWPAGEをNONEに設定した場合、SQL*Plusはレポートのページ間で空白行または改ページ文字を出力しません。

NULL textSQL SELECTコマンドの実行結果の中で NULL値を表すテキストを設定します。 指定の列の NULL変数の設定を上書きするには、COLUMNコマンドのNULL句を使用します。

NUMF[ORMAT] format数値を表示するためのデフォルトの書式を設定します。 formatに、数値書式を入力します。 数値書式の詳細は、この章の「COLUMN」コマンドの FORMAT句を参照してください。

NUM[WIDTH] {10|n}数値を表示するためのデフォルトの幅を設定します。 数値書式の詳細は、この章の「COLUMN」コマンドの FORMAT句を参照してください。

Page 256: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-110 SQL*Plusユーザーズ・ガイドおよびリファレンス

PAGES[IZE] {24|n}各ページの行数を設定します。 PAGESIZEを 0に設定すると、ヘッダー、ページ・ブレーク、タイトル、初期空白行およびその他の書式設定情報をすべて抑止できます。

PAU[SE] {OFF|ON|text}レポートの実行中に端末のスクロール制御を実現します。 ONを指定すると、SQL*Plusはレポートの各ページの出力開始時に一時停止します。 それぞれの一時停止の後で、[Return]を押す必要があります。 入力する textには、SQL*Plusが一時停止するたびに表示するテキストを指定します。 複数の語を入力する場合、text全体を一重引用符で囲む必要があります。

端末固有のエスケープ・シーケンスを PAUSEコマンドの中に入れることができます。 このようなシーケンスを使用すると、反転表示などの効果を持つメッセージを端末上に作成できます。

RECSEP {WR[APPED]|EA[CH]|OFF}RECSEPCHAR { |c}

レコード・セパレータを表示または出力します。 レコード・セパレータは、LINESIZEに指定した回数だけ繰り返される 1行分の RECSEPCHAR(レコード分離文字)です。

RECSEPCHARには、レコード分離文字を定義します。 デフォルトは、1つの空白です。

RECSEPには、SQL*Plusがどこでレコードを分離するかを指定します。 たとえば、RECSEPをWRAPPEDに設定すると、SQL*Plusは折り返された行の直後にのみレコード・セパレータを出力します。 RECSEPを EACHに設定すると、SQL*Plusは各行の後にレコード・セパレータを出力します。 RECSEPに OFFを設定すると、SQL*Plusはレコード・セパレータを出力しません。

SERVEROUT[PUT] {OFF|ON} [SIZE n][FOR[MAT] {WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]}]

SQL*Plusのストアド・プロシージャまたは PL/SQLブロックの出力(つまりDBMS_OUTPUT.PUT_LINE)を表示するかどうかを制御します。 OFFを指定すると、DBMS_OUTPUT.PUT_LINEの出力が抑止されます。ONを指定すると、出力が表示されます。

SIZEには、Oracle8iデータベース・サーバーの内部バッファに格納できる出力のバイト数を設定します。 nのデフォルト値は 2000です。n は、2000以上1,000,000未満である必要があります。

Page 257: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-111

WRAPPEDを使用可能にすると、SQL*Plusは SET LINESIZEに指定された行サイズに従ってサーバー出力を折り返し、必要に応じて新しい行を開始します。

WORD_WRAPPEDを使用可能にすると、サーバー出力の各行が SET LINESIZEで指定した行サイズに従って折り返されます。 行は、単語の境界で改行されます。 SQL*Plusは、各行を左揃えし、先行の空白をすべてスキップします。

TRUNCATEDを使用可能にすると、サーバー出力の各行が SET LINESIZEで指定した行サイズになるように切り捨てられます。

各 FORMATについて、各サーバー出力行は新しい出力行から開始されます。

DBMS_OUTPUT.PUT_LINEの詳細は、『Oracle8iアプリケーション開発者ガイド』を参照してください。

SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}シフト文字を表示する端末に適した位置合せを実現します。 SET SHIFTINOUTコマンドは、データとともにシフト文字を表示する端末(たとえば、IBM 3270端末)の場合に使用すると有効です。 このコマンドを使用できるのは、シフト文字を検出するキャラクタ・セット(たとえば、JA16DBCS)のときだけです。

端末でシフト文字を可視文字(たとえば、空白またはコロン)として表示するには、VISIBLEを使用します。 INVISIBLEは、これと反対で、シフト文字が表示されません。

SHOW[MODE] {OFF|ON}SETを使用して、SQL*Plusシステム変数の設定を変更したときに、新旧の設定値を SQL*Plusでリスト表示するかどうかを制御します。 ONを指定すると、設定値がリスト表示されます。OFFを指定すると、リスト表示が抑止されます。 SHOWMODE ONの動作は、すでに廃止された SHOWMODE BOTHと同じです。

SQLBL[ANKLINES] {ON|OFF}SQL*Plusが SQLコマンド内の空白行を許可するかどうかを制御します。 ONを指定すると、空白行および新しい行は SQLコマンドの一部とみなされます。 OFFを指定すると、デフォルトで SQLコマンド内に空白行または新しい行を許可しません。 SQL*Plusは、SQLTERMINATORまたはBLOCKTERMINATORを見つけたときにデフォルトの動作を返します。

Page 258: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-112 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}実行の直前に、SQLコマンドおよび PL/SQLブロックの大文字や小文字を変換します。 SQL*Plusは、引用符で囲まれたリテラルおよび識別子も含めて、コマンド内部のすべてのテキストを次の方法で変換します。

■ SQLCASEが UPPERの場合は大文字

■ SQLCASEが LOWERの場合は小文字

■ SQLCASEがMIXEDの場合は変更なし

SQLCASEでは、SQLバッファの内容自体は変更されません。

SQLCO[NTINUE] {>|text}1つの SQL*Plusコマンドをハイフン(-)を使用して追加行に続けた後で、プロンプトとして SQL*Plusによって表示する文字列シーケンスを設定します。

SQLN[UMBER] {OFF|ON}SQLコマンドまたは PL/SQLブロックの 2行目以降の行のためのプロンプトを設定します。 ONを設定すると、プロンプトは行番号に設定されます。 OFFを設定すると、プロンプトは SQLPROMPTの値に設定されます。

SQLPRE[FIX] {#|c}SQL*Plusの接頭文字を設定します。 SQLコマンドまたは PL/SQLブロックを入力している途中で、別の行に SQL*Plus接頭文字を付けて SQL*Plusコマンドを入力できます。 SQL*Plusは、入力中の SQLコマンドまたは PL/SQLブロックに影響を与えずに、別の行に入力したコマンドを即時実行します。 接頭文字は、英数字以外の文字でなければなりません。

SQLP[ROMPT] {SQL>|text}SQL*Plusコマンド・プロンプトを設定します。

SQLT[ERMINATOR] {;|c|OFF|ON}cに、SQLコマンドの終了および実行に使用する文字を設定します。OFFは、SQL*Plusがコマンド終了記号をまったく認識しないことを意味します。OFFを指定した場合は、空白行を入力することによって、SQLコマンドを終了させます。 ONを指定すると、終了記号はデフォルトのセミコロン(;)にリセットされます。

SUF[FIX] {SQL|text}コマンド・ファイルを参照するコマンドの中で SQL*Plusが使用するデフォルトのファイル拡張子を設定します。 SUFFIXでは、スプール・ファイルの拡張子は制御できません。

Page 259: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-113

TAB {OFF|ON}SQL*Plusがホワイトスペースをどのように端末に出力するかを指定します。 OFFを指定すると、ホワイトスペースは空白として出力されます。 ONを指定すると、TAB文字が使用されます。 TABの設定間隔は 8文字です。 TABのデフォルト値は、システムによって異なります。

TERM[OUT] {OFF|ON}コマンド・ファイルから実行するコマンドによって生成される出力の表示を制御します。 OFFを指定すると、表示が抑止されるので、コマンド・ファイルからの出力を画面に表示せずに、出力をスプールできます。 ONを指定すると、出力が表示されます。 TERMOUT OFFは、対話形式で入力するコマンドからの出力には影響を与えません。

TI[ME] {OFF|ON}現在時刻の表示を制御します。 ONを指定すると、各コマンド・プロンプトの前に現在時刻が表示されます。 OFFを指定すると、時刻表示が抑止されます。

TIMI[NG] {OFF|ON}計時統計の表示を制御します。 ONを指定すると、それぞれの SQLコマンドまたは PL/SQLブロックが実行されるたびに、その計時統計が表示されます。 OFFを指定すると、各コマンドの計時統計が抑止されます。 SET TIMING ONで表示されるデータの詳細は、ご使用のオペレーティング・システム用のOracleインストレーション・ガイドおよび管理者リファレンスを参照してください。 複数のコマンドの計時情報については、「TIMING」コマンドを参照してください。

TRIM[OUT] {OFF|ON}SQL*Plusで、それぞれの表示行の終わりに後続空白空白を入れるかどうかを判断します。 ONを指定すると、各行の終わりの空白が削除されるため、パフォーマンスが向上します。特に、低速の通信デバイスから SQL*Plusにアクセスする場合に効果的です。 OFFを指定すると、SQL*Plusで後続の空白を表示できます。 TRIMOUT ONは、スプール出力には影響を与えません。

TRIMS[POOL] {ON|OFF}SQL*Plusで、それぞれのスプール行の終わりに後続空白を入れるかどうかを判断します。 ONを指定すると、各行の終わりの空白が削除されます。 OFFを指定すると、SQL*Plusで後続の空白を挿入できます。 TRIMSPOOL ONは、端末出力には影響を与えません。

UND[ERLINE] {-|c|ON|OFF}cに、SQL*Plusレポートの列ヘッダーに下線を付けるために使用する文字を設定します。c は、英数字またはホワイトスペースであってはなりません。 ONまたは OFFによって、下線付けをオンまたはオフにできます。 ONを指定すると、cの値がデフォルトの "-"に戻ります。

Page 260: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-114 SQL*Plusユーザーズ・ガイドおよびリファレンス

VER[IFY] {OFF|ON}SQL*Plusが置換変数を値に置き換える前および後で、SQL文または PL/SQLコマンドのテキストを SQL*Plusでリスト表示するかどうかを制御します。 ONを指定すると、テキストがリスト表示されます。OFFを指定すると、リスト表示が抑止されます。

CWRA[P] {OFF|ON}SELECTによって選択された行が長すぎて現在行の幅に収まらない場合に、その行の表示を SQL*Plusで切り捨てるかどうかを制御します。 OFFを指定すると、選択済みの行が切り捨てられます。ONを指定すると、選択済みの行は次の行に折り返されます。

特定の列のWRAPの設定を上書きするには、COLUMNコマンドのWRAPPED句および TRUNCATED句を使用します。

使用方法使用方法使用方法使用方法SQL*Plusには、SQL*Plusセッション用の特定の環境を設定できるようにするためのシステム変数(SETコマンド変数とも呼ばれる)が保持されています。 これらのシステム変数は、SETコマンドを使用して変更し、SHOWコマンドを使用してリスト表示できます。

SET ROLEおよび SET TRANSACTIONは、SQLコマンドです(詳細は、『Oracle8i SQLリファレンス』を参照してください)。 キーワード TRANSACTIONまたは ROLEが後に指定されていない場合、SETは SQL*Plusコマンドとみなされます。

例例例例次に、選択済みの SETコマンド変数の使用例を示します。

APPINFOAPPINFOの設定を表示するには、次のように入力します。

SQL> SHOW APPINFOSQL> appinfo is ON and set to “SQL*Plus”

デフォルト・テキストを変更するには、次のように入力します。

SQL> SET APPI ’This is SQL*Plus’SQL> SHOW APPINFOSQL> appinfo is ON and set to “This is SQL*Plus”

Page 261: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-115

登録が確実に実行されるようにするには、次のように入力します。

SQL> VARIABLE MOD VARCHAR2(50)SQL> VARIABLE ACT VARCHAR2(40)SQL> EXECUTE DBMS_APPLICATION_INFO.READ_MODULE(:MOD, :ACT);SQL> PRINT MODMOD---------------------------------------------------This is SQL*Plus

AUTORECOVERYAUTOMATICに回復モードを設定するには、次のように入力します。

SQL> SET AUTORECOVERY ONSQL> RECOVER DATABASE

CMDSEPTTITLEを指定して、同一行に列を書式設定するには、次のように入力します。

SQL> SET CMDSEP +SQL> TTITLE LEFT ’SALARIES’ + COLUMN SAL FORMAT $9,999SQL> SELECT ENAME, SAL FROM EMP 2 WHERE JOB = 'CLERK';

出力結果は次のようになります。

SALARIESENAME SAL---------- -------SMITH $800ADAMS $1,100JAMES $950MILLER $1,300

COLSEP列セパレータを "|"に設定するには、次のように入力します。

SQL> SET COLSEP ’|’SQL> SELECT ENAME, JOB, DEPTNO 2 FROM EMP 3 WHERE DEPTNO = 20;

Page 262: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-116 SQL*Plusユーザーズ・ガイドおよびリファレンス

出力結果は次のようになります。

ENAME |JOB | DEPTNO-------------------------------SMITH |CLERK | 20JONES |MANAGER | 20SCOTT |ANALYST | 20ADAMS |CLERK | 20FORD |ANALYST | 20

COMPATIBILITYOracle7で作成されたコマンド・ファイル SALARY.SQLを実行するには、次のように入力します。

SQL> SET COMPATIBILITY V7SQL> START SALARY

このファイルを実行した後で、Oracle8で作成されたコマンド・ファイルを実行するために互換性を V8にリセットするには、次のように入力します。

SQL> SET COMPATIBILITY V8

かわりに、コマンド・ファイルの最初にコマンド SET COMPATIBILITY V7を追加し、そのファイルの終わりで COMPATIBILITYを V8にリセットするという方法もあります。

DESCRIBE2レベルの深さにオブジェクト emp_objectを記述して、行数も表示されている間に出力をインデントするには、オブジェクトの最初に次のように記述します。

SQL> desc emp_object

出力結果は次のようになります。

Name Null Type ----------------------------------------- -------- ---------------------------- EMPLOYEE RECUR_PERSON NAME VARCHAR2(20) ADDR RECUR_ADDRESS ADDR1 RECUR_ADDRESS1 DOB DATE GENDER VARCHAR2(10) DEPT RECUR_DEPARTMENT DEPTNO NUMBER DEPT_NAME VARCHAR2(20) LOCATION VARCHAR2(20) START_DATE DATE

Page 263: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-117

POSITION VARCHAR2(1) SAL RECUR_SALARY ANNUAL_SAL NUMBER(10,2) EMP_TYPE VARCHAR2(1) COMM NUMBER(10,2) PENALTY_RATE NUMBER(5,2)

インデントおよび行数が表示されたものを出力するために emp_objectを書式設定するには、SET DESCRIBEコマンドを使用して次のように入力します。

SQL> SET DESCRIBE DEPTH 2 LINENUM ON INDENT ON

以前の設定を表示するには、次のように入力します。

SQL> DESCRIBE emp_object

出力結果は次のようになります。

Name Null Type ------------------------------ -------- ---------------------------- 1 EMPLOYEE RECUR_PERSON 2 1 NAME VARCHAR2(20) 3 1 ADDR RECUR_ADDRESS 4 1 ADDR1 RECUR_ADDRESS1 5 1 DOB DATE 6 1 GENDER VARCHAR2(10) 7 DEPT RECUR_DEPARTMENT 8 7 DEPTNO NUMBER 9 7 DEPT_NAME VARCHAR2(20) 10 7 LOCATION VARCHAR2(20) 11 START_DATE DATE 12 POSITION VARCHAR2(1) 13 SAL RECUR_SALARY 14 13 ANNUAL_SAL NUMBER(10,2) 15 13 EMP_TYPE VARCHAR2(1) 16 13 COMM NUMBER(10,2) 17 13 PENALTY_RATE NUMBER(5,2)

ESCAPE感嘆符(!)をエスケープ文字として定義し、次のように入力したとします。

SQL> SET ESCAPE !SQL> ACCEPT v1 PROMPT ’Enter !&1:’

Page 264: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-118 SQL*Plusユーザーズ・ガイドおよびリファレンス

次のプロンプトが表示されます。

Enter &1:

HEADINGレポート内での列ヘッダーの表示を抑止するには、次のように入力します。

SQL> SET HEADING OFF

次のような SQL SELECTコマンドを実行したとします。

SQL> SELECT ENAME, SAL FROM EMP 2 WHERE JOB = 'CLERK';

出力結果は次のようになります。

ADAMS 1100JAMES 950MILLER 1300

INSTANCEデフォルト・インスタンスに "PROD1"を設定するには、次のように入力します。

SQL> SET INSTANCE PROD1

インスタンスをデフォルトまたはローカルに戻るように設定するには、次のように入力します。

SQL> SET INSTANCE local

LOBOFFSETCLOB列のデータを取り出すための開始位置を 22桁目に設定するには、次のように入力します。

SQL> SET LOBOFFSET 22

CLOBデータは、画面上で折り返されます。SQL*Plusは、23番目の文字になるまで切捨てを行いません。

LOGSOURCE回復するログ・ファイルのデフォルト位置を、/usr/oracle81/dbs/archディレクトリに設定するには、次のように入力します。

SQL> SET LOGSOURCE "/usr/oracle81/dbs/arch"SQL> RECOVER DATABASE

Page 265: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-119

LONGLONG値を表示およびコピーするための最大幅を 500に設定するには、次のように入力します。

SQL> SET LONG 500

LONGデータは、画面上で折り返されます。SQL*Plusは、501番目の文字になるまで切捨てを行いません。

LONGCHUNKSIZESQL*Plusが LONG値を取り出すときに使用する増分値のサイズを 100文字に設定するには、次のように入力します。

SQL> SET LONGCHUNKSIZE 100

LONGデータは、値全体が取り出されるか、または SET LONGの値に達するまで 100文字の増分値を使用して取り出されます。

SERVEROUTPUTDBMS_OUTPUT.PUT_LINEの表示を使用可能にするには、次のように入力します。

SQL> SET SERVEROUTPUT ON

次に、SET SERVEROUTPUT ONを使用して無名プロシージャを実行した結果を示します。

SQL> BEGIN 2 DBMS_OUTPUT.PUT_LINE('Task is complete'); 3 END; 4 /Task is complete.

PL/SQL procedure successfully completed.

次に、SET SERVEROUTPUT ONを使用してトリガーを作成した結果を示します。

SQL> CREATE TRIGGER SERVER_TRIG BEFORE INSERT OR UPDATE -> OR DELETE 2 ON SERVER_TAB 3 BEGIN 4 DBMS_OUTPUT.PUT_LINE('Task is complete.'); 5 END; 6 /Trigger created.

Page 266: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-120 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL> INSERT INTO SERVER_TAB VALUES (’TEXT’);Task is complete.1 row created.

出力をWORD_WRAPPEDに設定するには、次のように入力します。

SQL> SET SERVEROUTPUT ON FORMAT WORD_WRAPPEDSQL> SET LINESIZE 20SQL> BEGIN 2 DBMS_OUTPUT.PUT_LINE('If there is nothing left to do'); 3 DBMS_OUTPUT.PUT_LINE('shall we continue with plan B?'); 4 end; 5 /If there is nothingleft to doshall we continuewith plan B?

出力を TRUNCATEDに設定するには、次のように入力します。

SQL> SET SERVEROUTPUT ON FORMAT TRUNCATEDSQL> SET LINESIZE 20SQL> BEGIN 2 DBMS_OUTPUT.PUT_LINE('If there is nothing left to do'); 3 DBMS_OUTPUT.PUT_LINE('shall we continue with plan B?'); 4 END; 5 /If there is nothingshall we continue wi

SHIFTINOUTシフト文字が表示されるようにするには、次のように入力します。

SQL> SET SHIFTINOUT VISIBLESQL> SELECT ENAME, JOB FROM EMP;

Page 267: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

Command Reference 8-121

出力結果は次のようになります。

ENAME JOB---------- ----------:JJOO: :AABBCC::AA:abc :DDEE:e

":"は、シフト文字です。

大文字はマルチバイト文字です。

小文字はシングルバイト文字です。

SQLBLANKLINESSQL文での空白行を保持するには、次のように入力します。

SQL> SET SQLBLANKLINES ONSQL> SELECT * 2 3 FROM 4 5 DUAL 6 7 ;

出力結果は次のようになります。

D-X

SQLCONTINUE感嘆符とそれに続く 1個の空白を SQL*Plusコマンド継続プロンプトとして設定するには、次のように入力します。

SQL> SET SQLCONTINUE ’! ’

注意注意注意注意 : この例は、列が正しく位置合せされることを示しています。 この例で使用されているデータは、例示のためだけのもので、実際のデータを示すものではありません。

Page 268: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET

8-122 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusは、継続のプロンプトを次のように表示します。

SQL> TTITLE ’YEARLY INCOME’ -! RIGHT SQL.PNO SKIP 2 -! CENTER 'PC DIVISION'SQL>

SUFFIXデフォルトのコマンド・ファイル拡張子を UFIに設定するには、次のように入力します。

SQL> SET SUFFIX UFI

次のように入力したとします。

SQL> GET EXAMPLE

SQL*Plusは、名前が EXAMPLEで拡張子が SQLのファイルでなく、名前が EXAMPLEで拡張子が UFIのファイルを検索します。

Page 269: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SHOW

Command Reference 8-123

SHOW

用途用途用途用途SQL*Plusシステム変数の値または現行の SQL*Plus環境を表示します。

構文構文構文構文SHO[W] option

optionには、次の項または句を 1つ指定します。

system_variableALLBTI[TLE]ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY| TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]LNOPARAMETERS [parameter_name]PNOREL[EASE]REPF[OOTER]REPH[EADER]SGASPOO[L]SQLCODETTI[TLE]USER

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

system_variableSETコマンドによって設定される任意のシステム変数を指定します。

ALLERRORSを除いて、SHOWのすべてのオプション設定がアルファベット順にリスト表示されます。

BTI[TLE]現行の BTITLE定義が表示されます。

Page 270: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SHOW

8-124 SQL*Plusユーザーズ・ガイドおよびリファレンス

ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY|TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]

ストアド・プロシージャ(ストアド・ファンクション、プロシージャおよびパッケージを含む)のコンパイル・エラーが表示されます。 CREATEコマンドを使用してストアド・プロシージャを作成した後で、ストアド・プロシージャにコンパイル・エラーが検出されると、メッセージが表示されます。 エラーを表示するには、SHOW ERRORSを使用します。

引数を指定しないで SHOW ERRORSだけを指定すると、SQL*Plusは最後に作成または変更されたストアド・プロシージャに対するコンパイル・エラーを表示します。 PL/SQLストアド・プロシージャのタイプ(関数、プロシージャ、パッケージ、パッケージ本体、トリガー、ビュー、型または型本体)および名前を指定すると、SQL*Plusは、そのストアド・プロシージャのエラーを表示します。 コンパイル・エラーの詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

schemaには、名前付きオブジェクトが含まれています。 schemaを省略すると、SHOW ERRORSはオブジェクトが現行のスキーマ内にあるとみなします。

SHOW ERRORSの出力には、エラーの行番号および列番号(LINE/COL)と同時にエラーそのもの(ERROR)も表示されます。 LINE/COLおよび ERRORのデフォルトの幅は、それぞれ 8および 65です。 これらの幅は、COLUMNコマンドを使用して変更できます。

LNO現在行の番号(表示出力やスプール出力、またはその両方の現行ページの中の位置)が表示されます。

PARAMETERS [parameter_name]1つ以上の初期化パラメータに対して、現在の値を表示します。 このコマンドの後の文字列を使用して、その文字列を含む名前のパラメータのサブセットを参照できます。 たとえば、次のように入力したとします。

SQL> SHOW PARAMETERS COUNT

次のように表示されます。

NAME TYPE VALUE ------------------------------ ----- ----- db_file_multiblock_read_count integer 12spin_count integer 0

コマンドに続く任意の文字列なしで SHOW PARAMETERSコマンドのみを指定すると、すべての初期化パラメータが表示されます。

Page 271: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SHOW

Command Reference 8-125

出力結果は、接続している Oracleデータベース・サーバーのバージョンおよび構成によって異なります。

PNO現行のページ番号が表示されます。

REL[EASE]SQL*Plusがアクセスしている Oracleのリリース番号が表示されます。

REPF[OOTER]現行の REPFOOTER定義が表示されます。

REPH[EADER]現行の REPHEADER定義が表示されます。

SPOO[L]出力がスプールされているかどうかが表示されます。

SGA現行インスタンスのシステム・グローバル領域に関する情報が表示されます。

SQLCODESQL.SQLCODE(最新の操作の SQLリターン・コード)の値が表示されます。

TTI[TLE]現行の TTITLE定義が表示されます。

USERSQL*Plusへのアクセスに現在使用しているユーザー名が表示されます。

例例例例現行の LINESIZEをリスト表示するには、次のように入力します。

SQL> SHOW LINESIZE

現行の行サイズが 80文字の場合、SQL*Plusから次の応答があります。

linesize 80

Page 272: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SHOW

8-126 SQL*Plusユーザーズ・ガイドおよびリファレンス

次の例は、ストアド・プロシージャを作成し、そのコンパイル・エラーを表示する方法を示しています。

SQL> connect system/managerSQL> create procedure scott.proc1 asSQL> beginSQL> :p1 := 1;SQL> end;SQL> /Warning: Procedure created with compilation errors.SQL> show errorsErrors for PROCEDURE SCOTT.PROC1:LINE/COL ERROR--------------------------------------------------------3/3 PLS-00049: bad bind variable 'P1'SQL> show errors procedure proc1No errors.SQL> show errors procedure scott.proc1Errors for PROCEDURE SCOTT.PROC1:LINE/COL ERROR--------------------------------------------------------3/3 PLS-00049: bad bind variable 'P1'

AUTORECOVERYが使用可能かどうかを表示するには、次のように入力します。

SQL> SHOW AUTORECOVERYautorecovery ON

デフォルト・インスタンスの接続文字列を表示するには、次のように入力します。

SQL> SHOW INSTANCEinstance "local"

アーカイブ・ログの位置を表示するには、次のように入力します。

SQL> SHOW LOGSOURCElogsource "/usr/oracle81/dbs/arch"

SGAの情報を表示するには、次のように入力します。

SQL> SHOW SGATotal System Global Area 7629732 bytes Fixed Size 60324 bytes Variable Size 6627328 bytes Database Buffers 409600 bytes Redo Buffers 532480 bytes

Page 273: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SHUTDOWN

Command Reference 8-127

SHUTDOWN

用途用途用途用途現在実行中の Oracleインスタンスを停止します。オプションとして、データベースのクローズやアンマウントをします。

構文構文構文構文SHUTDOWN [ABORT|IMMEDIATE|NORMAL|TRANSACTIONAL]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

ABORT 高速に停止処理を進めます。コールの完了またはユーザーの切断を待ちません。 クローズまたはデータベースをアンマウントしないで、インスタンスを停止します。 次の起動では、インスタンス回復が必要になります。 バックグラウンド・プロセスが異常終了した場合、このオプションを使用する必要があります。

IMMEDIATE現在のコールが完了するのを待たず、新たな接続を禁止して、データベースのクローズおよびアンマウントを行います。 最後に、インスタンスを停止します。 接続しているユーザーが切断するのを待ちません。 次の起動時にインスタンスを回復する必要はありません。

NORMAL現在接続しているユーザーが、データベースから切断するのを待ち、新たな接続を禁止し、データベースのクローズおよびアンマウントを行います。 最後にインスタンスを停止します。 次の起動時にインスタンスを回復する必要はありません。 NORMALはデフォルトのオプションです。

TRANSACTIONALクライアントの中断を最小限にして、インスタンスの停止を実行します。 クライアントは、インスタンス上で新しいトランザクションを起動できません。 クライアントが新しいトランザクションを起動しようとすると、インスタンスは切断されます。 すべてのトランザクションがコミットされたか、または異常終了した後に、一部のクライアントは、切断されたインスタンスに再度接続します。 この時点では、インスタンスは SHUTDOWN IMMEDIATEが発行されたときと同じように停止されます。

Page 274: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SHUTDOWN

8-128 SQL*Plusユーザーズ・ガイドおよびリファレンス

SHUTDOWN TRANSACTIONALを使用すると、クライアントが作業できなくなるのを回避するのと同時に、すべてのユーザーがログオフする必要がなくなります。

使用方法使用方法使用方法使用方法引数なしの SHUTDOWNは、SHUTDOWN NORMALと同じ動作をします。

SYSOPERまたは SYSDBAとしてデータベースに接続していなければなりません。 マルチスレッド・サーバーを介して接続できません。 データベース接続の詳細は、この章の「CONNECT」コマンドを参照してください。

例例例例標準モードでデータベースを停止するには、次のように入力します。

SQL> SHUTDOWNDatabase closed.Database dismounted.Oracle instance shut down.

Page 275: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SPOOL

Command Reference 8-129

SPOOL

用途用途用途用途問合せの結果をオペレーティング・システム・ファイルに格納し、オプションとしてそのファイルをプリンタに送ります。

構文構文構文構文SPO[OL] [file_name[.ext]|OFF|OUT]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

file_name[.ext]スプール出力を格納するファイルの名前を指定します。 SPOOLに続けて file_nameを入力すると、指定ファイルへの表示出力のスプールが開始されます。 拡張子を指定しない場合、SPOOLはデフォルトの拡張子(ほとんどのシステムでは LSTまたは LIS)が使用されます。

OFFスプールの停止

OUTスプールを停止して、ファイルをホスト・コンピュータの標準(デフォルト)プリンタに送ります。

現行のスプール状態をリスト表示するには、句を指定しないで SPOOLのみを入力します。

使用方法使用方法使用方法使用方法コマンド・ファイル内のコマンドによって生成された出力を画面に表示しないで、その出力をスプールするには、SET TERMOUT OFFを使用します。 SET TERMOUT OFFは、対話形式で実行するコマンドからの出力には影響を与えません。

例例例例デフォルトのファイル拡張子を使用して、DIARYという名前のファイルに表示出力を記録するには、次のように入力します。

SQL> SPOOL DIARY

スプールを停止し、ファイルをデフォルトのプリンタで印刷するには、次のように入力します。

SQL> SPOOL OUT

Page 276: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

START

8-130 SQL*Plusユーザーズ・ガイドおよびリファレンス

START

用途用途用途用途指定したコマンド・ファイルの内容を実行します。

構文構文構文構文STA[RT] file_name[.ext] [arg ...]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

file_name[.ext]実行するコマンド・ファイルを指定します。 このファイルには、対話形式で実行できるコマンドも含まれています。

拡張子を指定しなかった場合、SQL*Plusは、デフォルトのコマンド・ファイル拡張子(通常は SQL)が指定されたものとみなします。 このデフォルト拡張子の変更については、この章の「SET」コマンドの SUFFIX変数を参照してください。

START file_name.extを入力すると、SQL*Plusは現行のデフォルト・ディレクトリの中で、指定のファイル名および拡張子を持つファイルを検索します。 該当のファイルが見つからない場合、SQL*Plusは、そのファイルを見つけるためにシステム依存パスを検索します。 オペレーティング・システムによっては、このパス検索がサポートされていない場合もあります。 オペレーティング・システム環境に特有の情報については、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

arg ...コマンド・ファイル内のパラメータに渡すデータ項目を指定します。 1つ以上の引数を入力すると、SQL*Plusは、該当の値をコマンド・ファイルのパラメータ(&1、&2など)に代入します。 最初の引数は &1となっているすべての箇所に、2番目の引数は &2となっているすべての箇所に置換されます。

STARTコマンドは、引数の値でパラメータを定義します。このセッションで同じコマンド・ファイルを STARTによって再起動する場合は、新しい引数を入力することもできるし、引数の指定を省略して古い値を使用することもできます。

パラメータの使用方法の詳細は、第 3章の「対話型コマンドの作成」の「STARTコマンドを使用してパラメータを渡す方法」を参照してください。

Page 277: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

START

Command Reference 8-131

使用方法使用方法使用方法使用方法@(アット・マーク)および @@(二重アット・マーク)コマンドは、STARTと同じ機能です。 製品ユーザー・プロファイルの中で、STARTコマンドを使用禁止にすると、@コマンドおよび @@コマンドも使用禁止になります。 これらのコマンドの詳細は、この章の「@」コマンドおよび「@@」コマンドを参照してください。

コマンド・ファイル内の EXITまたは QUITコマンドは、SQL*Plusを終了させます。

例例例例名前が PROMOTEで拡張子が SQLの、社員の昇進に使用するファイルには、次のコマンドが含まれていることがあります。

SELECT * FROM EMPWHERE MGR=&1 AND JOB=’&2’ AND SAL>&3;

このコマンド・ファイルを実行するには、次のように入力します。

SQL> START PROMOTE 7280 CLERK 950

SQL*Plusは、次のコマンドを実行します。

SELECT * FROM EMPWHERE MGR=7280 AND JOB=’CLERK’ AND SAL>950;

Page 278: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

STARTUP

8-132 SQL*Plusユーザーズ・ガイドおよびリファレンス

STARTUP

用途用途用途用途データベースのマウントおよびオープンを含むオプションを付けて Oracleインスタンスを起動します。

構文構文構文構文STARTUP [FORCE][RESTRICT][PFILE=filename][MOUNT[OPEN[RECOVER]] [database]][mount_options]|[NOMOUNT]

mount_optionsは、次の構文に従ってください。

[EXCLUSIVE|[PARALLEL|SHARED][RETRY]]

項および句項および句項および句項および句それぞれの項および句の詳細は、次の説明を参照してください。

FORCE再起動する前に、現行の Oracleインスタンス(実行されている場合)をABORTモードの SHOUTDOWNで停止しておく必要があります。 現行インスタンスが実行されている、および FORCEが指定されていない場合は、エラーになります。 FORCEは、デバッグ中および異常な環境下で有効となります。 通常は、使用しないでください。

RESTRICTデータベースに接続できるのは、RESTRICTED SESSIONのシステム権限がある Oracleユーザーのみです。 制限されたセッション機能を使用禁止にするには、ALTER SYSTEMコマンドを使用します。

PFILE=filename指定したパラメータ・ファイルがインスタンスの起動に使用されます。

MOUNTデータベースをオープンせずに、マウントします。

OPEN指定されたデータベースを、マウントおよびオープンします。

Page 279: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

STARTUP

Command Reference 8-133

NOMOUNTインスタンスの起動のため、データベースはマウントされません。SHARED、EXCLUSIVE、PARALLEL、MOUNTまたは OPENとともに使用できません。

RECOVER必要ならば、インスタンスを起動する前に、メディア回復を実行するように指定します。 STARTUP RECOVERは、RECOVER DATABASEコマンドの発行、およびインスタンスの起動と同じ結果になります。 完全回復が可能なのは、RECOVERオプションだけです。

必要ならば、AUTORECOVERYが使用可能かどうかにかかわらず、AUTORECOVERYに ONが設定されているものとして回復を続行します。 REDOログ・ファイルが予想した位置に見つからない場合、AUTORECOVERYが使用禁止であるとみなして、回復が続行されます。適用する必要がある、次のログ・ファイルの提案された位置および名前がプロンプトに表示されます。

RECOVERオプションを使用して回復が失敗した場合、データベースはマウントおよびクローズされたままになります。

databaseマウントまたはオープンするデータベースの名前を指定します。 データベース名が指定されない場合、データベース名は初期化パラメータ DB_NAMEから付けられます。

EXCLUSIVEデータベースが、現行インスタンスでマウントおよびオープンだけできる(複数インスタンスでは同時にオープンできません)ということを示しています。 SHARED、PARALLELまたは NOMOUNTとともに使用できません。 マウントするオプションが指定されていない場合、デフォルトで EXCLUSIVEが割り当てられます。

PARALLELデータベースを複数のインスタンスによって同時にマウントする場合は、必ず指定しなければなりません。 EXCLUSIVEまたは NOMOUNTとともに使用できません。 初期化パラメータ SINGLE_PROCESSが TRUEに設定されている場合は、無効になります。

SHAREDPARALLELと同様の機能です。

Page 280: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

STARTUP

8-134 SQL*Plusユーザーズ・ガイドおよびリファレンス

RETRYインスタンスがその他のインスタンスで回復されていてビジーである場合、データベースのオープンは 5秒ごとに行われるように指定します。 1つのインスタンスが、他のインスタンスで回復されている場合、ダウン・インスタンスは回復が完了するまでデータベースをオープンできません。 データベースが他の理由でオープンできない場合、RETRYは再度データベースをオープンしようと試みることはできません。 このオプションは、PARALLELモードでのインスタンスの操作に対してだけ使用可能です。

使用方法使用方法使用方法使用方法SYSOPERまたは SYSDBAとしてデータベースに接続していなければなりません。 マルチスレッド・サーバーを介して接続できません。

例例例例標準パラメータ・ファイルを使用してインスタンスを起動するために、排他モードでデフォルト・データベースをマウントして、データベースをオープンします。次のように入力します。

SQL> STARTUP

次のように入力します。

SQL> STARTUP OPEN database EXCLUSIVE

標準パラメータ・ファイルを使用してインスタンスを起動するために、パラレル・モードでデフォルト・データベースをマウントして、データベースをオープンします。次のように入力します。

SQL> STARTUP PARALLELSQL> STARTUP OPEN database PARALLEL

パラレル・モードで機能しなくなって、他のインスタンスで、まだ回復されていないインスタンスを再起動するには、RETRYオプションを使用して、次のように入力します。

SQL> STARTUP PARALLEL RETRY

現行インスタンスを停止するには、すぐに、マウントまたはオープンしないで再起動し、データベース管理者のみ接続できるようにします。次のように入力します。

SQL> STARTUP FORCE NOMOUNT RESTRICT

データベースをマウントしないで、パラメータ・ファイル TESTPARMを使用してインスタンスを起動するには、次のように入力します。

SQL> STARTUP PFILE=testparm NOMOUNT

Page 281: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

STARTUP

Command Reference 8-135

特定のデータベースを停止するには、すぐに、パラレル・モードで再起動およびオープンして、データベース管理者だけがアクセスできるようにします。パラメータ・ファイルMYINIT.ORAを使用します。次のように入力します。

SQL> STARTUP OPEN database PFILE=myinit.ora FORCE SHARED RESTRICT

インスタンスを起動し、データベースをオープンせずにマウントするには、次のように入力します。

SQL> CONNECT INTERNAL Connected to an idle instance.SQL> STARTUP MOUNT ORACLE instance started. Total System Global Area 7629732 bytesFixed Size 60324 bytesVariable Size 6627328 bytesDatabase Buffers 409600 bytesRedo Buffers 532480 bytes

Page 282: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

STORE

8-136 SQL*Plusユーザーズ・ガイドおよびリファレンス

STORE

用途用途用途用途現行の SQL*Plus環境の属性を、ホスト・オペレーティング・システム・ファイル(コマンド・ファイル)に保存します。

構文構文構文構文STORE {SET} file_name[.ext] [CRE[ATE]|REP[LACE]|APP[END]]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

SETシステム変数の値が保存されます。

STOREコマンド構文のその他の項および句に関する情報については、SAVEコマンドを参照してください。

使用方法使用方法使用方法使用方法このコマンドを実行すると、STARTコマンド、@コマンドまたは @@コマンドを使用して実行できるコマンド・ファイルが作成されます。

STOREコマンド句(CREATE、REPLACEまたは APPEND)と同じ名前でファイルを保存するには、名前を一重引用符で囲むか、またはファイル拡張子を指定する必要があります。

例例例例現行の SQLL*Plusシステム変数を、名前が DEFAULTENVでデフォルトのコマンド・ファイル拡張子が付いたファイルに格納するには、次のように入力します。

SQL> STORE SET DEFAULTENV

現行の SQL*Plusシステム変数を、名前が DEFAULTENVで拡張子が OLDの既存ファイルに追加するには、次のように入力します。

SQL> STORE SET DEFAULTENV.OLD APPEND

Page 283: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

TIMING

Command Reference 8-137

TIMING

用途用途用途用途経過時間に関する計時データを記録するか、現行のタイマーの名前および計時データをリスト表示するか、またはアクティブ・タイマーの数をリスト表示します。

構文構文構文構文TIMI[NG] [START text|SHOW|STOP]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

START textタイマーが設定され、タイマーの名前を textに設定します。 最初のタイマーを停止する前に追加のタイマーを起動することによって、複数のアクティブ・タイマーを同時に使用できます。SQL*Plusは、それぞれの新規タイマーをその前のタイマーにネストします。 最後に起動したタイマーが現行のタイマーになります。

SHOW現行のタイマー名および計時データがリスト表示されます。

STOP現行のタイマー名および計時データがリスト表示されてから、そのタイマーが削除されます。 他にアクティブになっているタイマーがあれば、削除されたタイマーの次に起動されたタイマーが現行のタイマーになります。

アクティブ・タイマーの数をリスト表示するには、句を指定しないで TIMINGのみを入力します。

使用方法使用方法使用方法使用方法このデータを使用して、特定の期間中に実行されるコマンドまたはブロックに関するパフォーマンス分析ができます。

TIMINGで表示されるデータの詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファンレンスを参照してください。 実行する各SQLコマンドまたは PL/SQLブロックの後に、計時データを自動的に表示する方法については、「SET」コマンドの TIMING ON句を参照してください。

すべてのタイマーを削除するには、CLEAR TIMINGコマンドを使用します。

Page 284: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

TIMING

8-138 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例SQL_TIMERという名前のタイマーを作成するには、次のように入力します。

SQL> TIMING START SQL_TIMER

現行のタイマーのタイトルおよび累積時間をリスト表示するには、次のように入力します。

SQL> TIMING SHOW

現行のタイマーのタイトルおよび累積時間をリスト表示して、そのタイマーを削除するには、次のように入力します。

SQL> TIMING STOP

Page 285: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

TTITLE

Command Reference 8-139

TTITLE

用途用途用途用途各レポートの上部に指定のタイトルを配置し書式設定をするか、または現行の TTITLE定義をリスト表示します。 TTITLEコマンドの後に引用符で囲まれた単一の語または文字列のみを指定した場合は、旧形式の TTITLEが使用されます。

旧形式の TTITLEの詳細は、付録 Fの「TTITLE」を参照してください。

構文構文構文構文TTI[TLE] [printspec [text|variable] ...]|[OFF|ON]

ここで、printspecには、textの配置および書式設定に使用される次の句のうちの 1つ以上を指定します。

COL nS[KIP] [n]TAB nLE[FT]CE[NTER]R[IGHT]BOLDFORMAT text

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。 これらの項および句は、BTITLEコマンドにも適用されます。

textタイトル・テキストを指定します。 1行に 2つ以上の語を入れるには、textを一重引用符で囲んで入力します。

variableユーザー変数、または次のシステム管理値のいずれかを指定します。

■ SQL.LNO(現行の行番号)

■ SQL.PNO(現行のページ番号)

■ SQL.RELEASE(現行の Oracleリリース番号)

Page 286: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

TTITLE

8-140 SQL*Plusユーザーズ・ガイドおよびリファレンス

■ SQL.SQLCODE(現行のエラー・コード)

■ SQL.USER(現行のユーザー名)

これらの値の 1つを出力するには、適切な変数をタイトルの中で参照します。 FORMAT句で variableの形式を設定できます。

OFF定義に影響を与えないで、タイトルをオフに(表示を抑止)します。

ONタイトルをオンに(表示を復元)します。 上部タイトルを定義すると、SQL*Plusは自動的に TTITLEを ONに設定します。

COL n現在行の列 nまでインデントします(列 nを過ぎてしまっている場合は、後退します)。 ここでいう「列」とは、印刷位置のことで、表の列ではありません。

S[KIP][n]新規行の先頭まで n回スキップします。nを省略すると、1回スキップします。nに 0を入力すると、現在行の先頭まで戻ります。

TAB nn列分前方に(n に負の値を入力した場合は後方に)スキップします。 ここでいう列とは、印刷位置のことで、表の列ではありません。

LE[FT]|CE[NTER]|R[IGHT]現在行のデータを、それぞれ左揃え、中央揃え、および右揃えにします。 SQL*Plusは、printspec の終わりまで、または次の LEFT、CENTER、RIGHTまたは COLコマンドの後続のデータ項目を、1グループとして整列させます。 CENTERおよび RIGHTでは、SET LINESIZE値を使用して、後続のデータ項目の位置が計算されます。

BOLDデータを太字で印刷します。 SQL*Plusは、端末上で同じデータを 3回続けて出力することによって、太字印刷を行います。 一部のオペレーティング・システムでは、SQL*Plusからプリンタに太字指定のテキストを太字でなく 3回連続で印刷するという命令が出ることがあります。

Page 287: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

TTITLE

Command Reference 8-141

FORMAT text次の FORMAT句まで、またはこのコマンドの終わりまでの、後続のデータ項目の書式を決定する書式モデルを指定します。 書式モデルは、A10や $999などの text定数でなければなりません。書式設定および有効な書式モデルの詳細は、「COLUMN」コマンドの FORMAT句を参照してください。

書式モデルのデータ型が指定のデータ項目のデータ型と合致しない場合、FORMAT句はその項目には影響しません。

指定のデータ項目の前に適切な FORMATモデルがない場合、SQL*Plusは、SET NUMFORMATで指定された書式に従って、NUMBER値を出力します。また、SET NUMFORMATが指定されていない場合はデフォルトの書式に従って、NUMBER値を出力します。 SQL*Plusは、デフォルトの書式に従ってDATE値を出力します。

デフォルトの書式の詳細は、この章の「COLUMN」コマンドの FORMAT句を参照してください。

現行の TTITLE定義をリスト表示するには、句を指定しないで TTITLEのみを入力します。

使用方法使用方法使用方法使用方法最初に出現した textの前に、printspec句を入力しなかった場合、TTITLEはテキストを左揃えにします。 有効な printspec句(LEFT、SKIP、COLなど)がコマンド名の直後に続いていれば、SQL*Plusは新しい書式で TTITLEを解釈します。

上部タイトルの列および DATE値の出力については、「COLUMN NEW_VALUE」を参照してください。

printspecには、定数および変数をいくつでも指定できます。 SQL*Plusは、定数および変数を指定時と同じ順序で表示し、それぞれの定数または変数をその直前の printspec句で指定されている位置および書式に設定します。

TTITLEに指定するタイトルの長さは、2400文字を超えてはなりません。

一重引用符で囲まれたタイトル・テキスト文字列の内部では、継続文字(ハイフン)は認識されません。 これを認識させるには、次のように、継続文字を引用符の外側に置く必要があります。

SQL> TTITLE CENTER ’Summary Report for’ -> ’the Month of May’

Page 288: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

TTITLE

8-142 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例"Monthly Analysis"を上部タイトルとして定義して左揃え、日付を中央揃え、ページ番号を3桁書式で右揃え、次の行の中央に "Data in Thousands"を表示するには、次のように入力します。

SQL> TTITLE LEFT ’Monthly Analysis’ CENTER ’23 Nov 98’ -> RIGHT ’Page:’ FORMAT 999 SQL.PNO SKIP CENTER -> ’Data in Thousands’

この結果、タイトルは次のようになります。

Monthly Analysis 23 Nov 98 Page: 1 Data in Thousands

上部タイトルの定義を変更しないで、その表示を抑止するには、次のように入力します。

SQL> TTITLE OFF

Page 289: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

UNDEFINE

Command Reference 8-143

UNDEFINE

用途用途用途用途明示的に(DEFINEコマンドを使用して)定義したか、または暗黙に(STARTコマンドでの引数によって)定義した 1つ以上のユーザー変数を削除します。

構文構文構文構文UNDEF[INE] variable ...

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

variable削除するユーザー変数の名前を指定します。 同じコマンドで、1つ以上のユーザー変数を削除できます。

例例例例POSという名前のユーザー変数の定義を削除するには、次のように入力します。

SQL> UNDEFINE POS

MYVAR1およびMYVAR2という名前の 2つのユーザー変数の定義を削除するには、次のように入力します。

SQL> UNDEFINE MYVAR1 MYVAR2

Page 290: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

VARIABLE

8-144 SQL*Plusユーザーズ・ガイドおよびリファレンス

VARIABLE

用途用途用途用途PL/SQLで参照できるバインド変数を宣言します。 バインド変数の詳細は、第 3章の「バインド変数の使用方法」を参照してください。 PL/SQLの詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

引数なしで VARIABLEを指定すると、セッション内で宣言されているすべての変数のリストが表示されます。 VARIABLEの後に変数名のみを指定すると、その変数がリスト表示されます。

構文構文構文構文VAR[IABLE] [variable [NUMBER|CHAR|CHAR (n)|NCHAR|NCHAR (n) |VARCHAR2 (n)|NVARCHAR2 (n)|CLOB|NCLOB|REFCURSOR]]

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

variable作成するバインド変数の名前を指定します。

NUMBERNUMBER型で固定長の変数が作成されます。

CHARCHAR(文字)型で長さ 1の変数が作成されます。

CHAR((((n))))CHAR型で最大長が n(2000以下)の変数が作成されます。

NCHARNCHAR(各国文字)型で長さ 1の変数が作成されます。

NCHAR((((n))))NCHAR型で最大長が n(2000以下)の変数が作成されます。

VARCHAR2((((n))))VARCHAR2型で最大長が n(4000以下)の変数が作成されます。

Page 291: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

VARIABLE

Command Reference 8-145

NVARCHAR2((((n))))NVARCHAR2(NCHAR VARYING)型で最大長が n(4000以下)の変数が作成されます。

CLOBCLOB型の変数が作成されます。

NCLOBNCLOB型の変数が作成されます。

REFCURSORREF CURSOR型の変数が作成されます。

使用方法使用方法使用方法使用方法バインド変数は、ストアド・プロシージャに対するパラメータとして使用したり、無名PL/SQLブロックの中で直接参照できます。

VARIABLEで作成したバインド変数の値を表示するには、PRINTコマンドを使用します。 詳細は、この章の「PRINT」コマンドを参照してください。

VARIABLEで作成したバインド変数の値を自動的に表示するには、AUTOPRINTコマンドを使用します。 詳細は、この章の「SET」コマンドの AUTOPRINT句を参照してください。

バインド変数は、PL/SQLブロックに入れる場合を除いて、COPYコマンドまたは SQL文の中で使用できません。 かわりに、置換変数を使用します。

VARIABLE ... LOBまたは NCLOBコマンドを実行すると、SQL*Plusは、LOBロケータをバインド変数に対応付けます。 PL/SQLブロック内の SELECT clob_column INTO :cv文を実行すると、LOBロケータには自動的にデータが挿入されます。 SQL*Plusは、バインド変数用の PRINT文の処理が完了した後、または SQL*Plusが終了するときに、LOBロケータをクローズします。

CLOBまたは NCLOBバインド変数を出力するときに、SQL*Plusの SETコマンド(SET LONG、SET LONGCHUNKSIZE、SET LOBOFFSETなど)を使用して、バッファのサイズを制御できます。

SQL*Plusの REFCURSORのバインド変数を使用すると、PL/SQL 2.3以上のカーソル変数を参照できます。また、PL/SQL出力を SQL*Plusで書式設定できます。 PL/SQLカーソル変数の詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

VARIABLE ... EFCURSORコマンドを実行する場合、SQL*Plusはカーソル・バインド変数を作成します。 PL/SQLブロック内のバインド変数を参照する OPEN ... OR SELECT文によって、カーソルが自動的にオープンされます。 SQL*Plusは、バインド変数用の PRINT文の処理が完了した後、または終了時に、カーソルをクローズします。

Page 292: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

VARIABLE

8-146 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusのフォーマット・コマンド(BREAK、COLUMN、COMPUTE、SETなど)を作成して、REFCURSORの印刷出力を書式設定できます。

REFCURSORバインド変数を 2回以上印刷するには、PL/SQL OPEN ... FOR文を再実行する必要があります。

例例例例次の例では、バインド変数を作成し、その変数を関数から戻される値に設定する方法を示します。

SQL> VARIABLE id NUMBERSQL> BEGIN 2 :id := emp_management.hire 3 ('BLAKE','MANAGER','KING',2990,'SALES'); 4 END;

idという名前のバインド変数は、PRINTコマンドを使用して表示したり、後続の PL/SQLサブプログラムで作成したりすることができます。

次の例では、バインド変数を自動的に表示する方法を示します。

SQL> SET AUTOPRINT ONSQL> VARIABLE a REFCURSORSQL> BEGIN 2 OPEN :a FOR SELECT * FROM DEPT ORDER BY DEPTNO; 3 END; 4 /

PL/SQL procedure successfully completed.

DEPTNO DNAME LOC-------- ------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON

上の例では、変数を表示するための PRINTコマンドを発行する必要はありません。

Page 293: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

VARIABLE

Command Reference 8-147

次の例では、いくつかの変数を作成し、リスト表示します。

SQL> VARIABLE id NUMBERSQL> VARIABLE txt CHAR (20)SQL> VARIABLE myvar REFCURSORSQL> VARIABLEvariable iddatatype NUMBER

variable txtdatatype CHAR(20)

variable myvardatatype REFCURSOR

次の例では、1つの変数をリスト表示します。

SQL> VARIABLE txtvariable txtdatatype CHAR(20)

次の例では、個人別給料をリスト表示し、部門別の給与合計を計算するレポートを作成する方法を示します。

SQL> VARIABLE RC REFCURSOR 2 BEGIN 3 OPEN :RC FOR SELECT DNAME, ENAME, SAL 4 FROM EMP, DEPT 5 WHERE EMP.DEPTNO = DEPT.DEPTNO 6 ORDER BY EMP.DEPTNO, ENAME; 7 END; 8 /

PL/SQL procedure successfully completed.

SQL> SET PAGESIZE 100 FEEDBACK OFFSQL> TTITLE LEFT ’*** Departmental Salary Bill ***’ SKIP 2SQL> COLUMN SAL FORMAT $999,990.99 HEADING ’Salary’SQL> COLUMN DNAME HEADING ’Department’SQL> COLUMN ENAME HEADING ’Employee’SQL> COMPUTE SUM LABEL ’Subtotal:’ OF SAL ON DNAMESQL> COMPUTE SUM LABEL ’Total:’ OF SAL ON REPORTSQL> BREAK ON DNAME SKIP 1 ON REPORT SKIP 1SQL> PRINT RC

Page 294: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

VARIABLE

8-148 SQL*Plusユーザーズ・ガイドおよびリファレンス

*** Departmental Salary Bill ***

Department Employee Salary-------------- ------------ ----------ACCOUNTING CLARK $2,450.00 KING $5,000.00 MILLER $1,300.00************** ----------Subtotal: $8,750.00

RESEARCH ADAMS $1,100.00 FORD $3,000.00 JONES $2,975.00 SCOTT $3,000.00 SMITH $800.00************** ----------Subtotal: $10,875.00

SALES ALLEN $1,600.00 BLAKE $2,850.00 JAMES $950.00 MARTIN $1,250.00 TURNER $1,500.00 WARD $1,250.00************** ----------Subtotal: $9,400.00

----------Total: $29,025.00

次の例では、CLOB列を含むレポートを作り、SET LOBOFFSETコマンドを使用してそのレポートを表示する方法を示します。

CLOB型の clob_colという名前の列を含む、clob_tabという名前の表を、すでに作成してあるとします。 clob_colには、次のデータが含まれています。

Remember to run the Departmental Salary Bill report each month. This report contains confidential information.

Page 295: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

VARIABLE

Command Reference 8-149

col_clob列にデータをリスト表示するレポートを作成するには、次のように入力します。

SQL> variable t clobSQL> begin 2 select clob_col into t: from clob_tab; 3 end; 4 /PL/SQL procedure successfully completed

clob_col列から 200文字を出力するには、次のように入力します。

SQL> set LONG 200SQL> print t

出力結果は次のようになります。

T------------------------------------------------------------Remember to run the Departmental Salary Bill report each month. This reportcontains confidential information.

出力位置を 21番目の文字に設定するには、次のように入力します。

SQL> set LOBOFFSET 21SQL> print t

出力結果は次のようになります。

T------------------------------------------------------------Departmental Salary Bill report each month. This report contains confidentialinformation.

CLOB列の作成方法の詳細は、『Oracle8i SQLリファレンス』を参照してください。

Page 296: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

WHENEVER OSERROR

8-150 SQL*Plusユーザーズ・ガイドおよびリファレンス

WHENEVER OSERROR

用途用途用途用途オペレーティング・システムのエラー(ファイル I/Oエラーなど)が発生した場合に、SQL*Plusを終了します。

構文構文構文構文WHENEVER OSERROR {EXIT [SUCCESS|FAILURE|n|variable|:BindVariable][COMMIT|ROLLBACK] |CONTINUE [COMMIT|ROLLBACK|NONE]}

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

EXIT [SUCCESS|FAILURE|n|variable|:BindVariable]オペレーティング・システムのエラーが検出されたらすぐに終了するように、SQL*Plusに指示します。 成功または失敗を示すコード、オペレーティング・システム障害コード、またはユーザー指定の数値や変数を SQL*Plusが戻すように指定することもできます。 詳細は、この章の「EXIT」コマンドを参照してください。

CONTINUEEXITオプションをオフにします。

COMMIT終了または継続する前に COMMITを実行し、データベースに対する保留中の変更を保存するよう SQL*Plusに指示します。

ROLLBACK終了または継続する前に ROLLBACKを実行し、データベースに対する保留中の変更を破棄するよう SQL*Plusに指示します。

NONE継続する前に何の操作もしないよう SQL*Plusに指示します。

使用方法使用方法使用方法使用方法WHENEVER OSERRORコマンドを入力しなかった場合、SQL*Plusのデフォルト動作では、オペレーティング・システムのエラーが発生すると、何も処置せずに処理が続行されます。

WHENEVER SQLERRORコマンドを入力しなかった場合、SQL*Plusのデフォルト動作では、SQLのエラーが発生すると、何も処置せずに処理が続行されます。

Page 297: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

WHENEVER OSERROR

Command Reference 8-151

例例例例次のコマンド・ファイル中のコマンドは、出力ファイルへの書込み時に障害が発生すると、SQL*Plusが終了し、保留中の変更があればそれがすべてコミットされます。

SQL> WHENEVER OSERROR EXITSQL> START no_such_fileOS Message: No such file or directoryDisconnected from Oracle8......

Page 298: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

WHENEVER SQLERROR

8-152 SQL*Plusユーザーズ・ガイドおよびリファレンス

WHENEVER SQLERROR

用途用途用途用途SQLコマンドまたは PL/SQLブロックがエラーとなった場合、SQL*Plusを終了します。

構文構文構文構文WHENEVER SQLERROR {EXIT [SUCCESS|FAILURE|WARNING|n|variable|:BindVariable] [COMMIT|ROLLBACK]|CONTINUE [COMMIT|ROLLBACK|NONE]}

項および句項および句項および句項および句それぞれの項または句の詳細は、次の説明を参照してください。

EXIT [SUCCESS|FAILURE|WARNING|n|variable|:BindVariable]SQLコマンドまたは PL/SQLブロックでエラーが検出されたらすぐに(ただし、エラー・メッセージを出力した後で)終了するよう SQL*Plusに指示します。 SQL*Plusエラーの場合は、SQL*Plusは終了しません。 WHENEVER SQLERRORの EXIT句は、EXITコマンドと同じ構文規則に従います。 詳細は、この章の「EXIT」コマンドを参照してください。

CONTINUEEXITオプションをオフにします。

COMMIT終了または継続する前に COMMITを実行し、データベースに対する保留中の変更を保存するよう SQL*Plusに指示します。

ROLLBACK終了または継続する前に ROLLBACKを実行し、データベースに対する保留中の変更を破棄するよう SQL*Plusに指示します。

NONE継続する前に何の操作もしないよう、SQL*Plusに指示します。

使用方法使用方法使用方法使用方法WHENEVER SQLERRORコマンドは、SQLコマンドまたは PL/SQLブロックのエラーによってトリガーされます。SQL*Plusコマンド・エラーではトリガーされません。

Page 299: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

WHENEVER SQLERROR

Command Reference 8-153

例例例例次のコマンド・ファイル中のコマンドは、SQL UPDATEコマンドが失敗すると、SQL*Plusが終了し、SQLエラー・コードが戻ります。

SQL> WHENEVER SQLERROR EXIT SQL.SQLCODESQL> UPDATE EMP SET SAL = SAL*1.1

次の SQLコマンド・エラーの場合、SQL*Plusが終了し、SQLエラー・コードが戻ります。

SQL> WHENEVER SQLERROR EXIT SQL.SQLCODESQL> SELECT COLUMN_DOES_NOT_EXIST FROM DUAL;select column_does_not_exiSt from dual *ERROR at line 1:ORA-00904: invalid column name

Disconnected from Oracle.....

次の SQLコマンド・エラーの場合は、SQL*Plusが終了し、変数MY_ERROR_VARの値が戻ります。

SQL> DEFINE MY_ERROR_VAR = 99SQL> WHENEVER SQLERROR EXIT my_error_varSQL> UPDATE non_existed_table set col1 = col1 + 1;

UPDATE NON_EXISTED_TABLE set col1 = col1 + 1 *ERROR at line 1:ORA-00942: table or view does not exist

Disconnected from Oracle.....

次の例では、WHENEVER SQLERRORコマンドが SQL*Plusコマンドには影響しないで、SQLコマンドおよび PL/SQLブロックに影響することを示します。

SQL> WHENEVER SQLERROR EXIT SQL.SQLCODESQL> COLUMN ENAME HEADIING "EMPLOYEE NAME"

Unknown COLUMN option "HEADIING"

SQL> show non_existed_option

Page 300: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

WHENEVER SQLERROR

8-154 SQL*Plusユーザーズ・ガイドおよびリファレンス

Unknown SHOW option "NON_EXISTED_OPTION"SQL> get non_existed_file.sqlUnable to open "NON_EXISTED_FILE.SQL"

次の PL/SQLブロック・エラーの場合、SQL*Plusが終了し、SQLエラー・コードが戻ります。

SQL> WHENEVER SQLERROR EXIT SQL.SQLCODESQL> BEGIN 2 select column_does_not_exiSt from dual; 3 end; 4 /

select column_does_not_exiSt from dual; *ERROR at line 2:ORA-06550: line 2, column 10:PLS-00201: identifier 'COLUMN_DOES_NOT_EXIST' must be declaredORA-06550: line 2, column 3:PL/SQL: SQL Statement ignored

Disconnected from Oracle.....

Page 301: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COPYコマンドのメッセージおよびコード A-1

ACOPYコマンドのメッセージおよびコードコマンドのメッセージおよびコードコマンドのメッセージおよびコードコマンドのメッセージおよびコード

この付録では、COPYコマンドが生成するエラー・メッセージについて説明します。Oracleが生成するエラー・メッセージについては、『Oracle8iエラー・メッセージ』を参照してください。

CPY0002APPEND、CREATE、INSERTまたは REPLACEのオプションが不正または欠落しています。原因原因原因原因 : 内部 COPY関数が、有効範囲外の作成オプション(フラグ)値を使用して COPYを起動しました。

処置処置処置処置 : オラクル社サポート・サービスに連絡してください。

CPY0003内部エラー:論理ホスト番号が範囲外です。原因原因原因原因 : 有効範囲外の論理ホスト番号値を使用して内部 COPY関数を起動しました。

処置処置処置処置 : オラクル社サポート・サービスに連絡してください。

CPY0004ソース表および宛先表にある列名が一致していません。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、宛先表の中の少なくとも1つの列名が、オプションの列名リストまたは SELECTコマンドの列名の対応する列名と一致していません。

処置処置処置処置 : COPYコマンドを指定し直します。宛先表の中のそれぞれの列名およびその順序が、オプションの列名リストまたは SELECTコマンドの列名およびその順序と一致していることを確認します。

Page 302: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

A-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

CPY0005ソースと宛先の列属性が一致していません。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、宛先表の少なくとも 1つの列のデータ型が、SELECTコマンドの対応する列のデータ型と一致していません。

処置処置処置処置 : COPYコマンドを指定し直します。選択する項目のデータ型が宛先と一致していることを確認します。変換するには、TO_DATE、TO_CHARおよび TO_NUMBERを使用します。

CPY0006選択リストが宛先表にある列より多くあります。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、SELECTコマンドの列の数が、宛先表の列の数を上回っています。

処置処置処置処置 : 選択した列の行数がコピー先の表の行数と一致していることを確認した上で、再度 COPYコマンドを指定してください。

CPY0007選択リストが宛先表にある列より少数です。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、SELECTコマンドの列の数が、宛先表の列の数を下回っています。

処置処置処置処置 : 選択した列の行数がコピー先の表の行数と一致していることを確認した上で、再度 COPYコマンドを指定してください。

CPY0008列のリスト名が宛先表にある列より多くあります。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、列名リストの列の数が、宛先表の列の数を上回っています。

処置処置処置処置 : 列名リストの列数がコピー先の表の列数と一致していることを確認した上で、再度 COPYコマンドを指定してください。

Page 303: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

COPYコマンドのメッセージおよびコード A-3

CPY0009列のリスト名が宛先表にある列より少数です。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、列名リストの列の数が、宛先表の列の数を下回っています。

処置処置処置処置 : 列名リストの列数がコピー先の表の列数と一致していることを確認した上で、再度 COPYコマンドを指定してください。

Page 304: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

A-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

Page 305: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

リリース 8.1.5での拡張機能 B-1

Bリリースリリースリリースリリース 8.1.5での拡張機能での拡張機能での拡張機能での拡張機能

SQL*Plusリリース 8.1.5では、SQL*Plusの前回のリリースにさまざまな拡張機能を追加しています。この付録では、SQL*Plusリリース 8.1.5の拡張機能について説明します。

Page 306: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusリリース 8.1.5の拡張機能

B-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

SQL*Plusリリースリリースリリースリリース 8.1.5の拡張機能の拡張機能の拡張機能の拡張機能SQL*Plusリリース 8.1.5を十分に活用するには、Oracle8iが必要です。次に、SQL*Plusリリース 8.1.5の機能を示します。

■ STARTUPという名前の新しいコマンドが追加されました。 STARTUPコマンドを使用すると、オプションでデータベースをマウントおよびオープンして、Oracleインスタンスを起動できます。

■ SHUTDOWNという名前の新しいコマンドが追加されました。 SHUTDOWNコマンドを使用すると、現在実行中の Oracleインスタンスを停止できます。オプションで、データベースをクローズおよびアンマウントすることもできます。

■ RECOVERという名前の新しいコマンドが追加されました。RECOVERを使用すると、表領域、データ・ファイルまたはデータベース全体で、メディア回復を実行できます。

■ ARCHIVE LOGという名前の新しいコマンドが追加されました。ARCHIVE LOGコマンドを使用すると、REDOログ・ファイルをアーカイブすることができます。REDOログ・ファイルに関する情報を表示することもできます。

■ CONNECTコマンドに AS句が追加されました。AS句を使用すると、SYSOPERまたはSYSDBAシステム権限を与えられたユーザーで、権限のある接続が可能になります。

■ SETコマンドに AUTORECOVERY句が追加されました。AUTORECOVERY句を使用すると、デフォルトのアーカイブ REDOログ・ファイルを回復中に使用するかどうかを指定できます。

■ SETコマンドに DESCRIBE句が追加されました。DESCRIBE句を使用すると、オブジェクトを記述できる深さまたはレベルを指定できます。

■ SETコマンドに INSTANCE句が追加されました。INSTANCE句を使用すると、ご使用のセッションのデフォルト・インスタンスを特定のインスタンスに変更できます。

■ SETコマンドに LOGSOURCE句が追加されました。LOGSOURCE句を使用すると、回復中にアーカイブ・ログを取り出す位置を指定できます。

■ SETコマンドに SQLBLANKLINES句が追加されました。SQLBLANKLINES句を使用すると、すべての SQLコマンド内の空白行を実行および保存できます。

■ SHOWコマンドに PARAMETERS句が追加されました。PARAMETERS句を使用すると、複数の初期化パラメータに対する現行の値を表示できます。

■ SHOWコマンドに SGA句が追加されました。SGA句を使用すると、現行インスタンスのシステム・グローバル領域についての情報を表示できます。

Page 307: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQL*Plusの制限 C-1

CSQL*Plusの制限の制限の制限の制限

表 C-1に、SQL*Plusのそれぞれの要素の制限または最大値を示します。 記載されている制限値は、ほとんどのオペレーティング・システムで有効です。

Page 308: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

C-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

表表表表 C-1 SQL*Plusの制限の制限の制限の制限

項目項目項目項目 制限制限制限制限

ファイル名の長さ システム依存

ユーザー名の長さ 30バイト

ユーザー変数名の長さ 30バイト

ユーザー変数値の長さ 240文字

コマンド行の長さ 2500文字

SQL*Plusで入力するLONG値の長さ

LINESIZE値

LINESIZE システム依存

LONGCHUNKSIZE値 システム依存

出力行のサイズ システム依存

変数置換後の行のサイズ 3000文字(内部のみ)

COMPUTEコマンド・ラベルの文字数

500文字

1つの SQLコマンドの行数 500(1行 80文字の場合)

最大 PAGESIZE 50,000行

合計行幅 VMSの場合は 60,000文字。その他の場合は 32,767文字。

最大 ARRAYSIZE 5000行

ネストされたコマンド・ファイルの最大数

VMS、CMSおよび Unixの場合は 20。その他の場合は 5。

最大ページ数 99,999

PL/SQLエラー・メッセージの最大サイズ

2K

ACCEPT文字列の最大長 240バイト

DEFINE変数の最大数 2048

Page 309: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SQLコマンド・リスト D-1

DSQLコマンド・リストコマンド・リストコマンド・リストコマンド・リスト

表 D-1に、主要な SQLコマンドを示します。 これらのコマンドの詳細は、『Oracle8i SQLリファレンス』を参照してください。

Page 310: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

D-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

表表表表 D-1 SQLコマンド・リストコマンド・リストコマンド・リストコマンド・リスト

主要な主要な主要な主要な SQLコマンドおよび句コマンドおよび句コマンドおよび句コマンドおよび句

ALTER LOCK TABLE

ANALYZE NOAUDIT

AUDIT RENAME

COMMENT REVOKE

CREATE SAVEPOINT

DROP SET ROLE

EXPLAIN SET TRANSACTION

GRANT TRUNCATE

INSERT UPDATE

Page 311: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

セキュリティ E-1

Eセキュリティセキュリティセキュリティセキュリティ

この付録では、データベース表および SQL*Plusコマンドへのアクセスを制御するために使用可能なメソッドについて説明します。 セキュリティ用に使用可能なメソッドは、次の 2つのカテゴリーに分類されます。

■ PRODUCT_USER_PROFILE表

■ ロール

Page 312: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PRODUCT_USER_PROFILE表

E-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

PRODUCT_USER_PROFILE表表表表各種の Oracle製品には、SYSTEMアカウント内の表の 1つである PRODUCT_USER_PROFILEを使用した製品レベルのセキュリティが提供されています。このセキュリティは、SQLの GRANTおよび REVOKEコマンドおよびユーザー・ロールが提供しているユーザー・レベルのセキュリティを補完するものです。

概要概要概要概要DBAは、SQL*Plus環境の中で PRODUCT_USER_PROFILEを使用して、いくつかの SQLおよび SQL*Plusコマンドをユーザー単位で使用禁止にすることができます。 Oracleではなく SQL*Plusがこのセキュリティを実施します。 DBAは、GRANT、REVOKEおよび SET ROLEコマンドを制限して、ユーザーが各自のデータベース権限を変更するのを制限することもできます。

ユーザーが SQL*Plusにログインする場合、SQL*Plusは、PRODUCT_USER_PROFILEから制限を読み取り、セッションが終了するまでその制限を維持します。 PRODUCT_USER_PROFILEの変更は、次に対象ユーザーが SQL*Plusにログインするときに有効になります。

PRODUCT_USER_PROFILE表は、ローカル・データベースにのみ適用されています。 データベース・リンクでリモート・データベース上のオブジェクトにアクセスする場合、リモート・データベース用の PRODUCT_USER_PROFILEは適用されません。 リモート・データベースは、データベース・リンクからユーザー名およびパスワードを抽出して、ユーザー・プロファイルおよびユーザー権限を維持することはできません。

表の作成表の作成表の作成表の作成PRODUCT_USER_PROFILEを作成するには、SQLの拡張子が付いた PUPLDという名前のコマンド・ファイルを、SYSTEMで実行します。 ファイル拡張子の正確な形式およびファイルの位置は、システムによって異なります。 詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照するか、またはDBAに問い合せてください。

注意注意注意注意 : 表の作成に誤りがある場合、SYSTEM以外のすべてのユーザーがOracleに接続するときに、PRODUCT_USER_PROFILE情報がロードされていないという旨の警告が表示されます。

Page 313: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PRODUCT_USER_PROFILE表

セキュリティ E-3

表の構造表の構造表の構造表の構造次に、PRODUCT_USER_PROFILE表を構成する列を示します。

PRODUCT NOT NULL CHAR (30)USERID CHAR(30)ATTRIBUTE CHAR(240)SCOPE CHAR(240)NUMERIC_VALUE NUMBER(15,2)CHAR_VALUE CHAR(240)DATE_VALUE DATELONG_VALUE LONG

列の説明および使用方法列の説明および使用方法列の説明および使用方法列の説明および使用方法PRODUCT_USER_PROFILE表のそれぞれの列の説明および使用方法は、次のリストを参照してください。

Product 製品名(この場合は SQL*Plus)が含まれていなければなりません。 この列には、ワイルド・カードまたは NULLは入力できません。 製品名 SQL*Plusは、大 /小文字混合形式で入力しないと認識されないので注意してください。

Userid コマンドを使用禁止にする対象ユーザーのユーザー名(大文字)が含まれていなければなりません。 複数のユーザーのコマンドを使用禁止にするには、SQLワイルド・カード(%)を使用するか、または複数のエントリを入力します。 したがって、次のエントリはすべて有効です。

■ SCOTT

■ CLASS1

■ CLASS%(名前が CLASSで始まるすべてのユーザー)

■ %(すべてのユーザー)

Attribute 使用禁止にする SQL、SQL*Plusまたは PL/SQLコマンドの名前(大文字)が含まれていなければなりません(たとえば、GET)。 ロールを使用禁止にする場合、文字列 ROLESが含まれていなければなりません。 ワイルド・カードは入力できません。 使用禁止にできる SQLおよび SQL*Plusコマンドのリストについては、この付録の「管理」を参照してください。 ロールを使用禁止にする方法の詳細は、「ロール」を参照してください。

Page 314: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PRODUCT_USER_PROFILE表

E-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

管理管理管理管理DBAユーザー名 SYSTEMは、PRODUCT_USER_PROFILEを所有し、それに関するすべての権限を持っています (SYSTEMがログインする場合、SQL*Plusは、PRODUCT_USER_PRFILEを読み取りません。 したがって、ユーザー SYSTEMに制限は適用されません)。 他のOracleユーザー名では、この表に対しては SELECT権のみ持つようになります。このアクセス権を使用すると、ユーザー名に設定された制限および PUBLICに設定された制限を表示できます。 コマンド・ファイル PUPBLDが実行されると、PRODUCT_USER_PROFILEに対する SELECTアクセスが PUPBLCに与えられます。

SQL*Plus、、、、SQLおよびおよびおよびおよび PL/SQLコマンドの使用禁止コマンドの使用禁止コマンドの使用禁止コマンドの使用禁止特定のユーザーに SQLまたは SQL*Plusコマンドを使用禁止にするには、Userid列にユーザーのユーザー名、Attribute列にコマンド名および Char_Value列に DISABLEDを入れた行を挿入します。

Scope SQL*Plusでは、この列は無視されます。 この列には、NULLを入力してください。 他の製品では、特定のファイル制限またはその他のデータがこの列に格納されることがあります。

Numeric_Value SQL*Plusでは、この列は無視されます。 この列には、NULLを入力してください。 他の製品では、この列に数値が格納されることがあります。

Char_Value SQL、SQL*Plusまたは PL/SQLコマンドを使用禁止にするには、文字列 DISABLEDが含まれていなければなりません。 ロールを使用禁止にする場合は、使用禁止にするロールの名前が含まれていなければなりません。 ワイルド・カードは入力できません。 ロールを使用禁止にする方法の詳細は、「ロール」を参照してください。

Date_Value SQL*Plusでは、この列は無視されます。 この列には、NULLを入力してください。 他の製品では、この列に DATE値が格納されることがあります。

Long_Value SQL*Plusでは、この列は無視されます。 この列には、NULLを入力してください。 他の製品では、この列に LONG値が格納されることがあります。

Page 315: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PRODUCT_USER_PROFILE表

セキュリティ E-5

Scope、Numeric_Valueおよび Date_Value列には NULLを入れます。 次に例を示します。

PRODUCT USERID ATTRIBUTE SCOPE NUMBERIC CHAR DATE VALUE VALUE VALUE------- ------ --------- ----- -------- ------ -----SQL*Plus SCOTT HOST DISABLEDSQL*Plus % INSERT DISABLEDSQL*Plus % UPDATE DISABLEDSQL*Plus % DELETE DISABLED

コマンドを再び使用可能にするには、制限を含む行を削除します。

次に、使用禁止にできる SQL*Plusコマンドを示します。

■ COPY

■ EDIT

■ EXECUTE

■ EXIT

■ GET

■ HOST(または、ご使用のオペレーティング・システムのHOSTの別名、つまり VMSでは $、UNIXでは !など)

■ QUIT

■ PASSWORD

■ RUN

■ SAVE

■ SET(後述の注意を参照)

■ SPOOL

■ START

注意注意注意注意 : SQL*Plusの SETコマンドを使用禁止にすると、SQLの SET ROLEおよび SET TRANSACTIONコマンドも使用禁止になります。 SQL*Plusの STARTコマンドを使用禁止にすると、SQL*Plusの @および@@コマンドも使用禁止になります。

Page 316: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PRODUCT_USER_PROFILE表

E-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

次に、使用禁止にできる SQLコマンドを示します。

■ ALTER

■ ANALYZE

■ AUDIT

■ CONNECT

■ CREATE

■ DELETE

■ DROP

■ GRANT

■ INSERT

■ LOCK

■ NOAUDIT

■ RENAME

■ REVOKE

■ SELECT

■ SET ROLE

■ SET TRANSACTION

■ TRUNCATE

■ UPDATE

次に、使用禁止にできる PL/SQLコマンドを示します。

■ BEGIN

■ DECLARE

注意注意注意注意 : BEGINおよび DECLAREコマンドを使用禁止にしても、SQL*Plusの EXECUTEコマンドは使用可能です。 EXECUTEを使用禁止にする場合は、別々に行ってください。

Page 317: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

PRODUCT_USER_PROFILE表

セキュリティ E-7

SET ROLE の使用禁止の使用禁止の使用禁止の使用禁止ユーザーは、SQL*Plusから任意の SQLコマンドを送ることができます。 特定の状況下では、これはセキュリティ上の問題の原因になります。 適切な予防手段を取っておかないと、ユーザーが SET ROLEを使用して、アプリケーション・ロールで取得した権限にアクセスするおそれがあります。 これらの権限を使用して、ユーザーが SQL*Plusから SQL文を発行し、その結果データベース表が誤って変更されてしまう可能性があります。

アプリケーション・ユーザーが SQL*Plus内のアプリケーション・ロールにアクセスするのを防ぐには、PRODUCT_USER_PROFILEを使用して、SET ROLEコマンドを使用禁止にします。 このようにすると、SQL*Plusユーザーは、SQL*Plusを起動したときに使用可能になるロールに関連した権限しか使用できなくなります。 ユーザー・ロールの作成および使用方法の詳細は、『Oracle8i SQLリファレンス』および『Oracle8i管理者ガイド』を参照してください。

ロールの使用禁止ロールの使用禁止ロールの使用禁止ロールの使用禁止特定のユーザーに特定のロールを使用禁止にするには、Userid列にユーザーのユーザー名、Attribute列に ROLES、および Char_Value列にロール名を入れた行を PRODUCT_USER_PROFILEに挿入します。

Scope、Numeric_Valueおよび Date_Value列には NULLを入れます。 次に例を示します。

PRODUCT USERID ATTRIBUTE SCOPE NUMBERIC CHAR DATE VALUE VALUE VALUE------- ------ --------- ----- -------- ------ -----SQL*Plus SCOTT ROLES ROLE1SQL*Plus PUBLIC ROLES ROLE2

ログイン時には、上記の表の行は次のコマンドに変換されます。

SET ROLE ALL EXCEPT ROLE1, ROLE2

ユーザーがログイン後に SET ROLEコマンドを使用してロールを変更できないようにするには、SET ROLEコマンドを使用禁止にします。 詳細は、この付録の「SET ROLEの使用禁止」を参照してください。

ロールを再び使用可能にするには、制限を含む行を削除します。

注意注意注意注意 : Userid列に PUBLICまたは %を入力する場合は、すべてのユーザーに対してロールを使用禁止にします。 PUBLICに与えられるロールに対して %または PUBLICだけを使用するようにします。 ユーザーに与えられていないロールを使用禁止にしようとする場合、そのユーザーのロールは、どれも使用禁止にされません。

Page 318: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

ロール

E-8 SQL*Plusユーザーズ・ガイドおよびリファレンス

ロールロールロールロールSQLのコマンドを使用してOracle8iにデータベース表のセキュリティを確保するには、ロールを作成し、ロールへのアクセスを制御します。 ロールを作成し、そのロールにアクセスするユーザーを制御することによって、特定のデータベース権限に特定のユーザーのみアクセスできるようにします。

概要概要概要概要ロールは、SQLの CREATE、GRANTおよび SETコマンドで作成され、使用されます。

■ ロールを作成するには、CREATEコマンドを使用します。 パスワードなしのロールでもパスワード付きのロールでも作成できます。

■ ロールにアクセスを与えるには、GRANTコマンドを使用します。 この方法で、ロールに関連する権限にアクセスするユーザーを制御します。

■ ロールにアクセスするには、SET ROLEコマンドを使用します。 パスワード付きのロールを作成する場合、ユーザーは、そのパスワードを知らないとロールにアクセスできません。

ロールの詳細は、『Oracle8i SQLリファレンス』、『Oracle8i管理者ガイド』および『Oracle8i概要』を参照してください。

Page 319: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

旧リリースの SQL*Plusコマンド F-1

F旧リリースの旧リリースの旧リリースの旧リリースの SQL*Plusコマンドコマンドコマンドコマンド

この付録では、一部の SQLコマンドの旧バージョンについて説明します。 これらの旧コマンドは、これまでと同じように SQL*Plusで働きますが、SQL*Plusには、機能が改善された新しいコマンドがあります。

Page 320: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

BTITLE(旧形式)

F-2 SQL*Plusユーザーズ・ガイドおよびリファレンス

BTITLE(旧形式)(旧形式)(旧形式)(旧形式)

用途用途用途用途それぞれのリポート・ページの下部にタイトルを表示します。

構文構文構文構文BTI[TLE] text

使用方法使用方法使用方法使用方法旧形式の BTITLEコマンドは、書式設定機能に関しては、新形式と比べると制限されていますが、UFI(SQL*Plusの前身)との互換性を提供します。 旧形式で定義される下部タイトルでは、空白行が 1行入り、その後に中央揃えされたテキスト行が続きます。 詳細は、この付録の「TTITLE(旧形式)」を参照してください。

COLUMN DEFAULT

用途用途用途用途特定の列の表示属性をデフォルト値にリセットします。

構文構文構文構文COL[UMN] {column|expr} DEF[AULT]

使用方法使用方法使用方法使用方法COLUMN CLEARと同じ働きをします。

DOCUMENT

用途用途用途用途コマンド・ファイル内のドキュメンテーションのブロックを開始します。

構文構文構文構文DOC[UMENT]

Page 321: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET BUFFER

旧リリースの SQL*Plusコマンド F-3

使用方法使用方法使用方法使用方法コマンド・ファイルにコメントを挿入するための現行のメソッドの詳細は、第 3章の「後で使用するコマンドの保存」の「コマンド・ファイルへのコメントの挿入」、および第 8章「コマンド・リファレンス」の「REMARK」コマンドを参照してください。

DOCUMENTと入力して [Return]を押すと、SQL*Plusは、ドキュメンテーションの作成が終了するまで、「SQL>」のかわりに「DOC>」というプロンプトが表示されます。 ドキュメンテーションは、シャープ記号(#)のみ単独で入っている行で終わります。

DOCUMENTを OFFに設定してある場合、SQL*Plusは、DOCUMENTコマンドで作成したドキュメンテーションのブロックを表示しません。 詳細は、この付録の「SET DOCUMENT」を参照してください。

NEWPAGE

用途用途用途用途n行文のスプール出力を、次のページの先頭より先へ進めます。

構文構文構文構文NEWPAGE [1|n]

使用方法使用方法使用方法使用方法スプール出力を進めるための現行のメソッドの詳細は、第 8章の「SET」コマンドのNEWPAGE変数を参照してください。

SET BUFFER

用途用途用途用途指定したバッファを現行バッファにします。

構文構文構文構文SET BUF[FER] {buffer|SQL}

使用方法使用方法使用方法使用方法最初は、SQLバッファが現行バッファです。 SQL*Plusでは、複数のバッファを使用する必要はありません。SQLバッファのみで要件が満たされます。

Page 322: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET CLOSECURSOR

F-4 SQL*Plusユーザーズ・ガイドおよびリファレンス

入力したバッファが存在しない場合、SET BUFFERは、そのバッファを定義(作成および命名)します。 SQL*Plusを終了すると、SQL*Plusは、バッファおよびその内容を削除します。

問合せを実行すると、SQLバッファは、自動的に現行バッファになります。 バッファから別のバッファへテキストをコピーするには、GETおよび SAVEコマンドを使用します。 現行バッファからテキストを消去するには、CLEAR BUFFERを使用します。 別のバッファを使用しているときに SQLバッファからテキストを消去するには、CLEAR SQLを使用します。

SET CLOSECURSOR

用途用途用途用途カーソル使用動作を設定します。

構文構文構文構文SET CLOSECUR[SOR] {OFF|ON}

使用方法使用方法使用方法使用方法カーソルが、それぞれの SQL文の後でクローズおよび再オープンするかどうかを、ONまたは OFFで設定します。 この機能は、いくつかの環境でデータベース・サーバーのリソースを解放するのに有効です。

SET DOCUMENT

用途用途用途用途DOCUMENTコマンドで作成したドキュメンテーションのブロックを表示および抑止します。

構文構文構文構文SET DOC[UMENT] {OFF|ON}

使用方法使用方法使用方法使用方法SET DOCUMENT ONを指定すると、ドキュメンテーションのブロックが画面にエコー表示されます。 SET DOCUMENT OFFを指定すると、ドキュメンテーションのブロックの表示が抑制されます。

DOCUMENTコマンドの詳細は、この付録の「DOCUMENT」を参照してください。

Page 323: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET SPACE

旧リリースの SQL*Plusコマンド F-5

SET MAXDATA

用途用途用途用途SQL*Plusが処理できる最大行幅を設定します。

構文構文構文構文SET MAXD[ATA] n

使用方法使用方法使用方法使用方法SQL*Plusでは、最大行幅は制限されていません。 SQL*Plusは、SET MAXDATAを使用して設定した値を無視します。

SET SCAN

用途用途用途用途置換変数およびパラメータの存在確認のためのスキャンを制御します。 OFFを指定すると、置換変数およびパラメータの処理が抑制され、ONを指定すると、通常の処理ができます。

構文構文構文構文SET SCAN {OFF|ON}

使用方法使用方法使用方法使用方法ONを指定すると、SET DEFINE ONと同じ機能が得られます。

SET SPACE

用途用途用途用途出力内の列間の空白数を設定します。 nの最大値は 10です。

構文構文構文構文SET SPACE {1|n}

Page 324: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

SET TRUNCATE

F-6 SQL*Plusユーザーズ・ガイドおよびリファレンス

使用方法使用方法使用方法使用方法SET SPACE 0コマンドの機能は、SET COLSEPコマンドと同じです。 このコマンドは、SET COLSEPにかわりましたが、下位互換性のためにまだ使用できます。 SHOWコマンドを使用すると、COLSEPは認識しますが SPACEは認識しないので、COLSEPを使用する方が便利です。

SET TRUNCATE

用途用途用途用途SQL*Plusが、現行の行の幅に収まらないデータ項目を切り捨てるか折り返すかを制御します。

構文構文構文構文SET TRU[NCATE] {OFF|ON}

使用方法使用方法使用方法使用方法ONは、SET WRAP OFFと同じ働きをし、OFFは逆の働きをします。 SHOWコマンドを使用すると、WRAPは認識しますが TRUNCATEは認識しないので、WRAPを使用する方が便利です。

SHOW LABEL

用途用途用途用途現行セッションのセキュリティ・レベルを表示します。

構文構文構文構文SHO[W] LABEL

Page 325: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

TTITLE(旧形式)

旧リリースの SQL*Plusコマンド F-7

TTITLE(旧形式)(旧形式)(旧形式)(旧形式)

用途用途用途用途それぞれのリポート・ページの上部にタイトルを表示します。

構文構文構文構文TTI[TLE] text

使用方法使用方法使用方法使用方法旧形式の TTITLEコマンドは、書式設定機能に関しては、新形式と比べると制限されていますが、UFI(SQL*Plusの前身)との互換性を提供します。 旧形式で定義される上部タイトルは、最初の行に日付が左揃えで、ページ番号が右揃えで入り、次に、中央揃えのテキストを含む行が続き、最後に空白行が 1行入ります。

TTITLEは、ユーザーが入力する textタイトルとして表示します。

SQL*Plusは、SET LINESIZEが決める行サイズに基づいてテキストを中央揃えにします。 セパレータ文字(|)があると新しい行が始まります。行の中に 2個のセパレータ文字(||)があると、空白行が 1行挿入されます。 行セパレータ文字は、SET HEADSEPで変更できます。

旧形式の TTITLEおよび BTITLEのページ番号の書式設定を制御するには、_pageという名前の変数を定義します。 _pageのデフォルト値は、書式設定文字列 page &P4です。 書式を変更するには、次のように、新しい書式設定文字列を指定した DEFINE _pageを使用します。

SQL> SET ESCAPE / SQL> DEFINE _page = ’Page /&P2’

この書式設定文字列の場合、pageの頭文字が大文字で表示され、ページ番号の書式が 2文字の幅に設定されます。 pageは、すべてのテキストで置き換えることができ、幅は、すべての数値で置き換えることができます。 SQL*Plusがアンパサンド(&)を置換変数と解釈しないように、エスケープを設定する必要があります。 エスケープ文字の設定の詳細は、第 8章の「SET」コマンドの ESCAPE変数を参照してください。

コマンド名のすぐ後に有効な新形式の句が続いていない場合、SQL*Plusは、TTITLEを旧形式のコマンドと解釈します。

TTITLEとともに CENTERを使用して、1行に複数の語を入れるには、新形式の TTITLEを使用します。 詳細は、第 8章の「TTITLE」コマンドを参照してください。

Page 326: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

TTITLE(旧形式)

F-8 SQL*Plusユーザーズ・ガイドおよびリファレンス

例例例例旧形式の TTITLEを使用して、最初の行に左寄せの日付と右寄せのページ番号が示され、次の行に SALES DEPARTMENTが表示され、3番目の行に PERSONNEL REPORTが表示されるように上部タイトルを設定するには、次のように入力します。

SQL> TTITLE ’SALES DEPARTMENT|PERSONNEL REPORT’

Page 327: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -1

用語集用語集用語集用語集

ARCHIVELOG

オンライン REDOログ・ファイルを再利用する前にアーカイブする REDOログ・モード。 ARCHIVELOGモードは、インスタンスおよびディスク障害からデータベースを完全に回復する。 また、データベースをオープンし、使用可能なときにデータベースのバックアップを取ることができる。 ただし、アーカイブ REDOログをメンテナンスするために追加の管理操作が必要。 詳細は、「アーカイブ REDOログ(archived redo log)」を参照。

ASCII

デジタル・データを使用して印字可能文字を表すための規則。 ASCIIは、American Standard Code for Information Interchangeの頭文字。

CHARデータ型(データ型(データ型(データ型(CHAR datatype))))

ANSI/ISO互換性のための Oracleデータ型。 CHAR列は固定長の列。また、いくつかの印刷可能文字(たとえば、A、3、&、空白文字など)を含むことができ、1~ 2000文字またはNULLを格納できる。

CLOBデータ型(データ型(データ型(データ型(CLOB datatype))))

標準の Oracleデータ型の 1つ。 CLOBデータ型は、シングルバイトのキャラクタ・ラージ・オブジェクト・データを格納するのに使用され、最大 4GBまでの文字データを格納できる。

DATEデータ型(データ型(データ型(データ型(DATE datatype))))

日付と時刻のデータを格納するために使用される標準の Oracleデータ型。 標準の日付書式は、DD-MMM-YY(たとえば、23-NOV-98)。DATE列では、紀元前 4712年 1月 1日から西暦 4712年 12月 31日までの日付時刻を扱うことができる。

DBA

詳細は、「データベース管理者(database administrator: DBA)」を参照。

Page 328: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -2

DCL

詳細は、「データ制御文(Data Control Language: DCL)」を参照。

DDL

詳細は、「データ定義文(Data Definition Language: DDL)」を参照。

DML

詳細は、「データ操作文(Data Manipulation Language: DML)」を参照。

DUAL表(表(表(表(DUAL table))))

正確に 1行分だけデータを含む DUALという名前の標準の Oracleデータベース表。 DUAL表は、既知の結果(たとえば、真)を保証するために小さなダミー表(データは何でもよい)を必要とするアプリケーションに役立つ。

LGWR

詳細は、「ログ・ライター(LGWR)」を参照。

LONGデータ型(データ型(データ型(データ型(LONG datatype))))

標準の Oracleデータ型の 1つ。 LONG列は、A、3、&、空白文字などの印刷可能文字を 0~ 2GB含むことができる。

NCHARデータ型(データ型(データ型(データ型(NCHAR datatype))))

標準の Oracleデータ型の 1つ。 NCHARデータ型は、固定幅の各国キャラクタ・セット文字列を格納するのに使用され、列サイズの最大値は 2000バイト。

NCLOBデータ型(データ型(データ型(データ型(NCLOB datatype))))

標準の Oracleデータ型の 1つ。 NCLOBデータ型は、固定幅の各国キャラクタ・セット文字(NCHAR)データを格納するために使用される。最大 4GBの文字テキスト・データを格納できる。

Net8

あらゆるネットワーク上でのクライアント /サーバー間およびサーバー /サーバー間の通信を提供する Oracleのリモート・データ・アクセス・ソフトウェア。分散処理および分散データベース機能をサポートしている。 何度も実行し、多くの通信プロトコルを相互接続する。 SQL*Netバージョン 2と下位互換性になる。

NULL((((null))))

値が適用できないまたは値が未知であることを意味する値。 NULLは、特定のどの値(NULL同士でも)にも等しくない。 NULLとの比較は、常に偽になる。

NULL値(値(値(値(NULL value))))

値が存在しないこと。

Page 329: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -3

NUMBERデータ型(データ型(データ型(データ型(NUMBER datatype))))

標準の Oracleデータ型の 1つ。 NUMBER列は、数値を含むことができる。小数点および記号を含むこともできる。10進数で 1~ 105桁(38桁までが有効)扱うことができる。

NVARCHAR2データ型(データ型(データ型(データ型(NVARCHAR2 datatype))))

標準の Oracleデータ型の 1つ。 NVARCHAR2データ型は、可変長 NCHAR文字列を格納するのに使用される。 NVARCHAR2幅指定は、各国文字キャラクタ・セットが固定幅の場合は、文字数を示す。各国文字キャラクタ・セットが可変幅の場合は、バイト数を示す。 列サイズの最大値は 4000バイト。

Oracle Forms

Oracleデータベース内のデータを参照および変更するための、フォームと呼ばれるフルスクリーン対話型アプリケーションを作成、メンテナンスおよび実行させるための非プロシージャ型ツール。 ブロック・モード、キャラクタ・モードまたはビットマップ環境で使用するために対話型スクリーンを作成するための第 4世代言語。 Oracle Formsには、定義時コンポーネントおよび実行時コンポーネントがある。

Oracle RDBMS

オラクル社が開発した RDBMS(リレーショナル・データベース管理システム)。 RDBMSのコンポーネントは、データベース管理者およびデータベース・ユーザーが使用するカーネルおよびさまざまなユーティリティを含む。

Oracle Server

オラクル社が販売している RDBMS(リレーショナル・データベース管理システム)。 RDBMSのコンポーネントは、DBAおよびデータベース・ユーザーが使用するカーネルおよびさまざまなユーティリティを含む。

PL/SQL

SQLを拡張したオラクル社のプロシージャ型言語。 PL/SQLは、SQLの使いやすさおよび柔軟性と構造化プログラミング言語のプロシージャ型機能(IF...THEN、WHILE、LOOPなど)を結合させる。 PL/SQLがデータベースに格納されていない場合でも、アプリケーションは、個々の SQL文ではなく PL/SQLのブロックをデータベースに送るので、ネットワークの通信量を軽減できる。

RAWデータ型(データ型(データ型(データ型(RAW datatype))))

標準の Oracleデータ型。RAWデータ列は、バイナリを含むすべての形式のデータを格納するのに使用される。 RAW列を使用して、バイナリ(非文字)・データを格納できる。

Page 330: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -4

RDBMS(リレーショナル・データベース管理システム)((リレーショナル・データベース管理システム)((リレーショナル・データベース管理システム)((リレーショナル・データベース管理システム)(Relational Database Management System))))

Oracle7(およびそれ以前)の用語。 データベース内の実際のデータだけでなく、システムの作成およびメンテナンスに使用するソフトウェアを指す。 詳細は、「リレーショナル・データベース管理システム (Relational Database Management System: RDBMS)」、「サーバー(Server)」、「Oracle Server」および「Oracle RDBMS」を参照。

REDOログ(ログ(ログ(ログ(redo log))))

データに与えたすべての変更の連続したログ。 REDOログは、変更がディスクに書き込まれるのを防ぐ障害のイベント内で書き込まれたり使用されたりする。 REDOログは、複数のREDOログ・ファイルから構成される。

REDOログ・ファイル(ログ・ファイル(ログ・ファイル(ログ・ファイル(redo log file))))

データベースへのすべての変更のレコードを含むファイル。 これらのファイルは、回復操作のために使用される。 詳細は、「REDOログ(redo log)」を参照。

SELECT文(文(文(文(SELECT statement))))

1つ以上の表またはビューからフェッチする行および列を指定する SQL文。 詳細は、「SQL文(SQL statement)」を参照。

SELECTリスト(リスト(リスト(リスト(SELECT list))))

問合せ内のキーワード SELECTに続く項目のリスト。 これらの項目には、列名、SQL関数、定数、疑似列、列の計算および別名が含まれる。 問合せの結果に含まれる列の数は、SELECTリスト内の項目の数と合致する。

SETコマンド変数(コマンド変数(コマンド変数(コマンド変数(SET command variable))))

詳細は、「システム変数(system vaiable)」を参照。

SGA

詳細は、「システム・グローバル領域(System Global Area: SGA)」を参照。

SQL*Loader

オペレーティング・システム・ファイルから Oracleデータベース表にデータをロードするために使用する Oracle Tool。

SQL*Net

Net8の前の製品。 Oracle Serverとともに動作し、Oracle RDBMSまたは Oracle Tools(たとえば、SQL*Forms)を実行する複数のコンピュータをネットワークを介してデータを交換できるようにする Oracle製品。 SQL*Netは、分散処理および分散データベース機能をサポートしている。 SQL*Netは、何度も実行し、多くの通信プロトコルを相互接続する。

Page 331: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -5

SQL*Plus

データの操作、データの定義および Oracleデータベースに対するアクセス権の定義を行うための SQLを基盤とした対話型言語。 多くの場合、エンドユーザーのレポート作成ツールとして使用される。

SQLコマンド(コマンド(コマンド(コマンド(SQL command))))

詳細は、「SQL文(SQL statement)」を参照。

SQLスクリプト(スクリプト(スクリプト(スクリプト(SQL script))))

SQL*Plus中で実行できる SQL文を含むファイルで、データベース管理を迅速および簡単に実行できる。

SQLバッファ(バッファ(バッファ(バッファ(SQL buffer))))

ユーザーが入力した最新の SQLコマンドまたは PL/SQLブロックを保持するデフォルト・バッファ。 SQL*Plusコマンドは、SQLバッファに記憶されない。

SQL(標準化照会言語)((標準化照会言語)((標準化照会言語)((標準化照会言語)(Structured Query Language))))

リレーショナル・システム用に国際的に認められている規格。問合せでだけでなく、データの定義、操作、セキュリティおよび参照整合性のいくつかの局面にも使用される。 詳細は、「データ操作文(Data Manipulation Language: DML)」、「データ定義文(Data Definition

Language: DDL)」および「データ制御文(Data Control Language: DCL)」を参照。

SQL文(文(文(文(SQL statement))))

SQL言語で記述された完全なコマンドまたは文。 文(statement)(SQL)と同義語。

SYSDBA

ADMIN OPTIONおよび SYSOPERシステム権限とともに、すべてのシステム権限を含んでいる権限。 詳細は、「SYSOPER」を参照。

SYSOPER

DBAが STARTUP、SHUTDOWN、ARCHIVE LOG、RECOVERなどの操作を実行できるようにする権限。 詳細は、「SYSDBA」を参照。

SYSTEMユーザー名(ユーザー名(ユーザー名(ユーザー名(SYSTEM username))))

それぞれのデータベースに自動的に作成される 2つの標準 DBAユーザー名のうちの 1つ(もう 1つは SYS)。 Oracleユーザー SYSTEMは、MANAGERというパスワードで作成される。ユーザー名 SYSTEMは、データベース・メンテナンスを実行するDBAが優先的に使用する。

SYSユーザー名(ユーザー名(ユーザー名(ユーザー名(SYS username))))

詳細は、「SYSTEMユーザー名(SYSTEM username)」を参照。

Page 332: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -6

USERID

オプションの Net8アドレスを使用して Oracleユーザー名およびパスワードを指定できるようになるコマンド行引数。

VARCHAR

Oracleデータ型の 1つ。 このデータ型は、Oracleの VARCHAR2データ型(後述の定義を参照)と同じように機能する。 ただし、将来的に VARCHARの機能を変更する場合があるので、VARCHARのかわりに VARCHAR2の使用を推奨する。

VARCHAR2

Oracleデータ型の 1つ。 これは、可変長の英数字文字列。最大長は、4000文字。 列型VARCHAR2に入力されたデータが 4000文字未満の場合、空白の埋込みは行われず、データは入力されたとおりの長さで格納される。 入力されたデータが 4000を超える場合、エラーが発生。

アーカイブアーカイブアーカイブアーカイブ REDOログ(ログ(ログ(ログ(archived redo log))))

再使用する前にオンライン REDOログ・ファイルをアーカイブするリカバリー構造。

アカウント(アカウント(アカウント(アカウント(account))))

オペレーティング・システムまたは製品(Oracleデータベース・サーバー、Oracle Formsなど)の許可があるユーザー。 ご使用のオペレーティング・システムによっては、ID、ユーザー ID、ログインなどとして参照される。 アカウントは、システム管理者が作成して、制御する。

アンマウント・データベース(アンマウント・データベース(アンマウント・データベース(アンマウント・データベース(dismounted database))))

インスタンスによってマウントされていないデータベース。そのため、アンマウント・データベースは、オープンできず使用できない。

位置合せ(位置合せ(位置合せ(位置合せ(alignment))))

データをフィールド内で位置づける方法。 定義されたフィールド幅で左揃え、右揃え、中央揃え、フラッシュ /左揃え、フラッシュ /右揃え、またはフラッシュ /中央揃えに位置合せができる。

インスタンス(インスタンス(インスタンス(インスタンス(instance))))

Oracleデータベースへのアクセスが必要なバックグランド・プロセスおよびメモリー領域。 データベース・システムには、1つのインスタンスおよび 1つのデータベースが必要。 Oracleデータベース・サーバーは、SGAおよび Oracleデータベース・サーバー・システムの一連のプロセスから構成される。

Page 333: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -7

インスタンス回復(インスタンス回復(インスタンス回復(インスタンス回復(instance recovery))))

ソフトウェアまたはハードウェア障害のイベント内のインスタンスの回復。インスタンスの回復を行うと、再びデータベースが使用可能になる。 インスタンスが異常終了すると、次回のインスタンス起動でインスタンス回復が自動的に行われる。

インスタンス障害(インスタンス障害(インスタンス障害(インスタンス障害(instance failure))))

詳細は、「データベース・インスタンス障害(database instance failure)」を参照。

エディタ(エディタ(エディタ(エディタ(editor))))

ファイルの作成または変更を行うプログラム。

エラー・メッセージ(エラー・メッセージ(エラー・メッセージ(エラー・メッセージ(error message))))

コンピュータ・プログラム(たとえば、SQL*Plus)からのメッセージ。プログラムまたはコマンドの実行を妨げる潜在的な問題をユーザーに通知する。

エンド・ユーザー(エンド・ユーザー(エンド・ユーザー(エンド・ユーザー(end user))))

システムの開発対象になるユーザー。たとえば、航空座席予約システムのエンド・ユーザーは、航空座席予約事務員になる。 詳細は、「SQL*Plus」を参照。

オープン・データベース(オープン・データベース(オープン・データベース(オープン・データベース(open database))))

インスタンスによってマウントおよびオープンされ、ユーザーのアクセスが可能なデータベース。 データベースがオープンしている場合、ユーザーは、データベースを含む情報にアクセスできる。 詳細は、「マウント・データベース(mounted database)」を参照。

オブジェクト(オブジェクト(オブジェクト(オブジェクト(object))))

オブジェクト型のインスタンス。 Oracle8では、オブジェクトは、データベースに格納されて接続されていたり、PL/SQLまたは Oracle Call Interface(OCI)の変数で一時的なものであったりする。 詳細は、「オブジェクト型(object type)」を参照。

オブジェクト・リレーショナル・モデル(オブジェクト・リレーショナル・モデル(オブジェクト・リレーショナル・モデル(オブジェクト・リレーショナル・モデル(object-relational model))))

単一のシステムへのリレーショナルおよびオブジェクト・データ・モデルのキー・アスペクトを結合するデータベース・モデル。 Oracle8は、オブジェクト・リレーショナル・データベース・システム。

オブジェクト型(オブジェクト型(オブジェクト型(オブジェクト型(object type))))

オブジェクトの構造および動作をモデルとするユーザー定義型。 異なるプログラミング言語内のクラスの概念と等しい。 Oracle8では、オブジェクト型には、属性およびメソッドのあるパブリック・インタフェースがある。 オブジェクト型は、抽出データ型と呼ばれることもある。

Page 334: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -8

オペレーティング・システム(オペレーティング・システム(オペレーティング・システム(オペレーティング・システム(operating system))))

コンピュータ・リソースを管理するシステム・ソフトウェア。メモリーの割当てなどの基本的な操作を実行したり、コンピュータ・コンポーネントを通信できるようにしたりする。

折返し(折返し(折返し(折返し(wrapping))))

レポートまたは出力の機能の 1つ。テキスト全体が 1行で収まらない場合に、テキストの一部を新しい行に移動させる機能。

オンラインオンラインオンラインオンライン REDOログ(ログ(ログ(ログ(online redo log))))

(1)アーカイブされていないが、データベース・アクティビティをレコードするためのインスタンスに使用可能か、満杯になっており、アーカイブまたは再使用を待ち合せているREDOログ・ファイル。 (2)データベースへ行われたすべての変更をレポートしている複数のオンライン REDOログ・ファイルのセット。

改ページ(改ページ(改ページ(改ページ(form feed))))

実行すると、プリンタが新しい用紙の上端へ移動する制御文字。 SQL*Plusで改ページを表示すると、ほとんどの端末では、改ページによって画面がクリアされる。

拡張子(拡張子(拡張子(拡張子(extension))))

いくつかのオペレーティング・システムで、完全なファイル仕様部の 2番目の部分。 いくつかの標準のファイル拡張子は、ファイルの種類または用途を示すために使用される。たとえば、SQL、LOG、LIS、EXE、BAT、DIRなどがそれにあたる。いくつかのオペレーティング・システムでは、ファイル・タイプと呼ばれる。

型(型(型(型(type))))

列には、文字、日付、数字または LONGのいずれかの型の情報を含む。 ユーザーが列の内容に対して実行できる操作は、その列に入っている情報の型によって異なる。 詳細は、「書式(format)」を参照。

行(行(行(行(row))))

(1)レコードの同義語。複数の列に対する値を持つデータベース表内の 1行になっているデータ。 タプルと呼ばれることもある。 (2)問合せの出力に含まれる一連のフィールド値。 詳細は、「列(column)」を参照。

切捨て(切捨て(切捨て(切捨て(truncate))))

故意にまたは誤って、値の先頭または終わりから 1つ以上の文字を破棄するか失うこと。

句(句(句(句(clause))))

SQL文の一部。句自体は、SQLの全文にはならない。たとえば、"WHERE句 "がそれにあたる。

Page 335: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -9

クライアント(クライアント(クライアント(クライアント(client))))

他のアプリケーションまたはコンピュータ(サーバー)のサービス、データまたは処理が必要なユーザー、ソフトウェア・アプリケーションまたはコンピュータ。 2タスク環境では、クライアントはユーザー・プロセス。 ネットワーク環境環境では、クライアントはローカル・ユーザー・プロセスで、サーバーはローカルまたはリモートになる。

計算(計算(計算(計算(computation))))

データベースからフェッチしたデータでランタイム計算を実行するために使用される。 これらの計算は、SELECT文で直接実行できる種類の計算のスーパーセット。 詳細は、「計算式列(formula column)」を参照。

計算結果列(計算結果列(計算結果列(計算結果列(computed column))))

詳細は、「計算(computation)」を参照。

計算式列(計算式列(計算式列(計算式列(formula column))))

PL/SQLプロシージャ、ファンクションまたは式、ユーザー・イグジット、SQL文またはそれらの任意の組合せからデータを取得する手動で作成された列。

現在行(現在行(現在行(現在行(current line))))

SQL*Plusエディタなどのエディタで、編集コマンドが影響を及ぼす現行バッファ内の行。

構成(構成(構成(構成(configuration))))

Net8で、ネットワーク通信を準備するための一連の指示。詳細は、Net8のマニュアルを参照。

構成ファイル(構成ファイル(構成ファイル(構成ファイル(configuration files))))

ネットワークのコンポーネントの識別および特性の設定をするために使用されるファイル。 構成とは、主にネットワーク・コンポーネントの名前を指定し、それらのコンポーネント間の関係を識別するプロセスのこと。

構文(構文(構文(構文(syntax))))

コマンド、修飾子およびパラメータを結合して、有効なコマンド文字列を形成するための規則系。

コマンド(コマンド(コマンド(コマンド(command))))

特定のタスクを実行するための、プログラム、アプリケーション、オペレーティング・システムまたは他のソフトウェアの要求、またはそれらへの指示。 コマンドは、1つの単語の場合、またはその他の句、さまざまな引数、オプション、パラメータまたは修飾子を必要とする場合がある。 文とは異なり、コマンドは、入力するとすぐに実行される。 SQL*Plusコマンドとしては、ACCEPT、CLEARおよび COPYコマンドなどがそれにあたる。

Page 336: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -10

コマンド行(コマンド行(コマンド行(コマンド行(command line))))

キーボード入力したコマンドが表示されるコンピュータの画面上の行。 たとえば、コンピュータの DOSプロンプトに続く領域がそれにあたる。 詳細は、「プロンプト(prompt)」を参照。

コマンド・ファイル(コマンド・ファイル(コマンド・ファイル(コマンド・ファイル(command file))))

対話形式で入力できる一連のコマンドを含んだファイル。 このファイルは保存されるので、利便性が良く再実行ができる。 コマンド・ファイルは、通常、オペレーティング・システムに固有の名前で呼ばれる。 SQL*Plusでは、START、@または @@コマンドで実行できる。

コマンド・プロンプト(コマンド・プロンプト(コマンド・プロンプト(コマンド・プロンプト(command prompt))))

デフォルトでは SQL>というテキスト。これを使用して、SQL*Plusは次のコマンドを要求する。

コミット(コミット(コミット(コミット(commit))))

データベース内のデータに永続的な変更(挿入、更新、削除)を加えること。 変更をコミットする前は、変更を格納したり、データを以前の状態に復元できるように新旧両方のデータが存在する。

コメント(コメント(コメント(コメント(comment))))

プログラムに説明のテキストを挿入するための言語要素。コメントを実行しても影響はない。

サーバー(サーバー(サーバー(サーバー(Server))))

Oracleデータベースへの並行した、共有データ・アクセスに必要な機能を処理する Oracleソフトウェア。 サーバー部は、クライアント・アプリケーションから発行された SQL文および PL/SQL文を取り出して処理する。 サーバー部を管理するコンピュータは、その負荷に合せて最適化されている必要がある。

サマリー(サマリー(サマリー(サマリー(summary))))

サマリーまたはサマリー列を使用して、小計、総合計、実行合計および他のレポート内のデータの合計を計算する。

サマリー行(サマリー行(サマリー行(サマリー行(summary line))))

合計、平均、最大値または他の計算した値を含むレポート内の行。 ユーザーは、BREAKおよび COMPUTEコマンドを使用してサマリー行を作る。

式(式(式(式(expression))))

既存の値から新しい値を計算するために使用される SALARY + COMMISSIONなどの式。 式は、列名、関数、演算子および定数から形成できる。 式は、コマンドまたは SQL文にある。

Page 337: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -11

システム・エディタ(システム・エディタ(システム・エディタ(システム・エディタ(system editor))))

オペレーティング・システムが提供するテキスト・エディタ。

システム管理者(システム管理者(システム管理者(システム管理者(system administrator))))

コンピュータのオペレーティング・システムの運用およびメンテナンスに対する責任者。

システム・グローバル領域(システム・グローバル領域(システム・グローバル領域(システム・グローバル領域(System Global Area: SGA))))

ユーザー・プロセスおよびバックグランド・プロセス(たとえば、1つの Oracleインスタンスに対するデータおよび制御情報など)が要求する情報を含む共有格納領域。

SGAは、Oracleインスタンスが起動するときに割り当てられ、インスタンスが停止するときに割当てが解除される。

システム変数(システム変数(システム変数(システム変数(system vaiable))))

状態または環境を示す変数。Oracleまたは SQL*Plusによってデフォルト値を与えられる。 たとえば、LINESIZE、PAGESIZEなど。 SQL*Plusコマンドの SHOWおよび SETを使用して、システム変数を表示および変更する。

自動コミット(自動コミット(自動コミット(自動コミット(autocommit))))

SQL*Plus固有の機能。SQLコマンドまたは PL/SQLブロックが正常に実行されるたびに、SQL*Plusが自動的にデータベースへの変更をコミットできるようになる。 SETコマンドのAUTOCOMMIT変数を ONに設定すると、この機能が使用できるようになる。 AUTOCOMMIT変数を nに設定すると、INSERT、UPDATEまたは DELETEコマンド、または PL/SQLブロック n回正常に実行されるたびに、この機能が使用できるようになる。

出力(出力(出力(出力(output))))

リポートを実行した後の結果。 出力は、画面に表示されたり、ファイルに格納されたり、用紙に印刷されたりする。

出力ファイル(出力ファイル(出力ファイル(出力ファイル(output file))))

コンピュータからデータを転送する先のファイル。

小計(小計(小計(小計(subtotal))))

リポートで、数値列内の値の合計。ブレーク・フィールド内の同じ値がある行のグループから取られる。 詳細は、「サマリー(summary)」を参照。

書式(書式(書式(書式(format))))

情報を含む列の文字、数値、日付、LONGなどの型。ユーザーは、問合せでそれらの列から取り出す情報の書式を設定できる。 たとえば、日付型の情報は、23/11/98、Monday Twenty-third November 1998、またはその他の有効な日付書式で表示される。

Page 338: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -12

書式モデル(書式モデル(書式モデル(書式モデル(format model))))

リポート列の値の外観を制御する句の要素。 COLUMN、TTITLEおよび BTITLEコマンドのFORMAT句に事前定義済みの書式モデルを指定する。 TO_DATEなどの SQLの日付変換関数の DATE列に対して書式モデルを使用できる。

スキーマ(スキーマ(スキーマ(スキーマ(schema))))

データの論理構造、つまりスキーマ・オブジェクトの集まり。 スキーマは、データベース・ユーザーによって所有され、そのユーザーと同じ名前が付けられる。

スプーリング(スプーリング(スプーリング(スプーリング(spooling))))

出力をディスク格納領域に送信または保存すること。 通常は、ファイルを印刷または転送するために使用される。 SQL*Plusの SPOOLコマンドは、スプーリングを制御する。

セキュリティ・レベル(セキュリティ・レベル(セキュリティ・レベル(セキュリティ・レベル(security level))))

階層型の分類および情報の機密度を表す非階層型格納機構を組み合せたもの。

セッション(セッション(セッション(セッション(session))))

ユーザー名が Oracleデータベースに接続してから、切断する前までの時間およびその時間内に発生したイベント。

接続(接続(接続(接続(connect))))

データベースにアクセスするためにユーザーがユーザー名およびパスワードを入力して、Oracleに対して自分自信を識別させること。 SQL*Plusで、CONNECTコマンドを使用すると、Oracleからログオフし、指定するユーザー名で再度ログオンできる。

接続文字列(接続文字列(接続文字列(接続文字列(connect string))))

Net8がネットワーク上の特定の Oracleインスタンスに接続するために使用する一連のパラメータ。プロトコルも含まれる。

選択(選択(選択(選択(select))))

問合せ(SQL文の SELECT)を使用して、複数のデータベース表から行をフェッチすること。

タイトル(タイトル(タイトル(タイトル(title))))

レポートのそれぞれのページの上端または下端に表示される複数の行。 TTITLEおよびBTITLEコマンドを使用して、タイトルの設定および書式設定を行う。

タイマー(タイマー(タイマー(タイマー(timer))))

TIMINGコマンドが作成する内部記憶域。

Page 339: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -13

置換変数(置換変数(置換変数(置換変数(substitution variable))))

SQL*Plusで、前に 1つか 2つのアンパサンド(&)が付いた変数名または数字。 置換変数をコマンド・ファイル内で使用して、コマンド・ファイルを実行するときに提供される値を表す。

注釈(注釈(注釈(注釈(remark))))

SQL*Plusで、REMARKコマンドを使用してコマンド・ファイルに挿入できるコメント。

ディレクトリ(ディレクトリ(ディレクトリ(ディレクトリ(directory))))

いくつかのオペレーティング・システムで、ファイル・グループ用の名前付きの記憶領域。 実際には、ディレクトリは、特定のデバイス上にある一連のファイルをリストにした 1つのファイル。

データ型(データ型(データ型(データ型(datatype))))

(1)データの標準型。 Oracleのデータ型には、CHAR、NCHAR、VARCHAR2、NVARCHAR2、DATE、NUMBE、LONG、CLOB、NCLOB、RAWおよび LONG RAWがある。ただし、Oracleデータベース・サーバーは、他の標準データ型も認識し変換する。 (2)ある項目にプロパティとして対応付けることができる固定属性の名前付きのセット。 データ型を指定すると、データの動作を定義できる。

データ制御文(データ制御文(データ制御文(データ制御文(Data Control Language: DCL))))

データおよびデータベースへのアクセスを制御する SQL文のカテゴリ。 GRANTおよびREVOKE文がそれにあたる。 DCL文は、DML文とともにグループ化される場合がある。

データ・セキュリティ(データ・セキュリティ(データ・セキュリティ(データ・セキュリティ(data security))))

オブジェクト・レベルでのデータベースのアクセスおよび使用を制御する仕組み。 たとえば、データ・セキュリティは、特定のスキーマ・オブジェクトへのアクセスおよびオブジェクト上でそれぞれのユーザーが許可されている特定のタイプのアクション(たとえば、ユーザーSCOTTが SELECTおよび INSERT文を発行できるが、EMP表を使用して DELETE文を発行することはできないなど)を含む。 データ・セキュリティには、それぞれのスキーマ・オブジェクトに対して監査されるアクション(ある場合)も含まれる。

データ操作文(データ操作文(データ操作文(データ操作文(Data Manipulation Language: DML))))

データベース・データを問い合せたり更新したりする SQL文のカテゴリ。 一般的な DML文として、SELECT、INSERT、UPDATEおよび DELETEがある。 DCL文は、DML文とともにグループ化される場合がある。

データ定義文(データ定義文(データ定義文(データ定義文(Data Definition Language: DDL))))

表、ビューなどのデータベース・オブジェクト定義したり削除したりする SQL文のカテゴリ。 CREATE、ALTERおよび DROP文がそれにあたる。

Page 340: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -14

データ・ディクショナリ(データ・ディクショナリ(データ・ディクショナリ(データ・ディクショナリ(data dictionary))))

Oracleデータベース・サーバーによって自動的に作成され更新される表およびビューのセット。ユーザー、データ格納状態および権限に関する管理情報を含む。 データ・ディクショナリは、Oracleを最初にインストールするときにインストールされる。Oracleデータベース・サーバー自体およびすべての Oracleユーザーのための中心的な情報ソースになる。 表は、Oracleによって自動的にメンテナンスされる。 データ・ディクショナリは、カタログと呼ばれる場合がある。

データベース(データベース(データベース(データベース(database))))

1つの単位として扱われ、Oracleデータベース・サーバーが一連のデータ・ディクショナリ表およびユーザー表を格納するオペレーティング・システム・ファイルの集合。 データベースには、データベース・ファイル、REDOログ・ファイルおよび制御ファイルの 3種類のファイルが必要。

データベース・インスタンス障害(データベース・インスタンス障害(データベース・インスタンス障害(データベース・インスタンス障害(database instance failure))))

Oracleデータベース・インスタンス(SGAおよびバックグラウンド・プロセス)の作業の継続を妨げる問題が生じた場合に発生する障害。 インスタンスの障害は、オペレーティング・システム・クラッシュのようなソフトウェアの問題、または停電などによるハードウェアの問題が原因。 インスタンス障害が発生した場合、SGAのバッファ内のデータは、データ・ファイルに書き込まれない。

データベース・オブジェクト(データベース・オブジェクト(データベース・オブジェクト(データベース・オブジェクト(database object))))

データベース内に作成され格納されたもの。 データベース・オブジェクトとして、表、ビュー、シノニム、索引、順序、クラスタ、列などがある。

データベース管理者(データベース管理者(データベース管理者(データベース管理者(database administrator: DBA))))

(1)Oracle Serverデータベースまたはデータベース・アプリケーションの運用およびメンテナンスの責任者。 データベース管理者は、サーバーまたはデータベースをカスタマイズしてユーザーのローカル・コミュニティのニーズに応じるために使用状況を監視する。 (2)DBA権限を持ち、データベース管理機能を実行できる Oracleユーザー名。 通常、これら 2つを同時に意味する。 1つのサイトに複数の DBAが存在する場合がある。

データベース・サーバー(データベース・サーバー(データベース・サーバー(データベース・サーバー(database server))))

Oracle Serverカーネルを実行しているノードまたはコンピュータ。 データベース・サーバーは、データベースを保持し、Oracle Serverカーネルを実行する。MS-DOS PCまたはMacintoshでは存在しない(OS/2 PCの場合は存在する)。また、データベース・サーバーは、マルチタスク・オペレーティング・システムを実行する。

データベース指定(データベース指定(データベース指定(データベース指定(database specification))))

データベースを識別する英数字コード。Net8操作でデータベースを指定したり、データベース・リンクを定義したりするために使用する。 SQL*Plusでは、COPY、CONNECTまたは SQLPLUSコマンドにデータベース指定を設定できる。

Page 341: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -15

データベース文字列(データベース文字列(データベース文字列(データベース文字列(database string))))

Net8パラメータの文字列の 1つ。ネットワーク接頭辞および接続するホスト・システムおよびホスト・システム上のデータベースのシステム IDを示すために使用される。

データベース・リンク(データベース・リンク(データベース・リンク(データベース・リンク(database link))))

ローカル・データベースに格納されているオブジェクト。リモート・データベース、リモート・データベースへの通信パス、および、場合によっては、リモート・データベースに対するユーザー名およびパスワードを識別する。 データベース・リンクを定義しておくと、そのリンクを使用して、リモート・データベースの表に問合せを実行できる。 DBリンクとも呼ばれる。 SQL*Plusでは、DESCRIBEコマンドまたは COPYコマンドにデータベース・リンクを設定できる。

テキスト・エディタ(テキスト・エディタ(テキスト・エディタ(テキスト・エディタ(text editor))))

ホスト・コンピュータのオペレーティング・システムで実行されるプログラムの 1つ。ホスト・システム・ファイル、および SQLコマンド、SQL*Plusコマンドあるいは PL/SQLブロックを含んでいる SQL*Plusコマンド・ファイルの作成および編集に使用される。

デフォルト(デフォルト(デフォルト(デフォルト(default))))

ユーザーが指定しなかった場合に SQLが使用する句またはオプションの値。

デフォルト・データベース(デフォルト・データベース(デフォルト・データベース(デフォルト・データベース(default database))))

詳細は、「ローカル・データベース(local database)」を参照。

問合せ(問合せ(問合せ(問合せ(query))))

任意の組合せ、式または順序でデータを取り出す SQL SELECT文。 問合せは、読取り専用操作。データを変更しないで、データを取り出すだけ。 多くの場合、問合せは、DML文であると考えられる。

問合せ結果(問合せ結果(問合せ結果(問合せ結果(query results))))

問合せを実行した結果、検索されたデータ。

トランザクション(トランザクション(トランザクション(トランザクション(transaction))))

単一のユーザーが実行する複数の SQL文を導出する論理作業単位。 Oracleと互換性のあるANSI/ISOの SQL規格によると、トランザクションは、ユーザーの最初の実行可能な SQL文で開始される。 ユーザーが明示的にコミットまたはロールバックすると、トランザクションは終了する。

ネットワーク(ネットワーク(ネットワーク(ネットワーク(network))))

データあるいは周辺機器を共有できるようにするために、ハードウェアおよびソフトウェアを介してお互いにリンクされた複数のコンピュータのグループ。

Page 342: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -16

バイト(バイト(バイト(バイト(byte))))

8つの連続したビットからなるグループ。英字、数値または記号(すなわち文字)を表す。 コンピュータによってデータの単位として扱われる。

配列処理(配列処理(配列処理(配列処理(array processing))))

一度に 1行ではなく複数のデータ行に対して実行される処理。 SQL*Plus、Export/Import、プリコンパイラなどの Oracleユーティリティでは、ユーザーが入れる配列のサイズを設定できる。配列のサイズを大きくすると、パフォーマンスが向上する場合がある。

バインド参照バインド参照バインド参照バインド参照

PL/SQL構成体または SQL SELECT内の単一のリテラル値(たとえば、文字列、数値、日付など)を変換するために使用されるパラメータへの参照。 バインド参照では、パラメータ名の前にコロン(:)を付ける必要がある。

バインド変数(バインド変数(バインド変数(バインド変数(bind variable))))

SQL文の中の変数。SQL文を正常に実行するには、バインド変数を有効な値または値のアドレスに置換する必要がある。

パスワード(パスワード(パスワード(パスワード(password))))

ユーザー名に対応付けられた 2次的な識別単語(または、英数字の文字列)。 パスワードは、データ・セキュリティに対して使用され、所有者だけが知っている。 パスワードは、オペレーティング・システムまたはソフトウェア・アプリケーション(Oracleデータベースなど)に接続するために、オペレーティング・システムのログイン ID、ユーザー名またはアカウント名を使用して入力される。 ユーザー名または IDがパブリックなものであるのに対して、秘密パスワードは、ユーザー名の所有者だけがその名前を使用し、データにアクセスできることを保証する。

バックグラウンド・プロセスバックグラウンド・プロセスバックグラウンド・プロセスバックグラウンド・プロセス

オペレーティング・システム環境で起動し、サービスまたはアクションを実行する非対話型処理。 Oracleデータベース・サーバー製品によっては、データベース処理を異なったタスクに使用する場合がある。たとえば、データベースの同時ユーザーにかわって行うタスクの実行および調整、電子メッセージの処理および配信、印刷サービスのなどがそれにあたる。

パッケージ(パッケージ(パッケージ(パッケージ(package))))

データベース内で 1つの単位として、関連するプロシージャ、ファンクションおよび他のパッケージ構成体をまとめてカプセル化したり格納したりする方法。 パッケージを使用すると、データベース管理者またはアプリケーション開発者にとって機能がまとめられているので便利なだけではなく、機能およびデータベースのパフォーマンスも向上する。

バッファ(バッファ(バッファ(バッファ(buffer))))

ユーザーの SQL文または PL/SQLブロックが一時的に格納される領域。 SQLバッファが、デフォルト・バッファ。 複数のバッファからコマンドを編集および実行できる。ただし、SQL*Plusは、複数のバッファを使用する必要がない。

Page 343: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -17

幅(幅(幅(幅(width))))

列、パラメータまたはレイアウトのオブジェクトの幅。 幅は、文字で測定される。空白も 1文字として扱われる。

パラメータ(パラメータ(パラメータ(パラメータ(parameter))))

アンパサンドの後に 1つの数字を続けて構成した置換変数(&1、&2など)。 コマンド・ファイル内でパラメータを使用する。STARTコマンドの引数を介してパラメータに値を渡す。

パラレル・サーバー(パラレル・サーバー(パラレル・サーバー(パラレル・サーバー(parallel server))))

複数のコンピュータがデータへのアクセス、ソフトウェアまたは周辺装置を共有できるようになるいくつかのハードウェア・アーキテクチャ(たとえば、疎結合されたプロセッサ)。 パラレル・サーバー・オプションのあるシステムを使用すると、Oracleは、単一の物理データベースを共有する複数のデータベース・インスタンスを起動して、そのようなハードウェア・プラットフォームを利用する。 適切なアプリケーションでは、Oracle Parallel Serverを使用すると、データベースのパフォーマンスを向上させたまま、ユーザーは複数のマシン上で 1つのデータベースにアクセスできる。

引数(引数(引数(引数(argument))))

STARTコマンド内でコマンド・ファイル名に続くデータ項目。 引数は、コマンド・ファイル内のパラメータに値を提供する。

ビット(ビット(ビット(ビット(bit))))

データの最小単位。 ビットに使用される値は、0と 1の 2つだけ。ビットは、8つずつ結合してバイトというグループにまとめられる。 詳細は、「バイト(byte)」を参照。

表(表(表(表(table))))

RDBMS(リレーショナル・データベース管理システム)の記憶領域の基本単位。 表は、エントリおよび関係を表し、同じ値(列)の種類を含む複数の情報単位(行)で構成される。 それぞれの列は、列名、データ型(たとえば、CHAR、NCHAR、VARCHAR2、NVARCHAR2、DATE、NUMBERなど)および幅(DATEなどのデータ型によって事前に定義されている場合がある)を備えている。 表を作成した後、有効なデータ行を挿入できる。 その後、表の情報を問い合せたり、削除したり、更新したりできる。 定義済みの業務ルールを表データに対して施行するために、表に整合性制約およびトリガーを定義できる。

表示書式(表示書式(表示書式(表示書式(display format))))

詳細は、「書式(format)」を参照。

表示幅(表示幅(表示幅(表示幅(display width))))

出力フィールドの値を表示するために許容される文字または空白の数。

Page 344: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -18

表の別名(表の別名(表の別名(表の別名(table alias))))

表の一時的な名前。問合せで定義され、その問合せの間だけ有効になる。 使用する場合は、SELECT文の FROM句で別名を設定する。SELECTリストの中に使用することができる。 詳細は、「別名(alias)」を参照。

ファイル(ファイル(ファイル(ファイル(file))))

1つの単位として扱われるデータの集まり。リスト、ドキュメント、索引、注、一連のプロシージャなどがそれにあたる。 通常、磁気テープまたはディスクに格納されているデータを参照するために使用される。 詳細は、「ファイル名(filename)」、「拡張子(extension)」および「ファイル・タイプ(file type)」を参照。

ファイル・タイプ(ファイル・タイプ(ファイル・タイプ(ファイル・タイプ(file type))))

いくつかのオペレーティング・システムで、通常、ファイルの使用または用途を表すファイル名の一部。 詳細は、「拡張子(extension)」を参照。

ファイル名(ファイル名(ファイル名(ファイル名(filename))))

ファイル仕様部の名前コンポーネント。 ファイル名は、ファイル自体が作成されるときにユーザーまたはシステムのいずれかによって割当てられる。 詳細は、「拡張子(extension)」および「ファイル・タイプ(file type)」参照。

ファンクション(ファンクション(ファンクション(ファンクション(function))))

操作を実行し、操作の完了時に値を戻す PL/SQLサブプログラム。 関数には、組込み済みのものとユーザーが名前を指定するものがある。 「プロシージャ(procedure)」と比較されたい。

ブレーク(ブレーク(ブレーク(ブレーク(break))))

SQL*Plusが問合せまたはレポートを処理しているときに発生するイベント(式の値の変更など)。 SQLを指示して、指定したブレークが発生したときにさまざまな操作(たとえば、小計の出力など)を実行できる。

ブレーク階層(ブレーク階層(ブレーク階層(ブレーク階層(break hierarchy))))

SQL*Plusがブレークの発生の有無を検査し、対応するブレーク操作をトリガーする順序。

ブレーク順序(ブレーク順序(ブレーク順序(ブレーク順序(break order))))

ブレーク列のデータを表示する順序。 有効なオプションは、昇順および降順。

ブレーク・グループ(ブレーク・グループ(ブレーク・グループ(ブレーク・グループ(break group))))

複数のブレーク列を含むグループ。

ブレーク列(ブレーク列(ブレーク列(ブレーク列(break column))))

ユーザーがブレーク操作を定義したレポート内の列。その列の値を変更すると、ブレークが発生する。

Page 345: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -19

ブレーク・レポート(ブレーク・レポート(ブレーク・レポート(ブレーク・レポート(break report))))

ブレーク列の共通値に基づいて、表の行を "セット "に分割したレポート。

プロシージャ(プロシージャ(プロシージャ(プロシージャ(procedure))))

特定の作業を実行するための 1つの実行可能単位としてまとめてグループ化した一連の SQLおよび PL/SQL文。 プロシージャおよびファンクションは、ほとんど同じもの。両者の違いは、ファンクションは常に単一の値をコール元に戻すのに対し、プロシージャはコール元に値を戻さないこと。

プロセス(プロセス(プロセス(プロセス(process))))

オペレーティング・システム内の制御のスレッド。一連のステップを実行できるオペレーティング・システム内の仕組み。 いくつかのオペレーティング・システムは、ジョブまたはタスクという言葉を使用する。 プロセスには通常、実行するプライベート・メモリー領域がある。

ブロック(ブロック(ブロック(ブロック(block))))

PL/SQLで、プロシージャ型ロジックで関連付けられている SQLおよび PL/SQLコマンドのグループ。

プロンプト(プロンプト(プロンプト(プロンプト(prompt))))

(1)データの入力または他のアクションを実行するように指示するコンピュータ・プログラムからのメッセージ。 (2)ユーザーの応答を支援するキューとしてシステムが使用する単語。 そのようなメッセージは、通常、ユーザーにフィールドに情報を応答として入力するよう求める。 詳細は、「コマンド行(command line)」を参照。

文(文(文(文(statement: SQL))))

1つの SQL文。句とは違い、完全な文に似ている。 SQL文またはコマンドのそれぞれの部分は、式、述語または句と呼ばれる。 詳細は、「SQL文(SQL statement)」を参照。

ページ(ページ(ページ(ページ(page))))

表示された 1画面文のデータ、またはリポートに印刷された用紙 1枚分のデータ。

ヘッダー(ヘッダー(ヘッダー(ヘッダー(heading))))

SQL*Plusで、列の上に表示される出力列の名前になるテキスト。 詳細は、「列ヘッダー(column heading)」を参照。

別名(別名(別名(別名(alias))))

SQLでは、表、列または SQL文内の値に割り当てられた一時的な名前。同じ文または対応している SQL*Plusコマンドの中で、その項目を参照するために使用される。

Page 346: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -20

変数(変数(変数(変数(variable))))

単一の値を保持する名前付きのオブジェクト。 SQL*Plusは、バインド変数、置換変数、システム変数およびユーザー変数を使用する。

ホスト・コンピュータ(ホスト・コンピュータ(ホスト・コンピュータ(ホスト・コンピュータ(host computer))))

SQL*Plusの実行元となるコンピュータ。

本体(本体(本体(本体(body))))

レポートの大部分(テキスト、図形、データおよび計算)が含まれているレポート領域。

マウント・データベース(マウント・データベース(マウント・データベース(マウント・データベース(mounted database))))

Oracleインスタンスに関連付けられたデータベース。 データベースは、オープンされたりクローズされたりする。 データベースは、ユーザーがアクセスするのにマウントおよびオープンする必要がある。 マウントされていてもオープンされていないデータベースは、DBAがメンテナンスをするためにアクセスする。

マルチスレッド・サーバー(マルチスレッド・サーバー(マルチスレッド・サーバー(マルチスレッド・サーバー(multi-threaded server))))

マルチスレッド・サーバーを使用すると、サーバー・プロセスの数を最小化し、使用可能なシステム・リソースの使用率を最大化して、多くのユーザープロセスがいくつかのサーバー・プロセスを共有できる。

無名ブロック(無名ブロック(無名ブロック(無名ブロック(anonymous block))))

名前がない PL/SQLプログラム・ユニット。実行可能文を囲む BEGINキーワードおよびENDキーワードを明示的に指定する必要はない。

文字(文字(文字(文字(character))))

コンピュータ・システム上で 1つのアルファベット文字または数字を保持できる 1つの位置。 複数の文字はフィールド内に保持される。 複数のフィールドは 1つのレコードを形成する。また、複数のレコードはファイルまたはデータベース表内に保持される。

文字位置(文字位置(文字位置(文字位置(justification))))

詳細は、「位置合せ(alignment)」を参照。

文字列(文字列(文字列(文字列(character string))))

連続した文字、数値または記号からなるグループ。通常は、単語、名前またはその一部から構成される。

文字列(文字列(文字列(文字列(string))))

行の中の単語または文字の並び。

Page 347: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -21

ユーザー変数(ユーザー変数(ユーザー変数(ユーザー変数(user variable))))

明示的に DEFINEコマンドを使用、または暗黙的に STARTコマンドへの引数を使用して、ユーザーが定義、設定した変数。

ユーザー名(ユーザー名(ユーザー名(ユーザー名(username))))

Oracleデータベース・サーバーおよび他のユーザーがユーザーを識別するための名前。 すべてのユーザー名は、プライベート・パスワードに対応付けられている。Oracleデータベースに接続するには、ユーザー名およびプライベート・パスワードを入力する必要がある。 詳細は、「アカウント(account)」を参照。

ユリウス暦日付(ユリウス暦日付(ユリウス暦日付(ユリウス暦日付(Julian date))))

SQL関数 JDATEを使用して整数形式で日付を表すアルゴリズム。 ユリウス暦日付を使用すると、日付に対して他の算術関数を実行できる。

予約語(予約語(予約語(予約語(reserved word))))

(1)特定のソフトウェアまたはオペレーティング・システムで特殊な意味を持つ単語。 (2)SQLでは、SQL文で使用するために予約される一連の単語。データベース・オブジェクトの名前として予約語を使用することはできない。

ラベル(ラベル(ラベル(ラベル(label))))

COMPUTEコマンド内で計算された値に対して出力するラベルを定義する。 COMPUTEラベルの最大長は 500文字。

リモート・コンピュータ(リモート・コンピュータ(リモート・コンピュータ(リモート・コンピュータ(remote computer))))

ローカル・コンピュータ以外のネットワーク上にあるコンピュータ。

リモート・データベース(リモート・データベース(リモート・データベース(リモート・データベース(remote database))))

デフォルト・データベース以外のデータベース。リモート・コンピュータ上に置き、特にCONNECT、COPYおよび SQLPLUSコマンドで参照されるデータベース。

リレーショナル・データベース管理システムリレーショナル・データベース管理システムリレーショナル・データベース管理システムリレーショナル・データベース管理システム((((Relational Database Management System: RDBMS))))

Oracle7(およびそれ以前)の用語。 共有データの格納および取出しを行うために設計されたコンピュータ・プログラム。 リレーショナル・システムでは、データは、同じ列のセットを含む複数行で構成される表内に格納される。 Oracleは、リレーショナル・データベース管理システム。 他のタイプのデータベース・システムは、階層的システムまたはネットワーク・データベース・システムと呼ばれる。

レコード(レコード(レコード(レコード(record))))

行の同義語。1つ以上の列に対する値を持つデータベース表内の 1行のデータ。

Page 348: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -22

列(列(列(列(column))))

特定のデータ・ドメインを表すデータベース表内の垂直方向の領域。 列には、列名および特定のデータ型がある。 たとえば、従業員情報の表では、すべての従業員の採用年月日は、1つの列で構成される。 レコード・グループ列は、データベース列を表す。

列の式(列の式(列の式(列の式(column expression))))

取り出すデータベース列を定義した SELECT文中の式。 この式は、列名または列名を参照する有効な SQL式の場合がある。

列ヘッダー(列ヘッダー(列ヘッダー(列ヘッダー(column heading))))

レポート内に表示されるそれぞれの列に対して作成されるヘッダー。

レポート(レポート(レポート(レポート(report))))

(1)問合せの結果。 (2)出力。特に、すぐに読めるように形式が設定されている出力。狭義では、SQL*Plusからの出力。

ローカル・データベース(ローカル・データベース(ローカル・データベース(ローカル・データベース(local database))))

SQL*Plusの起動時に SQL*Plusを接続するデータベース。通常は、ホスト・コンピュータ上のデータベース。 デフォルト・データベースとも呼ばれる。 詳細は、「リモート・データベース(remote database)」を参照。

ロール(ロール(ロール(ロール(role))))

ユーザーまたは他のロールに与えられる関連する権限の名前付きグループ。

ロールバック(ロールバック(ロールバック(ロールバック(rollback))))

SQL ROLLBACKコマンドを使用して、現行のトランザクションでデータへ加えた保留中の変更を破棄する。 セーブポイントを指定して、トランザクションの一部をロールバックできる。

ログイン(ログイン(ログイン(ログイン(log in))))

オペレーティング・システムに通信を確立し、ユーザーの端末セッションのデフォルトの特性を設定するための一連のアクションを端末で実行すること。

ログオフ(ログオフ(ログオフ(ログオフ(log off))))

オペレーティング・システムとの対話型通信を終了し、端末セッションを終了すること。

ログイン文字列(ログイン文字列(ログイン文字列(ログイン文字列(logon string))))

ローカル・データベースまたはリモート・データベースに接続するアプリケーションを実行するために使用するユーザー指定のコマンド行。 ログイン文字列は、明示的に接続文字列を含むか、暗黙的にデフォルトの接続文字列を使用する。

Page 349: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -23

ログ・ライター(ログ・ライター(ログ・ライター(ログ・ライター(LGWR))))

Oracleインスタンスが使用するバックグランド・プロセス。 LGWRは、ディスクに REDOログ・エントリを書き込む。 REDOログ・データは、システム・グローバル領域の REDOログ・バッファ内に生成される。 トランザクションがコミットし、ログ・バッファがいっぱいになるで、LGWRは、オンライン REDOログ・ファイルに REDOログ・エントリを書き込む。

Page 350: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

用語集用語集用語集用語集 -24

Page 351: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -1

索引索引索引索引記号記号記号記号#シャープ記号,8-36$数値書式,4-5&(アンパサンド)置換変数,3-20

--(コメント・デリミタ),3-12/(スラッシュ)コマンド,8-10

RUNとの類似,2-10,8-10,8-97現行の PL/SQLブロックの実行,2-11現行の SQLコマンドの実行,2-10コマンド・プロンプトでの入力,8-10,2-10バッファ行番号プロンプトでの入力,8-10,2-8

/(スラッシュ)、デフォルト・ログオン,8-49,7-3-(ハイフン)長い SQL*Plusコマンドの継続,2-12,8-1

-(ハイフン)句,7-3. (ピリオド),2-10/*...*/(コメント・デリミタ),3-12*(アスタリスク)

DELコマンドでの,3-2,8-56LISTコマンドでの,3-2,8-77

:BindVariable句EXITコマンド,8-69

:(コロン)バインド変数,3-30

;(セミコロン),2-7-?句,7-3@(アット・マーク)

CONNECTコマンドでの,6-3,8-49COPYコマンドでの,6-5,8-51SQLPLUSコマンドでの,3-15,6-3,7-2

@(アット・マーク)コマンド,3-14,3-18,8-6STARTとの類似,3-15,8-7,8-131コマンド・ファイル,3-15,8-6

コマンド・ファイルへのパラメータの受渡し,8-6引数,8-6

@@(二重アット・マーク)コマンド,8-8,3-18STARTとの類似,8-8,8-131コマンド・ファイル,8-8

[Backspace]キー,2-2[Cancel]キー,2-2,2-15[Interrupt]キー,2-2[Pause]キー,2-2,2-17[Resume]キー,2-2_EDITOR、EDITコマンドでの,3-7,8-66-~負の無限大記号,8-36~無限大記号,8-36

数字数字数字数字0、数値書式,4-59、数値書式,4-5

AABORTモード,8-127ACCEPTコマンド,3-27,8-11

CHAR句,8-11DATE句,8-11DEFAULT句,8-12FORMAT句,8-11HIDE句,8-12NOPROMPT句,8-12NUMBER句,3-29PROMPT句,3-28,8-12値の入力を求めるプロンプトのカスタマイズ,3-28および DEFINEコマンド,8-54

ALIAS句,8-33ATTRIBUTEコマンドでの,8-19

Page 352: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -2

ALL句,8-123ALTERコマンド使用禁止,E-6

ANALYZEコマンド使用禁止,E-6

APPEND句COPYコマンドでの,6-7,8-52SAVEコマンドでの,3-16,8-98

APPENDコマンド,3-2,3-6,8-13APPINFO変数,8-101ARCHIVE LOGコマンド,5-4,8-15ARCHIVE LOGモード,5-4ARCHバックグラウンド・プロセス,8-16ARRAYSIZE変数,8-102

COPYコマンドとの関連,6-8,8-53ATTRIBUTEコマンド,8-19

ALIAS句,8-19CLEAR句,8-20FORMAT句,8-20LIKE句,8-20OFF句,8-20ON句,8-20および CLEAR COLUMNコマンド,8-20すべての属性の表示特性のリスト表示,8-19属性の表示特性の制御,8-20属性の表示特性のリスト表示,8-19複数入力,8-20列の消去,8-30,8-33列表示属性の復元,8-20列表示属性の抑止,8-20

AUDITコマンド使用禁止,E-6

AUTOCOMMIT変数,2-14,8-102AUTOMATIC句,8-85AUTOPRINT変数,8-103AUTORECOVERY変数,8-103AUTOTRACE変数,3-35AVG関数,4-17

BBEGINコマンド,2-10使用禁止,E-6

BLOCKTERMINATOR変数,8-104BOLD句,8-94,8-140BREAKS句,4-16,8-30BREAKコマンド,4-11,8-21

BREAKSの消去,4-16COMPUTEとの併用,4-16,8-21,8-23,8-45DUPLICATES句,8-24ON column句,4-12,8-21ON expr句,8-22ON REPORT句,4-20,8-23ON ROW句,4-14,8-23REFCURSOR変数の書式設定に使用,8-146SET COLSEPとの併用,8-105SKIP PAGE句,4-13,8-24,4-14SKIP句,4-14,8-23値の重複の抑止,4-12および SQLの ORDER BY句,4-11,4-12,4-14,

8-22各行の後に空白を挿入,4-14現行のブレーク定義のリスト表示,4-16,8-24総およびサブサマリーの出力,4-21タイトルの変数に現在の日付を格納,4-32タイトルへの列値の表示,4-30定義の取消し,8-30複数のブレーク列の指定,4-14,8-22ブレーク列が変更されたときの空白の挿入,4-13レポートの終わりでのサマリー行の出力,4-20

BTITLE句,8-124BTITLEコマンド,4-23,8-26

BOLD句,8-140CENTER句,8-140COL句,8-140FORMAT句,8-141LEFT句,8-140OFF句,8-140RIGHT句,8-140SKIP句,8-140TAB句,8-140TTITLEコマンド,8-26下部タイトルの前にブランク行を出力,4-27旧形式,F-2現行の定義の抑止,8-140タイトルのインデント,8-140タイトル要素の整列,8-140最も頻繁に使用される句,4-23列値変数の参照,8-38

BUFFER句,3-2,3-9,8-30BUFFER変数,F-3

Page 353: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -3

CCANCEL句,8-87CENTER句,4-24,4-26,8-94,8-140CHANGEコマンド,3-2,3-4,8-27CHAR句,8-11

VARIABLEコマンド,8-144CHAR列書式の変更,4-7,8-34デフォルトの書式,4-6,8-34

CLEAR句,4-9,8-33ATTRIBUTEコマンドでの,8-20

CLEARコマンド,8-30BREAKS句,4-16,8-30BUFFER句,3-2,3-9,8-30COLUMNS句,4-9,8-30COMPUTES句,4-22,8-30SCREEN句,3-30,8-30SQL句,8-31TIMING句,8-31

CLOB句VARIABLEコマンド,8-145

CLOB列最大幅の設定,8-109書式の変更,8-34,4-7デフォルトの書式,8-34取出し位置の設定,8-109取出しサイズの設定,8-109

CMDSEP変数,8-104COLSEP変数,8-104COLUMNS句,4-9,8-30COLUMNコマンド,4-2,8-32

ALIAS句,8-33CLEAR句,4-9,8-33DEFAULT句,F-2FOLD_AFTER句,8-33FOLD_BEFORE句,8-33FORMAT句,4-5,4-7,8-34HEADING句,4-2,8-36HEADSEP文字,8-36JUSTIFY句,8-37LIKE句,4-8,8-37NEW_VALUE句,4-30,4-32,8-37NEWLINE句,8-37NOPRINT句,4-30,8-38NULL句,8-38NUMBER列の書式設定,8-34,4-5

OFF句,4-10,8-38OLD_VALUE句,4-31,8-38ON句,4-10,8-38PRINT句,8-38REFCURSOR変数の書式設定に使用,8-146TRUNCATED句,4-8,8-38WORD_WRAPPED句,4-8,4-10,8-38WRAPPED句,4-8,8-38および BREAKコマンド,8-23および DEFINEコマンド,8-54下部タイトルへの列値の表示,8-38,4-31上部タイトルへの列値の表示,8-37,4-30すべての列の表示属性のリスト表示,8-32,4-9タイトルの変数に現在の日付を格納,8-40,4-32複数入力,8-39列の書式設定,4-7列の表示属性の復元,4-10,8-38列の表示属性の抑止,4-10,8-38列の表示属性のリスト表示,4-9,8-32列の表示をデフォルトにリセット,8-33,4-9

COL句,4-24,4-27,8-94,8-140COMMIT句,8-69

WHENEVER OSERROR,8-150WHENEVER SQLERROR,8-152

COMMITコマンド,2-14COMPATIBILITY句

LOGIN.SQLでの,3-17COMPATIBILITY変数,8-105COMPUTES句,4-22,8-30COMPUTEコマンド,4-11,8-43

AVG関数,4-17COUNT関数,4-17LABEL句,4-17,4-20,8-44MAXIMUM関数,4-17MINIMUM関数,4-17NUMBER関数,4-17OF句,4-16OFでの SELECT式の参照,8-44ON column句,4-16,8-44ON expr句,8-44ON REPORT句,4-20,8-44ON ROW句,8-44ONでの SELECT式の参照,8-45REFCURSOR変数の書式設定に使用,8-146STD関数,4-17SUM関数,4-17VARIANCE関数,4-17

Page 354: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -4

同じ列についての複数のサマリーの出力,4-21異なる列についてのサマリーの計算,4-21最大 LABEL長,8-44すべての定義のリスト表示,8-45,4-22総およびサブサマリーの出力,4-21定義の取消し,4-23,8-30ブレークでのサマリー行の出力,4-16レポートの終わりでのサマリー行の出力,4-20

CONCAT変数,3-25,8-105CONNECTコマンド

SYSDBA句,8-50パスワードの変更,8-79

CONNECTコマンド(SQL)使用禁止,E-6

CONNECTコマンド(SQL*Plus),6-2,6-3,8-49および @(アット・マーク),6-3,8-49サービス名,6-3パスワードの変更,8-49,8-50ユーザー名 /パスワード,6-2,6-3,6-4,8-49

CONTINUE句WHENEVER OSERROR,8-150WHENEVER SQLERROR,8-152

COPYCOMMIT変数,8-105COPYコマンドとの関連,6-8,8-53

COPYTYPECHECK変数,8-105COPYコマンド,6-4,8-51

1つのデータベース上にある表の間でのデータのコピー,6-9

APPEND句,6-7,8-52CREATE句,6-7,8-52FROM句,6-5,8-52INSERT句,6-7,8-52REPLACE句,6-6,8-52SELECTによるソース表の命名,6-6,8-52TO句,6-5,8-52USING句,6-6,8-52アクションの決定,6-5宛先の表,8-51,6-5宛先の列名の指定,6-5,8-51および @(アット・マーク),6-5,8-51および ARRAYSIZE変数,6-8,8-53および COPYCOMMIT変数,6-8,8-53および LONG変数,6-8,8-53コピーするデータの指定,6-6,8-52コミットが行われる場合,8-53サービス名,6-5,6-7,6-9サンプル・コマンド,6-5,6-6

使用禁止,E-5ソースの行および列の決定,6-6,8-52データベース間のデータのコピー,6-4問合せ,6-6,8-52必須ネット・サービス名,8-51表内のデータの置換,6-6,8-52表の作成,8-52,6-6,6-7表へのデータの挿入,6-7,8-52別のユーザーの表を参照,6-8メッセージの解釈,6-8ユーザー名 /パスワード,6-7,6-9,8-51,8-52,

6-5COUNT関数,4-17CREATE句

COPYコマンドでの,6-7,8-52CREATEコマンド

PL/SQLの入力,2-9使用禁止,E-6

DDATABASE句,8-86DATAFILE句,8-87DATE句,8-11DATE列書式の変更,8-34,8-41,4-7デフォルトの書式,4-6

DB2,8-105DBA権限,8-132DBAモード,8-132DBMS_APPLICATION_INFOパッケージ,8-101DECLAREコマンド使用禁止,E-6

DECLAREコマンド (PL/SQL),2-10DEFAULT句,8-12,F-2DEFINEコマンド,3-19,8-54

CHAR値,8-54およびホスト・システム・エディタ,8-55,3-7置換変数,3-23,8-54

DEFINE変数,3-25,8-105DELETEコマンド使用禁止,E-6

DELコマンド,3-2,3-7,8-56アスタリスクの使用,3-2,8-56

DEMOBLD,1-8DEMODROP,1-8DEPT表,1-6

Page 355: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -5

DESCRIBEコマンド(SQL*Plus),2-16,8-58リスト表示できる PL/SQLプロパティ,8-59リスト表示できる表プロパティ,8-58ネット・サービス名,8-58

DISABLEDキーワード、使用禁止コマンド,E-4DISCONNECTコマンド,6-2,8-65DOCUMENTコマンド,F-2新しいバージョンの REMARK,F-3

DOCUMENT変数,F-4DROPコマンド使用禁止,E-6

DUPLICATES句,8-24

EECHO変数,3-14,8-106EDITFILE変数,8-106EDITコマンド,3-7,8-66

_EDITORの定義,3-7,8-66コマンド・ファイルの変更,8-66コマンド・ファイルの作成,3-11コマンド・ファイルの変更,3-16使用禁止,E-5デフォルトのファイル名の設定,8-106

EMBEDDED変数,8-106EMP表,1-6ESCAPE変数,3-25,8-106EXCLUSIVE句,8-133EXECUTEコマンド,8-68使用禁止,E-5

EXIT句WHENEVER OSERROR,8-150WHENEVER SQLERROR,8-152

EXITコマンド,2-4,8-69:BindVariable句,8-69COMMIT句,8-69FAILURE句,8-69ROLLBACK句,8-69WARNING句,8-69コマンド・ファイル内,8-131使用禁止,E-5

FFAILURE句,8-69FEEDBACK変数,8-107FLAGGER変数,8-107

FLUSH変数,8-107FOLD_AFTER句,8-33FOLD_BEFORE句,8-33FORCE句,8-132FORMAT句,8-11

ATTRIBUTEコマンドでの,8-20COLUMNコマンドでの,4-5,4-7,8-34REPHEADERおよび REPFOOTERコマンド,8-94TTITLEおよび BTITLEコマンドでの,4-29,8-141

FROM句,8-86FROM句(SQL*Plus),6-5,8-52

GGETコマンド,3-13,8-71

LIST句,8-71NOLIST句,8-71コマンド・ファイルの取出し,8-71,3-13コマンド・ファイルの変更,3-16使用禁止,E-5

GLOGIN.SQL,3-17,3-36,3-40,7-4GRANTコマンド,E-2使用禁止,E-6

HHEADING句,4-2,8-36HEADING変数,8-107HEADSEP変数,8-108

COLUMNコマンドでの使用,4-3,8-37HELPコマンド,8-73HIDE句,8-12HOSTコマンド,2-16,8-74コマンド・ファイル名のリスト表示,3-9使用禁止,E-5

IIMMEDIATEモード,8-127INIT.ORAファイルパラメータ・ファイル,8-132

INPUTコマンド,3-2,3-5,8-75SAVEを使用したコマンド・ファイルの作成,3-9複数行の入力,8-75

INSERT句,6-7,8-52INSERTコマンド使用禁止,E-6

Page 356: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -6

INSTANCE変数,8-108

JJDeveloper Suite,1-3JUSTIFY句,8-37

LLEFT句,4-24,4-26,8-94,8-140LIKE句,4-8,8-20,8-37LINESIZE変数,4-26,4-33,8-108LIST句,8-15,8-71LISTコマンド,3-2,8-77アスタリスクの使用,3-2,8-77現在行の判断,3-4現在行の判別,8-77最終行を現在行にする,3-4,8-77

LNO句,8-124LOBOFFSET変数,8-109LOCK TABLEコマンド使用禁止,E-6

LOG_ARCHIVE_DESTパラメータ,8-15LOGFILE句,8-87LOGIN.SQL,3-17,7-4

SETコマンドの挿入,3-17タイトルの変数に現在の日付を格納,4-32~に入力するサンプル・コマンド,3-17

LONGCHUNKSIZE変数,4-7,8-34,8-109LONG変数,8-109

COPYコマンドへの影響,8-53,6-8LONG列最大幅の設定,8-109書式の変更,8-34,4-7デフォルトの書式,8-34取出しサイズの設定,8-109

MMAXIMUM関数,4-17MINIMUM関数,4-17MOUNT句,8-132

NNCHAR句

VARIABLEコマンド,8-144

NCHAR列書式の変更,8-34,4-7デフォルトの書式,8-34,4-6

NCLOB句VARIABLEコマンド,8-145

NCLOB列最大幅の設定,8-109書式の変更,8-34,4-7デフォルトの書式,8-34取出し位置の設定,8-109取出しサイズの設定,8-109

Net8プロトコル,6-3NEW_VALUE句,4-30,8-37タイトルの変数に現在の日付を格納,4-32,8-37,

8-40NEWLINE句,8-37NEWPAGEコマンド,F-3NEWPAGE変数,4-33,8-109NEXT句,8-16NLS_DATE_FORMAT,8-11,8-41NOAUDITコマンド使用禁止,E-6

NOLIST句,8-71/NOLOGオプション,7-3NOMOUNT句,8-133NONE句

WHENEVER OSERROR,8-150WHENEVER SQLERROR,8-152

NOPARALLEL句,8-88NOPRINT句,4-17,4-30,8-38NOPROMPT句,8-12NORMALモード,8-127NULL句,8-38NULL値表示するテキストの設定,8-109,8-38

NULL変数,8-109NUMBER関数,4-17NUMBER句,3-29,8-11

VARIABLEコマンド,8-144NUMBER列書式の変更,8-34,4-5デフォルトの書式,8-36,4-4

NUMFORMAT句LOGIN.SQLでの,3-17

NUMFORMAT変数,8-109NUMWIDTH変数,8-109

NUMBER列の書式への影響,8-36,4-4

Page 357: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -7

NVARCHAR2列書式の変更,8-34,4-7デフォルトの書式,8-34,4-6

OOFF句

ATTRIBUTEコマンドでの,8-20COLUMNコマンドでの,4-10,8-38REPHEADERおよび REPFOOTERコマンドでの,

8-94SPOOLコマンドでの,4-35,8-129TTITLEおよび BTITLEコマンドでの,4-30,8-140

OF句,4-16OLD_VALUE句,4-31,8-38ON column句

BREAKコマンドでの,4-12,8-21COMPUTEコマンドでの,4-16,8-44

ON expr句BREAKコマンドでの,8-22COMPUTEコマンドでの,8-44

ON REPORT句BREAKコマンドでの,4-20,8-23COMPUTEコマンドでの,4-20,8-44

ON ROW句BREAKコマンドでの,4-14,8-23COMPUTEコマンドでの,8-44

ON句ATTRIBUTEコマンドでの,8-20COLUMNコマンドでの,4-10,8-38TTITLEおよび BTITLEコマンドでの,4-30

OPEN句,8-132Oracle Application Server,1-3Oracle Designer,1-3Oracle Developer,1-3Oracle Discoverer,1-3Oracle Enterprise Developer Suite,1-3Oracle Express,1-3Oracle Media Objects,1-4Oracle Mobile Agents,1-4Oracle Programmer,1-3Oracle Reports,1-3Oracle Workflow,1-3ORDER BY句出力で値を一緒に表示,4-11タイトルへの列値の表示,4-30

OUT句,4-36,8-129

PPAGESIZE句

LOGIN.SQLでの,3-17PAGESIZE変数,2-7,4-33,8-110PAGE句,8-93PARALLEL DEGREE DEFAULT句,8-87PARALLEL DEGREE句,8-87PARALLEL INSTANCES DEFAULT句,8-88PARALLEL INSTANCES句,8-88PARALLEL句,8-133PARAMETERS句,8-124PASSWORDコマンド,8-49,8-79使用禁止,E-5

PAUSEコマンド,3-30,8-81LOGIN.SQLでの,3-17

PAUSE変数,2-17,8-110PLAN_TABLE表,3-36PL/SQL,1-2,2-10

SQL*Plusでの出力を書式設定,8-145SQL*Plusでのモード,2-9SQLコマンドでの,2-9実行,8-68定義のリスト表示,2-17ブロック、PL/SQL,2-10

PLUSTRACEロール,3-36PNO句,8-125PRINT句,8-38PRINTコマンド,8-82PRODUCT_USER_PROFILE表の作成,E-2PROMPT句,3-28,8-12PROMPTコマンド,3-27,8-83値の入力を求めるプロンプトのカスタマイズ,3-28

PUPBLD.SQL,E-2

QQUITコマンド,8-69コマンド・ファイル内,8-131使用禁止,E-5

RRECOVERYコマンドおよびデータベースの回復,5-5

RECOVERコマンド,8-85AUTOMATIC句,8-85

Page 358: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -8

CANCEL句,8-87CONTINUE句,8-87DATABASE句,8-86DATAFILE句,8-87FROM句,8-86LOGFILE句,8-87NOPARALLEL句,8-88PARALLEL DEGREE DEFAULT句,8-87PARALLEL DEGREE句,8-87PARALLEL INSTANCES DEFAULT句,8-88PARALLEL INSTANCES句,8-88STANDBY DATABASE句,8-86STANDBY DATAFILE句,8-87STANDBY TABLESPACE句,8-87TABLESPACE句,8-87UNTIL CANCEL句,8-86UNTIL CHANGE句,8-86UNTIL CONTROLFILE句,8-87UNTIL TIME句,8-86USING BACKUP CONTROL FILE句,8-86

RECOVER句,8-133RECSEPCHAR変数,4-10,8-110RECSEP変数,4-10,8-110REDOログ・ファイル

ARCHIVE LOGコマンド,8-15REFCURSOR句

VARIABLEコマンド,8-145REFCURSORバインド変数,3-32ストアド・ファンクションでの,3-32

RELEASE句,8-125REMARKコマンド,3-11,8-90RENAMEコマンド使用禁止,E-6

REPFOOTER句,8-125REPFOOTERコマンド,4-23,8-91

BOLD句,8-94CENTER句,8-94COL句,8-94FORMAT句,8-94LEFT句,8-94OFF句,8-94RIGHT句,8-94SKIP句,8-94TAB句,8-94現行の定義の抑止,8-94フッター要素の整列,8-94最も頻繁に使用される句,4-23

レポート・フッターをインデント,8-94REPHEADER句,8-125REPHEADERコマンド,4-23,8-93

BOLD句,8-94CENTER句,4-24,8-94COL句,4-24,8-94FORMAT句,8-94LEFT句,4-24,8-94OFF句,8-94PAGE句,8-93RIGHT句,4-24,8-94SKIP句,4-24,8-94TAB句,8-94現行の定義の抑止,8-94ヘッダー要素の整列,4-26,8-94ヘッダーをインデント,8-94最も頻繁に使用される句,4-23

REPLACE句COPYコマンドでの,6-6,8-52SAVEコマンドでの,3-16,8-98

RESTRICT句,8-132RETRY句,8-134REVOKEコマンド,E-2使用禁止,E-6

RIGHT句,4-24,4-26,8-94,8-140ROLLBACK句,8-69

WHENEVER OSERROR,8-150WHENEVER SQLERROR,8-152

RUNコマンド,2-10,8-97/(スラッシュ)コマンドとの類似,2-10,8-97現行の PL/SQLブロックの実行,2-11現行の SQLコマンドまたは PL/SQLブロックの実

行,2-10最終行を現在行にする,3-4使用禁止,E-5

SSAVEコマンド,3-8,8-98

APPEND句,3-16,8-98INPUTを使用したコマンド・ファイルの作成,3-10REPLACE句,3-16,8-98コマンド・ファイルの変更,3-16コマンド・ファイルへのコマンドの格納,3-8,8-98使用禁止,E-5

SCAN変数,F-5SCREEN句,3-30,8-30

Page 359: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -9

SELECTコマンドおよび BREAKコマンド,4-11,8-22,8-23および COLUMNコマンド,8-33および COMPUTEコマンド,4-11および COPYコマンド,6-6,8-52および DEFINEコマンド,8-54および ORDER BY句,4-11使用禁止,E-6タイトルの変数に現在の日付を格納,4-32

SELECT文結果の書式設定,3-32

SERVEROUTPUT変数,8-111SET AUTOTRACE,3-35SET ROLEコマンド使用禁止,E-6

SET TRANSACTIONコマンド使用禁止,E-6

SET句,8-136SETコマンド,2-13,3-18,8-100

APPINFO変数,8-101ARRAYSIZE変数,6-8,8-102AUTOCOMMIT変数,2-14,8-102AUTOPRINT変数,8-103,8-145AUTORECOVERY変数,8-103BLOCKTERMINATOR変数,8-104BUFFER変数,F-3CMDSEP変数,8-104COLSEP変数,4-36,8-104COMPATIBILITY句,3-17COMPATIBILITY変数,8-105CONCAT変数,3-25,8-105COPYCOMMIT変数,6-8,8-105COPYTYPECHECK変数,8-105DEFINE句,3-25DEFINE変数,8-105DESCRIBE変数,8-106DOCUMENT変数,F-4ECHO変数,3-14,8-106EDITFILE変数,8-106EMBEDDED変数,8-106ESCAPE変数,3-25,8-106FEEDBACK変数,8-107FLAGGER変数,8-107FLUSH変数,8-107HEADING変数,8-107HEADSEP変数,4-3,8-108INSTANCE変数,8-108

LINESIZE変数,4-26,4-33,8-108LOBOFFSET変数,8-109LOGSOURCE変数,8-109LONGCHUNKSIZE変数,8-109LONG変数,6-8,8-109MAXDATA変数,F-5NEWPAGE変数,4-33,8-109NULL変数,8-109NUMFORMAT句,3-17NUMFORMAT変数,8-109NUMWIDTH変数,4-4,8-36,8-109PAGESIZE句,3-17PAGESIZE変数,2-7,4-33,8-110PAUSE句,3-17PAUSE変数,2-17,8-110RECSEPCHAR変数,4-10,8-110RECSEP変数,4-10,8-110REFCURSOR変数の書式設定に使用,8-146SCAN変数,F-5SERVEROUTPUT変数,8-111SHIFTINOUT句,3-18SHIFTINOUT変数,8-111SPACE変数,F-5SQLBLANKLINES変数,8-111SQLCASE変数,8-112SQLCONTINUE変数,8-112SQLNUMBER変数,8-112SQLPREFIX変数,8-112SQLPROMPT変数,8-112SQLTERMINATOR変数,8-112SUFFIX変数,8-112TAB変数,8-113TERMOUT変数,4-32,8-113TIME句,3-18TIME変数,8-113TIMING変数,8-113TRIMOUT変数,8-113TRIMSPOOL変数,8-113TRUNCATE変数,F-6UNDERLINE変数,4-3,8-113VERIFY句,3-21VERIFY変数,3-25,8-114WRAP変数,4-8,8-114使用禁止,E-5

SETコマンド変数システム変数,2-13

SGA句,8-125

Page 360: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -10

SHIFTINOUT句LOGIN.SQLでの,3-18

SHIFTINOUT変数,8-111SHOWMODE変数,8-111SHOW句,8-137SHOWコマンド,2-14,8-123

ALL句,8-123BTITLE句,8-124ERRORS句,8-124LNO句,8-124PNO句,8-125RELEASE句,8-125REPFOOTER句,8-125REPHEADER句,8-125SPOOL句,8-125SQLCODE句,8-125TTITLE句,8-125USER句,8-125現行のページ・サイズのリスト表示,4-35

SHUTDOWNコマンド,8-127ABORT変数,8-127IMMEDIATE変数,8-127NORMAL変数,8-127TRANSACTIONAL変数,8-127

-SILENT句,7-2SKIP PAGE句,4-13,4-14,8-24SKIP句

BREAKコマンドでの,4-13,4-14,8-23REPHEADERおよび REPFOOTERコマンドでの,

8-94TTITLEおよび BTITLEコマンドでの,4-26,8-140TTITLE、BTITLE、REPHEADERおよび

REPFOOTERコマンドでの,4-24下部タイトルの前にブランク行を配置するための使

用方法,4-27SPACE変数,F-5SPOOL句,8-125SPOOLコマンド,4-35,8-129

OFF句,4-35,8-129OUT句,4-36,8-129使用禁止,E-5スプールをオフにする,4-35,8-129ファイル名,4-35,8-129

SQL DML文レポート,8-103

SQL*PlusLOGIN.SQL,3-17

概要,1-2環境の設定,3-17起動,2-3,7-2起動のショートカット,2-4基本概念,1-2コマンド一覧,8-2コマンド・プロンプト,2-4実行に必要なもの,1-7終了,2-4,8-69条件付き終了,8-150,8-152制限,C-1対象ユーザー,1-3データベース管理,5-2バッチ・モードでのコマンドの実行,8-70,3-17

SQL*Plusの起動,2-3ショートカット,2-4

SQLBLANKLINES変数,8-111SQLCASE変数,8-112SQLCODE句,8-125SQLCONTINUE変数,8-112SQLNUMBER変数,8-112SQLPLUSコマンド,2-3,7-2

-(ハイフン)句,7-3-?句,7-3EXIT FAILURE,7-4/NOLOG句,7-3-SILENT句,7-2および @(アット・マーク),7-2,3-15,6-3コマンド・ファイルの実行,3-15サービス名,6-3,6-4,7-3失敗した接続,7-4表示構文,7-3ユーザー名 /パスワード,2-4,7-2リモート・データベースへの接続,6-3

SQL.PNO、レポート・タイトル内での参照,4-28SQLPREFIX変数,8-112SQLPROMPT変数,8-112SQL.SQLCODE

EXITコマンドの使用,8-69SQLTERMINATOR変数,8-74,8-112SQL句,8-31SQLコマンド、主要なリスト,D-1SQLデータベース言語,1-2SQLバッファ,2-10STANDBY DATAFILE句,8-87STANDBY TABLESPACE句,8-87STARTUPコマンド,8-132

Page 361: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -11

EXCLUSIVE句,8-133FORCE句,8-132MOUNT句,8-132NOMOUNT句,8-133OPEN句,8-132PARALLEL句,8-133PFILE句,8-132RECOVER句,8-133RESTRICT句,8-132RETRY句,8-134SHARED句,8-133データベースの指定,8-133

START句,8-16,8-137STARTコマンド,3-14,8-130

@(アット・マーク)コマンドとの類似,3-15,8-7,8-131

@@(二重アット・マーク)コマンドとの類似,8-8,8-131

コマンド・ファイル,8-130,3-14コマンド・ファイルへのパラメータの受渡し,

3-25,8-130使用禁止,E-5引数,3-25,8-130

STD関数,4-17STOP句,8-16,8-137STOREコマンド,3-18,8-136

SET句,8-136SUFFIX変数,8-112

@(アット・マーク)コマンドとの併用,8-6EDITコマンドとの併用,8-66GETコマンドとの併用,8-71SAVEコマンドとの併用,8-98STARTコマンドとの併用,8-130

SUM関数,4-17SYSDATE,4-32SYSDBA句,8-50SYSOPER句,8-50

TTABLESPACE句,8-87TAB句,8-94,8-140TAB変数,8-113TERMOUT変数,8-113

SPOOLコマンドとの併用,8-129タイトルの変数に現在の日付を格納,4-32

TIME句

LOGIN.SQLでの,3-18TIME変数,8-113TIMING句,8-31TIMINGコマンド,2-16,8-137

SHOW句,8-137START句,8-137STOP句,8-137現行の領域を削除,8-137によって作成されたすべての領域の削除,8-31

TIMING変数,8-113TO句,6-5,8-52TRIMOUT変数,8-113TRIMSPOOL変数,8-113TRUNCATED句,4-8,8-38TRUNCATEコマンド使用禁止,E-6

TRUNCATE変数,F-6TTITLE句,8-125TTITLEコマンド,4-23,8-139

BOLD句,8-140CENTER句,4-24,4-26,8-140COL句,4-24,4-27,8-140FORMAT句,4-29,8-141LEFT句,4-24,4-26,8-140OFF句,4-30,8-140ON句,4-30RIGHT句,4-24,4-26,8-140SKIP句,4-24,4-26,8-140TAB句,8-140旧形式,F-7現行の定義の復元,4-30現行の定義の抑止,4-30,8-140現行の定義のリスト表示,4-30,8-141タイトルのインデント,4-27,8-140タイトル要素の整列,4-26,8-140最も頻繁に使用される句,4-23列値変数の参照,8-37,4-30

UUNDEFINEコマンド,3-20,8-143および DEFINEコマンド,8-54

UNDERLINE変数,4-3,8-113UNTIL CANCEL句,8-86UNTIL CHANGE句,8-86UNTIL CONTROLFILE句,8-87UNTIL TIME句,8-86

Page 362: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -12

UPDATEコマンド使用禁止,E-6

USER句,8-125USING BACKUP CONTROL FILE句,8-86USING句,6-6,8-52

VV$SESSION仮想表,8-101V$SQLAREA仮想表,8-101VARCHAR2句

VARIABLEコマンド,8-144VARCHAR2列書式の変更,8-34,4-7デフォルトの書式,4-6

VARCHAR列書式の変更,4-7デフォルトの書式,8-34,4-6

VARIABLEコマンド,8-144CHAR句,8-144CLOB句,8-145NCHAR句,8-144NCLOB句,8-145NUMBER句,8-144REFCURSOR句,8-145VARCHAR2句,8-144変数句,8-144

VARIANCE関数,4-17VERIFY句,3-21VERIFY変数,3-25,8-114

WWARNING句,8-69WHENEVER OSERRORコマンド,8-150

COMMIT句,8-150CONTINUE句,8-150EXIT句,8-150NONE句,8-150ROLLBACK句,8-150

WHENEVER SQLERRORコマンド,3-17,8-152COMMIT句,8-152CONTINUE句,8-152EXIT句,8-152NONE句,8-152ROLLBACK句,8-152

WORD_WRAPPED句,4-8,4-10,8-38

WRAPPED句,4-8,8-38WRAP変数,4-8,8-114

ああああアクセス、拒否および付与,E-2値の入力を求めるプロンプト

ACCEPTを使用した,3-27カスタマイズ,3-28置換変数を使用した,3-21パラメータによる~のバイパス,3-25

アンパサンド(&)パラメータでの,3-25,8-6,8-130置換変数,3-20

いいいいインスタンス起動,8-132停止,8-127複数、データベースを共有,8-133

ええええエスケープ文字、定義,8-106エラー・メッセージ、解釈,2-18エラー、含まれている行を現在行にする,3-4

おおおおオブジェクト説明,8-106

オンライン・ヘルプ,2-6,8-73,7-5

かかかかカーソル変数,8-145回復

RECOVERコマンド,8-85改ページ、新しいページの開始,4-33,8-109拡張機能リスト、リリース 8.1.5,B-2拡張子,8-98,8-112,8-136画面、消去,3-30,8-30環境属性の保存,8-136カンマ、数値書式,4-5

Page 363: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -13

ききききキー

[Backspace]キー,2-2[Cancel]キー,2-2[Interrupt]キー,2-2[Pause]キー,2-2[Resume]キー,2-2[Return]キー,2-2

キーボード、キーの意味,2-2規則、コマンド構文,1-5行

COPYでのコミット後に数を設定,8-105一度に取り出す数の設定,8-102終わりのブランクを削除,8-113現在行の後に新規追加,8-75バッファ内のすべての行の一覧表示,8-77バッファの最後に追加,8-75バッファの最初に追加,8-75幅の変更,8-108

行(Line)現行の~の判断,3-4現行の~の編集,3-4現在行の後への新規行の追加,3-5テキストの追加,3-6,8-13バッファからの削除,3-7,8-56バッファ内のすべての行の削除,8-56バッファ内のすべての行のリスト表示,3-2幅の変更,4-33

行(Row)計算の実行,4-16,8-43

行番号、SQLコマンド,2-6共有ディスク・システム共有のマウント,8-133

共有モードデータベース,8-133

くくくく空白行

PL/SQLブロックでの,2-10SQLコマンドでの,2-8SQLコマンドでの保存,8-111

空白行、表示,8-81

けけけけ検索パスインストレーション・ガイドおよび管理者リファレ

ンス,8-53

ここここ構文

COPYコマンド,6-5規則,1-5

構文規則SQL*Plusコマンド,2-12SQLコマンド,2-7

コマンド,1-2SQL現行の~の保存,8-98現行の~の実行,2-10,8-10,8-97現行の~の保存,3-8構文に従う,2-7実行せずに入力する,2-8終了,2-8終了および実行のために使用する文字設定,

8-112主要なリスト,D-1次の行への継続,2-7入力および実行,2-6バッファ内の現行の~のリスト表示,3-3バッファ内の編集,3-2ホスト・システム・エディタによる編集,3-7,

8-66SQL*Plus

SQLコマンドのエントリ中に入力,8-112コマンド一覧,8-2コマンド・プロンプトでの編集,3-2終了,2-13,8-1次の行への継続,2-12,8-1入力および実行,2-11略称,2-11

大文字と小文字,2-5空白,2-5構文規則,1-5コマンド・ファイルへの格納,3-8実行中の停止,2-15実行に影響を及ぼす変数,2-13種類,2-5使用禁止,E-4

Page 364: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -14

タイミング統計の収集,2-16,8-137対話式~の記述,3-19タブ,2-5バッファ内の現在行を一覧表示,8-77再び使用可能にする,E-5ホスト・オペレーティング・システム、SQL*Plus

からの実行,2-16,8-74コマンド・ファイル,3-8

@(アット・マーク)コマンドでの,3-14,8-6@@(二重アット・マーク)コマンドでの,8-8EDITコマンドでの,3-16,8-66GETおよび SAVEを使用した編集,3-16GETコマンドでの,3-13,8-71HOSTコマンドによる名前のリスト表示,3-9INPUTおよび SAVEでの作成,3-9SAVEコマンドでの,3-8,3-10,8-98SAVEでの作成,3-8,8-98SQL*Plusの起動時の実行,3-15,7-2SQLPLUSコマンドでの,3-15,7-2STARTコマンドでの,3-14,8-130異常終了およびリターン・コードを返す終了,

3-17,8-151,8-153一連の~の順次実行,3-15エンド・ユーザーによる入力,3-19~へのパラメータの受渡し,8-6,3-25,8-130コメントの挿入,3-11,8-90システム・エディタでの作成,3-11実行,3-14,8-6,8-130登録,8-101取出し,3-13,8-71ネスト,3-15ネストの実行,8-8バッチ・モードでの実行,3-17,8-70バッファ内容の保存,3-8,8-98複数の PL/SQLブロックの挿入,3-10,3-11複数の SQLコマンドの挿入,3-10,3-11ホスト・システム・エディタによる編集,3-16,

8-66コマンド・ファイル拡張子,8-98,8-112,8-136コマンド・プロンプト

SQL*Plus,2-4ホスト・オペレーティング・システム,2-3

コメント/*...*/を使用した作成,3-12REMARKを使用した作成,3-11,8-90コマンド・ファイルへの挿入,3-11,8-90--を使用した作成,3-12

コロン(:)バインド変数,3-30

ささささサービス名

CONNECTコマンドでの,6-3COPYコマンドでの,6-5,6-7,6-9SQLPLUSコマンドでの,6-3,7-3

サイト・プロファイル,7-4サマリー行同じブレーク列についての複数の出力,4-21計算および出力,4-16,8-43異なる列についての同じタイプの計算,4-21総およびサブサマリー(合計)の出力,4-21レポートの終わりでの計算および出力,4-20

サンプル表,1-6DEMOBLD,1-8DEMODROP,1-8アクセス,1-8

ししししシステム管理値タイトル内での書式設定,4-29タイトルの中に表示,4-28タイトルの表示,8-139ヘッダーおよびフッターの中に表示,8-93

システム変数,2-13,8-114格納および復元,3-18現行の設定のリスト表示,2-14,8-123現在の設定の変更,8-100新旧の値のリスト表示,8-111置換変数との併用,3-25

実行CREATEコマンド,2-9

実行統計レポートへの挿入,8-103

シャープ記号 (#),8-36終了、条件付き,8-150,8-152出力

REFCURSOR変数,8-146SPOOLコマンド,8-129問合せ結果,1-2バインド変数を自動的に~,8-103表示中の一時停止,2-17,8-110ホワイト・スペースの書式設定,8-113

Page 365: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -15

使用禁止PL/SQLコマンド,E-6SQL*Plusコマンド,E-4SQLコマンド,E-4

初期化パラメータ表示,8-124

書式モデル、数値,4-5,8-36

すすすす数値書式

$,4-50,4-59,4-5カンマ,4-5デフォルト設定,8-109

ストアド・ファンクション,3-32ストアド・プロシージャ作成,2-9

スラッシュ(/)コマンド,8-10GETコマンドによってロードされたファイルとの併

用,8-71

せせせせ制限、SQL*Plus,C-1セキュリティ

PRODUCT_USER_PROFILE表,E-2パスワードの変更,8-79

セミコロン(;)PL/SQLブロックでの,2-10SQL*Plusコマンドでの,2-13,8-1SQLコマンドでの,2-7,2-8コマンド・ファイル入力時には不要,3-10バッファに格納されない,3-3

そそそそ属性表示特性,8-19

たたたたタイトルインデント,4-27,8-140現行の定義のリスト表示,4-30,8-26,8-141現在の日付の表示,4-32,8-37,8-40

最終行から下部タイトルまでの間隔,4-26システム管理値の書式設定,4-29システム管理値の表示,4-28,8-139上部および下部の設定,8-26,4-23,8-139上部タイトルからページの終わりまでの行の設定,

8-110定義の復元,4-30定義の抑止,4-30,8-140ページ下部への表示,4-23,8-26ページ最上部から上部タイトルまでの行数の設定,

4-33,8-109ページ上部ヘの表示,4-23,8-139ページ番号の表示,4-28,8-142要素の書式設定,8-141要素の整列,4-26,8-140列値の表示,8-37,8-38,4-30レポートの始めまたは終わりに設定,4-23

ちちちち置換変数,3-20

DEFINEコマンド,3-23,8-54値の入力を求める不要なプロンプトの回避,3-23~の直後に文字を追加,3-23システム変数との併用,3-25使用する位置および方法,3-21制限,3-25接頭辞,8-105単一および二重のアンパサンド,3-23未定義,3-21連結文字,8-105

チューニング,3-35

ててててデータベース1つのデータベース上にある表の間でのデータのコ

ピー,6-9SQL*Plusを終了せずに切断する,6-3,8-65オープン,5-3,8-132回復,5-5,8-85回復コマンド,8-85~間のデータのコピー,6-4,8-51起動,5-2停止,5-2,5-3デフォルト~への接続,8-49,6-2マウント,5-3,8-132

Page 366: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -16

リモート~への接続,8-49データベース管理者,1-7,5-2データベースのオープン,8-132データベースの変更、自動保存,2-14,8-102データベースのマウント,8-132データベース・ファイル回復,8-85

データベース名起動,8-132

テキストAPPENDによる現在行への追加,8-13,3-6CHANGEによる旧から新への変更,8-28,3-4バッファからの消去,8-30,3-2

テキスト・エディタ、ホスト・オペレーティング・システム,3-7,8-66

とととと問合せ,1-2

COPYコマンドでの,6-6,8-52取り出したレコード数の表示,2-7,8-107

問合せ結果,1-2画面に表示,2-7ファイルへの格納,4-35,8-129プリンタへの出力,4-36プリンタへの送信,8-129

問合せ実行パスレポートへの挿入,8-103

統計,3-35同時実行インスタンス、複数,8-133

なななな長い SQL*Plusコマンドの継続,2-12,8-1

にににに入力

[Return]のアクセプト,3-30,8-81ユーザーからの値のアクセプト,3-27,8-11

ねねねねネット・サービス名

DESCRIBEコマンドでの,8-58

ははははハイフン長い SQL*Plusコマンドの継続,2-12,8-1

バインド変数,3-30COPYコマンド,8-145PL/SQLブロック,8-145REFCURSOR,3-32SQL文,8-145作成,8-144自動的に表示,8-145自動表示,8-103表示,8-82

パスワード,1-7CONNECTコマンドでの,6-2,6-3,8-49COPYコマンドでの,6-5,6-7,6-9,8-51PASSWORDコマンドで変更,8-79SQLPLUSコマンドでの,2-4,6-4,7-2

パス、作成インストレーションおよびユーザーズ・ガイド,

8-53バックグラウンド・プロセス異常終了後の起動,8-127

バッチ・モード,8-70,3-17バッファ,2-10

1行のリスト削除,8-561行の削除,3-21行のリスト表示,3-21行をリスト表示,8-77ある範囲の行の削除,3-2,8-56ある範囲の行のリスト表示,3-3,8-77~からの行の削除,3-7,8-56行へのテキストの追加,3-6,8-13現在行の削除,3-2,8-56現在行のリスト表示,3-2,8-77最終行の削除,3-2,8-56最終行のリスト表示,3-3,8-77新規行の挿入,3-5,8-75すべての行の削除,3-2,8-30,8-56すべての行のリスト表示,3-2,8-77内容の実行,2-10,8-10,8-97内容の保存,3-8,8-98内容のリスト表示,3-3,8-77ホスト・システム・エディタへの内容のロード,

3-7,8-66パフォーマンス

SQL文の,3-35

Page 367: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -17

パフォーマンス、ダイヤルアップ行,8-113パラメータ,3-25,8-6,8-130パラメータ・ファイル(INIT.ORAファイル)代替を指定,8-132

ひひひひ引数、STARTコマンドでの,3-25,8-130日付、タイトルの変数に現在の日付を格納,8-37,

4-32,8-40表,1-2

DEPT,1-6EMP,1-6~間の値のコピー,8-51コピー時に別のユーザーの表を参照,6-8コピー時の宛先の制御,6-6,8-52サンプル,1-6サンプルへのアクセス,1-8列定義のリスト表示,8-58,2-16~間の値のコピー,6-4,6-9

表領域回復,8-85

ピリオド (.)PL/SQLブロックの終了,2-10

ふふふふファイルコマンド・ファイル,3-8フラット,4-36

ファイル拡張子,3-18,8-98,8-112,8-136ファイル名

@(アット・マーク)コマンドでの,8-6@@(二重アット・マーク)コマンドでの,8-8EDITコマンドでの,8-66GETコマンドでの,8-71SAVEコマンドでの,3-8,8-98SPOOLコマンドでの,4-35,8-129SQLPLUSコマンドでの,7-2STARTコマンドでの,8-130

フッターインデント,8-94現行の定義のリスト表示,8-91システム管理値の表示,8-93定義の抑止,8-94ページ下部での表示,8-91要素の書式設定,8-94

要素の整列,8-94レポートの終わりに設定,4-23

負の無限大記号(-~),8-36フラット・ファイル,4-36フラット・ファイルの作成,4-36ブレーク定義現行の取消し,4-16,8-30現行のリスト表示,4-16,8-24

ブレーク列,4-11,8-21値が変更されたときの空白の挿入,4-13値の重複の抑止,4-12複数の指定,4-14

ブロック、PL/SQL,1-2SQLコマンドでの,2-9SQLバッファからの実行,2-10SQLバッファに格納された,2-10計時統計,8-113継続,2-10現行の~の保存,3-8,8-98コマンド・ファイルへの格納,3-8終了のために使う文字設定,8-104入力および実行,2-10バッファ内の現行の~のリスト表示,3-3バッファ内の編集,3-2ホスト・システム・エディタによる編集,3-7,8-66

文のトレース,3-35データベース・リンクを使った,3-40問合せ実行パス用の,3-37パフォーマンス統計用の,3-37パラレル問合せオプションによる,3-41

へへへへページサイズの設定,4-32サイズを画面または用紙のサイズに合わせる,4-33デフォルトのサイズ,4-32長さの変更,4-33,8-110

ページ番号をタイトルに挿入,4-15ページ番号、タイトルへの挿入,4-28ヘッダーインデント,8-94現行の定義のリスト表示,8-95システム管理値の表示,8-93定義の抑止,8-94ページ上部での表示,8-93要素の書式設定,8-94

Page 368: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -18

要素の整列,4-26,8-94抑止,4-25列ヘッダー,8-107レポートの始めに設定,4-23

ヘルプ、オンライン,2-6,7-5,8-73変数システム変数,2-13置換変数,3-20バインド変数,3-30ユーザー変数,8-54

ほほほほホスト・オペレーティング・システム

SQL*Plusからのコマンド実行,2-16,8-74ファイル、バッファへのロード,8-71エディタ,3-7,8-66コマンド・プロンプト,2-3

ままままマウント共有データベース,8-133

むむむむ無限大記号(~),8-36

めめめめメッセージ、画面への送信,3-27,8-83メディア回復,8-133

ゆゆゆゆユーザー・プロファイル,3-17,7-4ユーザー変数,3-19

1つの定義のリスト表示,3-20,8-54ACCEPTコマンドでの,3-27,8-11削除,3-20,8-143すべての定義のリスト表示,8-54,3-20タイトルの表示,8-139定義,3-19,8-54ヘッダーおよびフッターの中に表示,8-93

ユーザー名,1-7CONNECTコマンドでの,6-2,6-3,8-49COPYコマンドでの,6-5,6-7,6-9,8-51

SQLPLUSコマンドでの,6-4,2-4,7-2異なるユーザー名での接続,6-2

ユーザー・プロファイル,3-17

ららららラベル

COMPUTEコマンドでの,4-17,8-44

りりりりリターン・コード、指定,8-153,3-17,8-70

れれれれレコード・セパレータ、出力,4-10,8-110列

1つの列の表示属性のリスト表示,8-32,4-9CHAR、VARCHAR、LONGおよび DATEの書式

設定,8-34MLSLABEL、RAW MLSLABEL、ROWLABELの書

式設定,8-34NUMBERの書式設定,8-34,4-5値がオーバーフローした場合の全列値の折返し表

示,4-8,8-114値がオーバーフローした場合の全列値の切捨て表

示,4-8,8-114値がオーバーフローした場合の列値の折返し表示,

4-8,8-38値がオーバーフローした場合の列値の切捨て表示,

4-8,8-38新しい行の開始,8-37オーバーフローする値の後の行の出力,4-10,8-110下部タイトルへの値の表示,8-38,4-31コピー時の宛先の表での名前,6-5,8-51サマリー行の計算,4-16,8-43出力をオフまたはオンに設定,8-38,4-30上部タイトルへの値の表示,8-37,4-30すべての列の表示属性のリスト表示,4-9,8-32すべての列の表示をデフォルトにリセット,4-9,

8-30すべてのワードを 1列に折返し,4-10表間での値のコピー,6-4,6-9,8-51表示属性のコピー,4-8,8-20,8-37表示属性の復元,4-10,8-20,8-38表示属性の抑止,4-10,8-20,8-38別名の割当て,8-33

Page 369: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -19

変数への値の格納,4-30,8-37列の表示をデフォルトにリセット,8-33,4-9レポート内での書式設定,4-2,8-32

列セパレータ,8-104列ヘッダー

CHARおよび LONG列で切り捨てられる場合,4-7DATE列で切り捨てられる場合,4-7NUMBER列で切り捨てられる場合,4-4下線に使用する文字の変更,4-3,8-113切り捨てられる場合,8-34整列,8-37複数行への表示,4-3,8-36複数のワードに変更,4-3,8-36変更,4-2,8-36レポートへの出力の抑止,8-107

レポート,1-2新しいページでの開始,8-106下部タイトルの作成,4-23,8-26間隔の設定およびサマリー行による明確化,4-11上部タイトルの作成,4-23,8-139表示,8-103フッターの作成,8-91ヘッダーおよびフッターの作成,4-23ヘッダーの作成,8-93マスター /ディテールの作成,4-30,8-37,8-38列の書式設定,4-4,4-6,8-32列ヘッダーの書式設定,8-32,4-2

レポート・タイトルタイトル,8-139

レポートのブレークBREAKコマンド,8-21

レポート列列,8-33

ろろろろロール,E-8使用禁止,E-7再び使用可能にする,E-7

ログインOracle,6-2,6-3,8-49SQL*Plus,2-4,7-2

ログオフOracle,6-2,8-65SQL*Plus,2-4,8-69条件付き,8-150,8-152

Page 370: ユーザーズ・ガイドおよびリファレンスotndnld.oracle.co.jp/document/products/iserver/... · SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース

索引索引索引索引 -20