390
Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス リリース 8.1 2000 11 部品番号 : J02318-01

Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Oracle8i SQL*Plus

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

リリース 8.1

2000年 11月

部品番号 : J02318-01

Page 2: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

部品番号 : J02318-01

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

原本部品番号:A82950-01

原本著者:Simon Watt

原本協力者:Alison Goggin、 Alison Holloway、 Christopher Jones、 Anita Lam、 Luan Nim

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

Printed in Japan.

制限付権利の説明

プログラム(ソフトウェアおよびドキュメントを含む)の使用、複製または開示は、オラクル社との契約に記された制約条件に従うものとします。著作権、特許権およびその他の知的財産権に関する法律により保護されています。

当プログラムのリバース・エンジニアリング等は禁止されております。

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

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

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

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

Restricted Rights Notice

Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, 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-19, Commercial Computer Software - Restricted Rights (June, 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065.

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

Page 3: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

目次目次目次目次

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

対象読者 ...................................................................................................................................................................... xこのマニュアルの構成 .............................................................................................................................................. x関連マニュアル ........................................................................................................................................................ xii

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

1 概要概要概要概要

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

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

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

このマニュアルの利用方法このマニュアルの利用方法このマニュアルの利用方法このマニュアルの利用方法 ................................................................................................................................... 1-3

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

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

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

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

オペレーティング・システム用の情報 ....................................................................................................... 1-6

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

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

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

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

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

SQL*Plusの起動 ............................................................................................................................................. 2-3

i

Page 4: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusの終了 ............................................................................................................................................. 2-4コマンドの入力と実行コマンドの入力と実行コマンドの入力と実行コマンドの入力と実行 ........................................................................................................................................... 2-5

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

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

SQL*Plusコマンドの実行 ........................................................................................................................... 2-11

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

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

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

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

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

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

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

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

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

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

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

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

カレント行の編集 ........................................................................................................................................... 3-3

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

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

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

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

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

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

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

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

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

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

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

SQL*Plus環境の設定 ................................................................................................................................... 3-19

SQL*Plusシステム変数の格納および復元 ............................................................................................... 3-20対話型コマンドの作成対話型コマンドの作成対話型コマンドの作成対話型コマンドの作成 ......................................................................................................................................... 3-21

ii

Page 5: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

置換変数の使用 ............................................................................................................................................. 3-22

STARTコマンドを使用した値の指定 ....................................................................................................... 3-27

プロンプトの表示 ......................................................................................................................................... 3-28バインド変数の使用方法バインド変数の使用方法バインド変数の使用方法バインド変数の使用方法 ..................................................................................................................................... 3-31

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

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

バインド変数の表示 ..................................................................................................................................... 3-32REFCURSORバインド変数の使用方法バインド変数の使用方法バインド変数の使用方法バインド変数の使用方法 ........................................................................................................... 3-33

文のトレース文のトレース文のトレース文のトレース ......................................................................................................................................................... 3-36

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

実行計画 ......................................................................................................................................................... 3-37

統計 ................................................................................................................................................................. 3-38

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

iii

Page 6: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

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

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

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

問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果の格納および印刷 ............................................................................................................................. 4-34

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

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

Webレポートの作成レポートの作成レポートの作成レポートの作成 ........................................................................................................................................... 4-38

対話型でのWebレポートの作成 ............................................................................................................... 4-38

埋込み型のWebレポートの作成 ............................................................................................................... 4-42

Webレポートでの SQL*Plusコマンドの表示の抑止 ............................................................................. 4-46

HTMLエンティティ .................................................................................................................................... 4-47

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

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

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

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

ARCHIVELOGモード .................................................................................................................................. 5-4

データベースのリカバリデータベースのリカバリデータベースのリカバリデータベースのリカバリ ....................................................................................................................................... 5-5

6 SQL*Plusを使用したデータベースへの接続を使用したデータベースへの接続を使用したデータベースへの接続を使用したデータベースへの接続

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

リモート・データベースへの接続リモート・データベースへの接続リモート・データベースへの接続リモート・データベースへの接続 ....................................................................................................................... 6-3

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

SQL*Plus起動時のリモート・データベースへの接続 ............................................................................. 6-4データベース間でのデータのコピーデータベース間でのデータのコピーデータベース間でのデータのコピーデータベース間でのデータのコピー ................................................................................................................... 6-4

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

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

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

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

iv

Page 7: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

SQLPLUSコマンドでのコマンドでのコマンドでのコマンドでの SQL*Plusの起動の起動の起動の起動 ....................................................................................................... 7-2

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

ユーザー・プロファイルの設定 ................................................................................................................. 7-10

リターン・コードの受信 ............................................................................................................................. 7-10SQL*Plusコマンドのヘルプコマンドのヘルプコマンドのヘルプコマンドのヘルプ .............................................................................................................................. 7-12

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

SQL*Plusコマンド一覧コマンド一覧コマンド一覧コマンド一覧 ........................................................................................................................................ 8-2@(アットマーク)(アットマーク)(アットマーク)(アットマーク) .................................................................................................................................................. 8-5@@(二重アットマーク)(二重アットマーク)(二重アットマーク)(二重アットマーク) ....................................................................................................................................... 8-7

/(スラッシュ)(スラッシュ)(スラッシュ)(スラッシュ) ........................................................................................................................................................ 8-9ACCEPT ................................................................................................................................................................ 8-10APPEND ................................................................................................................................................................ 8-12

ARCHIVE LOG ................................................................................................................................................... 8-13ATTRIBUTE ......................................................................................................................................................... 8-17BREAK ................................................................................................................................................................... 8-19

BTITLE .................................................................................................................................................................. 8-24CHANGE .............................................................................................................................................................. 8-25CLEAR ................................................................................................................................................................... 8-28

COLUMN .............................................................................................................................................................. 8-30COMPUTE ............................................................................................................................................................ 8-41CONNECT ............................................................................................................................................................ 8-47

COPY ..................................................................................................................................................................... 8-49DEFINE ................................................................................................................................................................. 8-52DEL ......................................................................................................................................................................... 8-54

DESCRIBE ............................................................................................................................................................ 8-56DISCONNECT ..................................................................................................................................................... 8-63EDIT ....................................................................................................................................................................... 8-64

EXECUTE .............................................................................................................................................................. 8-66EXIT ....................................................................................................................................................................... 8-67GET ........................................................................................................................................................................ 8-69

HELP ...................................................................................................................................................................... 8-70HOST ..................................................................................................................................................................... 8-71

v

Page 8: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

INPUT .................................................................................................................................................................... 8-73LIST ........................................................................................................................................................................ 8-75

PASSWORD ......................................................................................................................................................... 8-77PAUSE ................................................................................................................................................................... 8-78PRINT .................................................................................................................................................................... 8-79

PROMPT ............................................................................................................................................................... 8-80RECOVER ............................................................................................................................................................. 8-81REMARK .............................................................................................................................................................. 8-87

REPFOOTER ........................................................................................................................................................ 8-88REPHEADER ....................................................................................................................................................... 8-90RUN ....................................................................................................................................................................... 8-93

SAVE ...................................................................................................................................................................... 8-94SET ......................................................................................................................................................................... 8-96SHOW .................................................................................................................................................................. 8-121

SHUTDOWN ..................................................................................................................................................... 8-126SPOOL ................................................................................................................................................................. 8-128START ................................................................................................................................................................. 8-129

STARTUP ........................................................................................................................................................... 8-131STORE ................................................................................................................................................................. 8-135TIMING .............................................................................................................................................................. 8-136

TTITLE ................................................................................................................................................................ 8-138UNDEFINE ......................................................................................................................................................... 8-142VARIABLE ......................................................................................................................................................... 8-143

WHENEVER OSERROR .................................................................................................................................. 8-149WHENEVER SQLERROR ............................................................................................................................... 8-151

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

B 拡張された機能拡張された機能拡張された機能拡張された機能

SQL*Plusリリースリリースリリースリリース 8.1.7での拡張機能での拡張機能での拡張機能での拡張機能 .............................................................................................................. B-2SQL*Plusリリースリリースリリースリリース 8.1.6での拡張機能での拡張機能での拡張機能での拡張機能 .............................................................................................................. B-3SQL*Plusリリースリリースリリースリリース 8.1.5での拡張機能での拡張機能での拡張機能での拡張機能 .............................................................................................................. B-4

vi

Page 9: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

PRODUCT_USER_PROFILE表表表表 ......................................................................................................................... E-2

概要 ................................................................................................................................................................... E-2

表の作成 ........................................................................................................................................................... E-2

表の構造 ........................................................................................................................................................... E-3

列の説明および使用方法 ............................................................................................................................... E-3

管理 ................................................................................................................................................................... E-4ロールの使用禁止ロールの使用禁止ロールの使用禁止ロールの使用禁止 ................................................................................................................................................... E-7

概要 ................................................................................................................................................................... E-8SQLPLUS -RESTRICT ......................................................................................................................................... E-8

F 廃止された廃止された廃止された廃止された SQL*Plusコマンドコマンドコマンドコマンド

SQL*Plusで廃止されたコマンドとその代替コマンドで廃止されたコマンドとその代替コマンドで廃止されたコマンドとその代替コマンドで廃止されたコマンドとその代替コマンド .................................................................................... F-2BTITLE(旧形式)(旧形式)(旧形式)(旧形式) .................................................................................................................................................. F-3COLUMN DEFAULT ........................................................................................................................................... F-3

DOCUMENT .......................................................................................................................................................... F-3NEWPAGE .............................................................................................................................................................. F-4SET BUFFER ........................................................................................................................................................... F-4

SET CLOSECURSOR ........................................................................................................................................... F-5SET DOCUMENT ................................................................................................................................................. F-5

SET MAXDATA .................................................................................................................................................... F-6SET SCAN .............................................................................................................................................................. F-6SET SPACE ............................................................................................................................................................. F-6

SET TRUNCATE ................................................................................................................................................... F-7SHOW LABEL ........................................................................................................................................................ F-7TTITLE(旧形式)(旧形式)(旧形式)(旧形式) .................................................................................................................................................. F-7

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

索引索引索引索引

vii

Page 10: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

viii

Page 11: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

『Oracle8i SQL*Plusユーザーズ・ガイドおよびリファレンス』では、SQL*Plusプログラムおよびその使用方法について説明します。それぞれの SQL*Plusコマンドについても詳細に説明します。

ix

Page 12: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

このマニュアルの構成このマニュアルの構成このマニュアルの構成このマニュアルの構成このマニュアルは、次の 2部で構成され、8つの章、6つの付録および用語集が含まれています。第 I部「SQL*Plusについて」には 6つの章、第Ⅱ部「リファレンス」には 2つの章が含まれます。

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

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

第 2章 SQL*Plusの起動方法およびコマンドを入力して実行する方法について説明します。ここでは、サンプル表を使用した例をステップごとに実践しながら学習します。

第 3章 コマンドの編集方法、コマンドを後で使用するために保存する方法、対話型コマンドの作成方法を、例を使用して説明します。

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

第 5章 データベース管理者(DBA)を対象としています。SQL*Plusでの基本データベース管理機能について説明します。

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

x

Page 13: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

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

付録 B リリース 8.1.7での SQL*Plusの拡張機能について説明します。

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

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

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

付録 F 廃止された SQL*Plusコマンドについて説明します。

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

xi

Page 14: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

� 『SQL*Plus Accessibility Guide for Windows』

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

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

� 『Oracle8i SQLリファレンス』

� 『Oracle8i概要』

� 『Oracle8i管理者ガイド』

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

� 『Oracle8iアプリケーション開発者ガイド 基礎編』

� 『Oracle8i分散システム』

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

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

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

� 『Oracle8i移行ガイド』

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

� 『Oracle8iパフォーマンスのための設計およびチューニング』

� 『Oracle8i Parallel Server概要』

� 『Oracle8i Net8管理者ガイド』

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

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

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

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

xii

Page 15: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

第第第第 I部部部部

SQL*Plusについてについてについてについて

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

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

� 概要

� SQL*Plusの基本

� コマンド操作

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

� データベース管理

� SQL*Plusを使用したデータベースへの接続

Page 16: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,
Page 17: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

1

概要概要概要概要

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

� SQL*Plusの概要

� このマニュアルの利用方法

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

概要 1-1

Page 18: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusの概要

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

SQL*Plusを使用すると、SQLコマンドおよび PL/SQLブロックを実行できる他、多数の作業ができます。SQL*Plusで実行可能な作業は、次のとおりです。

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

� 問合せ結果の書式設定、計算の実行、格納、印刷およびWebへの表示

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

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

� エンド・ユーザーへのメッセージの送信およびエンド・ユーザーからの応答の受信

� データベースの管理

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

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

SQL*Plusコマンド言語は、簡単に使用できるように設計されています。たとえば、データベース内の ENAMEというラベルが付いた列に、「Employee」という、さらに明確なヘッダーを付けるには、次のコマンドを入力します。

COLUMN ENAME HEADING EMPLOYEE

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

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

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

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

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

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

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

Page 19: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

DESCRIBE EMP

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

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

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

その他のコマンド構文については、その単語が使用されている場所で説明します。

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

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

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

英小文字のイタリック column 句の値。適切な値に置き換えてください。

特定の意味がある単語 c 単一の文字。

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

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

expr 指定されていない式。

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

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

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

概要 1-3

Page 20: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

その他の記号がコマンド構文で示されている場合は、それらの記号を入力してください。

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

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

表表表表 1-2 コマンド構文で使用する記号コマンド構文で使用する記号コマンド構文で使用する記号コマンド構文で使用する記号

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

垂直バー | 任意または必ず選択する構文要素の区切り。

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

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

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

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

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

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

注意注意注意注意 : サンプル表の日付は、4桁の年号桁を使用しています。SQL*Plusのデフォルトの日付書式が NLS_DATE_FORMATまたは DD-MM-YYの場合、日付は、2桁の年号桁で表示されます。日付の表示方法を変更するには、SELECT文で、SQLの TO_CHAR関数を使用してください。

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

Page 21: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

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

図図図図 1-2 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-5

Page 22: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

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

複数のユーザーがコンピュータを共有している組織では、Oracleの使用を管理するデータベース管理者(DBA)が必要です。

システムへの Oracleおよび SQL*Plusのインストールは、DBAが行います。OracleおよびSQL*Plusのインストール方法については、ご使用のオペレーティング・システム用のOracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

オペレーティング・システム用の情報オペレーティング・システム用の情報オペレーティング・システム用の情報オペレーティング・システム用の情報Oracleおよび SQL*Plusには、ホスト・コンピュータおよびオペレーティング・システムの種類によって異なる点があります。そのような点については、SQL*Plusがサポートしているホスト・コンピュータおよびオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

このマニュアルを読むときには、参照用に Oracleインストレーション・ガイドおよび管理者リファレンスを準備してください。このマニュアルでは、必要に応じてインストレーション・ガイドおよび管理者リファレンスを参照しています。

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

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

Page 23: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

シングルユーザー・システムシングルユーザー・システムシングルユーザー・システムシングルユーザー・システム一度に 1人のユーザーのみがコンピュータを使用する場合、そのユーザーが自分で DBAの役割を果たす必要がある場合もあります。その場合は、適切な DBA権限で Oracleユーザー名 SCOTTおよびパスワード TIGERを使用できます。ユーザー名およびパスワードを独自に定義する場合は、『Oracle8i SQLリファレンス』を参照してください。

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

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

概要 1-7

Page 24: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

Page 25: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusの

2

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

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

� ご使用になる前に

� コマンドの入力と実行

� 役立つ情報

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

基本 2-1

Page 26: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ご使用になる前に

ご使用になる前にご使用になる前にご使用になる前にご使用になる前に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を終了し、ホスト・オペレーティング・システムに戻ります。

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

Page 27: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ご使用になる前に

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

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

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

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

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

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

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

$ SQLPLUS

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

SQL*Plus: Release 8.1.7.0.0 - 0 - Production on Thu Aug 3 16:29:01 2000(c) Copyright 2000 Oracle Corporation. All rights reserved.ユーザー名:

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

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

SQL*Plusの基本 2-3

Page 28: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ご使用になる前に

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コマンドを入力します。

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

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

SQL> EXIT

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

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

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

Page 29: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

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

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

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

大 /小文字の区別は、オペレーティング・システムによって異なります。このマニュアルでは、わかりやすくするため、表名、列名およびコマンドをすべて大文字で表記しています。

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

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

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

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

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

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

SQL> HELP ACCEPT

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

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

SQL*Plusの基本 2-5

Page 30: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

コマンドの実行コマンドの実行コマンドの実行コマンドの実行コマンドを入力して、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 < 1500;

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

EMPNO ENAME JOB SAL----- ---------- ------------ ------ 7369 SMITH CLERK 8007521 WARD SALESMAN 12507654 MARTIN SALESMAN 12507876 ADAMS CLERK 11007900 JAMES CLERK 8007934 MILLER CLERK 1300

9 rows selected.SQL>

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

Page 31: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

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

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

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

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

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

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

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

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

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

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

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

� 空白行を入力する

SQL*Plusの基本 2-7

Page 32: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

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

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

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

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

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

注意注意注意注意 : 同じ行でセミコロンの後にコメントを入力することはできません。コメントの挿入方法の詳細は、第 3章の「コマンド・ファイルへのコメントの挿入」を参照してください。

注意注意注意注意 : SQL文における空白行の表示方法および動作は、SET SQLBLANKLINESコマンドを使用して変更できます。空白行の動作を変更する方法の詳細は、第 8章の「SET」コマンドを参照してください。

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

Page 33: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

� 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章「コマンド・リファレンス」を参照してください。

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

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

SQL*Plusの基本 2-9

Page 34: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

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

PL/SQLブロックの実行ブロックの実行ブロックの実行ブロックの実行データベース内のデータを操作するために PL/SQLサブプログラム(ブロック)を使用することもできます。個々の PL/SQL文の詳細は、『Oracle8i 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*Plusコマンド・プロンプトから入力したサブプログラムは、SQLバッファに格納されます。現行のサブプログラムを実行するには、RUNコマンドまたはスラッシュ(/)を発行します。同様に、SQLの CREATEコマンドを実行してストアド・プロシージャを作成する場合にも、RUNまたはスラッシュ(/)を入力する必要があります。それらの SQLコマンドは、他の SQLコマンドのようにセミコロン(;)で実行することはできません。

SQL*Plusは、(SQLコマンドの場合と同様に)処理する PL/SQLサブプログラム全体をOracleへ送信します。

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

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

Page 35: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

たとえば、次のような 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言語の詳細は、『Oracle8i 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章「コマンド・リファレンス」を参照してください。

例例例例 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コマンド・プロンプトを再び表示して新しいコマンドを入力できる状態になります。

SQL*Plusの基本 2-11

Page 36: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

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

SQL> RUN 1 SELECT EMPNO, ENAME, JOB, SAL 2* FROM EMP WHERE SAL < 2400EMPNO ENAME JOB SALARY----- ------------- ------------ ------7369 SMITH CLERK $8007499 ALLEN SALESMAN $1,6007521 WARD SALESMAN $1,2507654 MARTIN SALESMAN $1,2507844 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]を押すと、次行に続けて入力できます。ハイフンの前に空白文字を入力してもかまいません。右山カッコ(>)が個々の追加行のプロンプトとして表示されます。

次に例を示します。

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

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

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

Page 37: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

SQL> select 200 -> 100 from dual;select 200 100 from dual *エラー行:1:ORA-00923:FROMキーワードが指定の位置にありません。

文を正しく解釈させるには、最初の行の末尾から 2行目の先頭へハイフンを移動させます。

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」コマンドを参照してください。

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

SQL*Plusの基本 2-13

Page 38: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

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

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

例例例例 2-5 自動コミット機能を自動コミット機能を自動コミット機能を自動コミット機能を ONにする方法にする方法にする方法にする方法

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

SQL> SET AUTOCOMMIT ON

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

SQL> SET AUTOCOMMIT IMMEDIATE

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

commit complete

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

SQLの DMLコマンドを、一定の数(10個など)実行した後にデータベースへの変更をコミットする場合は、次のように入力します。

SQL> SET AUTOCOMMIT 10

SET AUTOCOMMIT ON 自動コミット機能を ONにする。

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

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

SET AUTOCOMMIT IMMEDIATE 自動コミット機能を ONにする。

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

Page 39: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンドの入力と実行

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

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

SQL> SET AUTOCOMMIT OFF

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

SQL> SHOW AUTOCOMMITautocommit OFF

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

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

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

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

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

SQL*Plusの基本 2-15

Page 40: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

役立つ情報

詳細は、第 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セッションから HOSTコマンドを使用して入力されたオペレーティング・システム・コマンドは、現行の SQL*Plusセッションでは有効になりません。

HOSTコマンドは、使用禁止にすることができます。HOSTコマンドを使用禁止にする方法の詳細は、付録 E「セキュリティ」を参照してください。

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

Page 41: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

役立つ情報

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

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

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

SQL> DESCRIBE DEPT

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

Name Null? Type------------------------------- ------- -------------DEPTNO 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

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

SQL*Plusの基本 2-17

Page 42: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

役立つ情報

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

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

エラー・メッセージの解釈エラー・メッセージの解釈エラー・メッセージの解釈エラー・メッセージの解釈SQL*Plusがコマンド内にエラーを検出した場合、エラーの解決に有効なエラー・メッセージが表示されます。

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

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

SQL> DESCRIBE DPTERROR:ORA-04043:オブジェクトDPTは存在しません。

ほとんどの問題は、メッセージの情報のみで解決できます。詳しい説明が必要な場合は、問題の原因と訂正方法を判断するため、次のいずれかのステップを実行してください。

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

� エラー・メッセージが、「ORA」という英字で始まる番号付きのものである場合は、『Oracle8iエラー・メッセージ』、またはご使用のオペレーティング・システム用の

Oracleインストレーション・ガイドおよび管理者リファレンスでそのメッセージを検索し、問題の原因と処置を判断してください。

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

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

Page 43: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンド

3

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

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

� 編集コマンド

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

� 対話型コマンドの作成

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

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

� 文のトレース

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

操作 3-1

Page 44: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

編集コマンド

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

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

表 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 * カレント行をリスト表示します。

LIST n * L n * 行 nからカレント行までをリスト表示します。

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

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

LIST * n L * n カレント行から行 nまでをリスト表示します。

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

Page 45: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

編集コマンド

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

バッファ内容のリスト表示バッファ内容のリスト表示バッファ内容のリスト表示バッファ内容のリスト表示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バッファには格納されません。そのため、セミコロンを削除しなくてもバッファの末尾に新しい行を追加でき、編集に便利です。

カレント行の編集カレント行の編集カレント行の編集カレント行の編集SQL*Plusの CHANGEコマンドを使用して、カレント行を編集できます。次のいずれかの方法で、どの行がカレント行であるかを判断できます。

� LISTコマンドで特定の行を表示すると、その行がカレント行になります。

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

� エラー・メッセージを受け取った場合は、そのエラーが含まれている行が自動的にカレント行になります。

コマンド操作 3-3

Page 46: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

編集コマンド

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

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

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

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

SELECT DPTNO, ENAME, SAL *エラー行:1:ORA-00904:列名が無効です。

エラー・メッセージには、問合せの 1行目に無効な列名があることが示されています。*は、エラーの位置(綴りを誤って入力した列である DPTNO)を示しています。

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

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

� 変更する文字列

� 置換文字列

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

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

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

SQL> CHANGE /DPTNO/DEPTNO

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

1* SELECT DEPTNO, ENAME, SAL

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

Page 47: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

編集コマンド

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

SQL> RUN

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

1 select deptno, ename, sal 2 from emp 3* where deptno = 10

DEPTNO ENAME SAL---------- ---------- ---------- 10 CLARK 2450 10 KING 5000 10 MILLER 1300

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

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

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

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

SQL> 0 SELECT EMPNO

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

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

SQL> INPUT 4

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

4 ORDER BY SAL5

コマンド操作 3-5

Page 48: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

編集コマンド

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

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

1 select deptno, ename, sal 2 from emp 3 where deptno = 10 4* order by sal

DEPTNO ENAME SAL---------- ---------- ---------- 10 MILLER 1300 10 CLARK 2450 10 KING 5000

行へのテキストの追加行へのテキストの追加行へのテキストの追加行へのテキストの追加バッファの行端にテキストを追加するには、次のように 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

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

Page 49: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

編集コマンド

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

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

1 select deptno, ename, sal 2 from emp 3 where deptno = 10 4* order by sal desc

DEPTNO ENAME SAL---------- ---------- ---------- 10 KING 5000 10 CLARK 2450 10 MILLER 1300

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

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

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

カレント行から最終行までを削除するとします。次のように、DELコマンドを使用します。

SQL> DEL * LAST

DELを実行すると、バッファに次の行がある場合は、その行がカレント行になります。

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

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

EDITコマンドを入力すると、SQL*Plusを終了せずに、ホスト・オペレーティング・システムのデフォルト・テキスト・エディタを実行できます。

SQL> EDIT

コマンド操作 3-7

Page 50: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

SQL> DEFINE _EDITOR = EDT

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

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

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

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

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

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

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

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

SQL> SAVE file_name

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

Page 51: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

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

最初に、現行のコマンドを表示するため、次のようにバッファの内容をリスト表示します。

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で保存されたファイルの拡張子には、デフォルトで .sqlが付きます。拡張子を指定するには、SQL*Plusの SET SUFFIXコマンドを使用します。

コマンド操作 3-9

Page 52: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

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

SQL> CLEAR BUFFER

次に、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コマンドの詳細は、『Oracle8i SQLリファレンス』の第 4章を参照してください。

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

SQL> SAVE SALESCreated file SALES

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

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

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

Page 53: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

INPUT /

システム・エディタを使用したコマンド・ファイルの作成システム・エディタを使用したコマンド・ファイルの作成システム・エディタを使用したコマンド・ファイルの作成システム・エディタを使用したコマンド・ファイルの作成ホスト・オペレーティング・システムのテキスト・エディタを使用してコマンド・ファイルを作成するには、次のように 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つの方法があります。

� 1行のコメントには、SQL*Plusの REMARKコマンドを使用する

� 複数行のコメントには、SQLのコメント・デリミタ /* ...*/を使用する

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

コマンド・ファイルでコメントを使用する方法の詳細は、この章の後半にある「コメント挿入時の注意」を参照してください。

コマンド操作 3-11

Page 54: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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コマンドと同じ行に入力するか、またはブロック内の行に入力します。

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

/* 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

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

Page 55: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

SQL*Plusコマンドで「--」を使用してコメントを挿入できるのは、その行全体がコメントである場合のみです。たとえば、次のコメントは有効です。

--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では、コメントとして入力された箇所は、通常、解析または実行されません。

SQL*Plusには、SQLや PL/SQLのコマンド解析機能がありません。SQL*Plusでは、新しい文のそれぞれについて、冒頭にある数語のキーワードをスキャンし、SQL、PL/SQLまたは SQL*Plusのいずれのコマンドであるか判断します。コメントの挿入箇所によっては、SQL*Plusがコマンドを正しく認識できず、エラーになる場合があります。次に、SQL*Plusで正しくコメントを使用するための使用方法を示します。

1. 文の冒頭の数キーワード内には、コメントを挿入しないでください。たとえば、次のような場合です。

SQL> create or replace 2 /* hello */ 3 procedure hello 4 as 5 begin 6 null;Warning: Procedure created with compilation errors.

例に示す位置にコメントを挿入すると、SQL*Plusは、このコマンドが PL/SQLのコマンドであることを認識できません。SQL*Plusは、コメントの最初にあるスラッシュ(/)を文の終了記号と解釈して、このブロックをサーバーに送信します。このエラーを回避するには、コメントの挿入位置を次のように変更します。

SQL> create or replace procedure 2 /* hello */ 3 hello 4 as ...

コマンド操作 3-13

Page 56: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

2. 文の終了記号(フルストップ、セミコロンまたはスラッシュ)の後に、コメントを挿入しないでください。たとえば、次のような場合です。

SQL> SELECT 'Y' FROM DUAL; -- Testing 2 ;SELECT 'Y' FROM DUAL; -- Testing *エラー行:1:ORA-00911:文字が無効です。

SQL*Plusでは、同じ行にある文の終了記号の後にテキストを記述することはできず、コメントとして認識させることもできません。

3. SQL文または PL/SQLブロックで、同じ行のコメントの後に文の終了記号文字を挿入しないでください。たとえば、次のような場合です。

SQL> select * 2 -- comment;-- comment *エラー行:2:ORA-00923:FROMキーワードが指定の位置にありません。

SQL*Plusが、セミコロンを文の終了記号として解釈し、不十分な SQLコマンドを処理しようとしてサーバーに送信するため、エラーになります。

4. SQL文または PL/SQLブロックでは、コメントにアンパサント(&)を使用しないでください。たとえば、次のような場合です。

SQL> select * from /* this & that */ dept;Enter value for that:old 1: select * from /* this & that */ deptnew 1: select * from /* this */ dept DEPTNO DNAME LOC---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON

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

Page 57: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

SQL*Plusは、アンパサンド(&)の後のテキストを置換変数として解釈し、変数の値を求めるプロンプトを表示します。SET DEFINE OFFを使用して、置換文字をスキャンしないようにすることができます。

置換変数および終了文字の詳細は、第 8章の「SET」コマンドの DEFINE、SQLTERMINATORおよび SQLBLANKLINESを参照してください。

コマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの内容をバッファ内に入れる場合は、そのコマンドが格納されているファイルからコマンドを取り出す必要があります。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'7

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

コマンド操作 3-15

Page 58: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

コマンド・ファイルの実行コマンド・ファイルの実行コマンド・ファイルの実行コマンド・ファイルの実行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

指定されたコマンド・ファイル内のコマンドを、@コマンドで表示および実行する方法は、STARTの場合と同じです。SET ECHOでの指定は、STARTコマンドと同様に、@コマンドでも有効です。

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

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

Page 59: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

コマンド操作 3-17

Page 60: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

コマンド・ファイルの変更コマンド・ファイルの変更コマンド・ファイルの変更コマンド・ファイルの変更次の 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

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

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

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

Page 61: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

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

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

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

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

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

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

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

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

コマンド操作 3-19

Page 62: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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

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

SQL> STORE SET file_name

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

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

SQL> START file_name

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

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

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

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

SQL> STORE SET plusenvCreated file plusenv

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

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

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

Page 63: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

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

SQL> START plusenvSQL> SHOW PAGESIZEpagesize 24

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

� ユーザー変数の定義

� 置換変数の使用

� STARTコマンドを使用した値の指定

� プロンプトの表示

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

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

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

SQL> DEFINE EMPLOYEE = SMITH

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

SQL> DEFINE EMPLOYEE

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

DEFINE EMPLOYEE = "SMITH" (CHAR)

コマンド操作 3-21

Page 64: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

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

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

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

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

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

たとえば、変数 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は、コマンド内で未定義の置換変数を検出した場合、値の入力を求めるプロンプトを表示します。

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

Page 65: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

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

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

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

例例例例 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

コマンド操作 3-23

Page 66: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

問合せ結果は、次のように出力されます。

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

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

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には前に 1つのアンパサンドが付いています。さらに 3つの関数を、それぞれの前にアンパサンドを 1つ付けてコマンド・ファイルに追加した場合には、合計で 4回、数値列の値の入力を求めるプロンプトが表示されます。

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

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

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

SQL> SET VERIFY OFF

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

Page 67: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

この時点で、次のコマンドを入力して 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

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

問合せ結果は、次のように出力されます。

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

コマンド操作 3-25

Page 68: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

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

次の項に進む前に、次のようにしてシステム変数 VERIFYの設定を ONに戻します。

SQL> SET VERIFY ON

制限制限制限制限置換変数はバッファ編集コマンドの APPEND、CHANGE、DELおよび INPUTには使用できません。また、他にも置換が意味をなさないコマンド、たとえば SQL*Plusのコメント(REMARK、/* ... */、--など)にも使用できません。バッファ編集コマンドの APPEND、

CHANGEおよび INPUTは、&または &&で始まるテキストを、他のテキスト文字列と同じように単なる文字列として扱います。

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

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

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

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

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

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

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

Page 69: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

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

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

たとえば、MYFILEというコマンド・ファイルに次のコマンドを挿入できます。

SELECT * FROM EMPWHERE JOB='&1'AND SAL=&2

次の STARTコマンドでは、コマンド・ファイルMYFILE内の &1は CLERKに置換され、&2は 7900に置換されます。

SQL> START MYFILE CLERK 7900

STARTコマンドとともに引数を使用した場合、SQL*Plusはコマンド・ファイル内のそれぞれのパラメータを適切な引数の値で定義します。

例例例例 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

コマンド操作 3-27

Page 70: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

この時点で、次のようにパラメータ CLERKを使用してこのコマンドを実行します。

SQL> START ONEJOB CLERK

SQL*Plusは、次のようにパラメータをその値に置換する前後で、パラメータが含まれている SQLコマンドの行を表示し、その後に結果を表示します。

old 3: WHERE JOB = '&1'new 3: WHERE JOB = 'CLERK'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を使用します。

注意注意注意注意 : RUNまたはスラッシュ(/)を使用しコマンドを実行する場合は、パラメータを使用できません。コマンドをコマンド・ファイルに格納し、STARTまたは @を使用して実行してください。

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

Page 71: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

例例例例 3-15 入力のプロンプトおよびアクセプト入力のプロンプトおよびアクセプト入力のプロンプトおよびアクセプト入力のプロンプトおよびアクセプト

ユーザーにレポートのタイトルを入力するよう指示し、その入力値を変数MYTITLEに格納してその後の問合せで使用可能にするには、まず次のようにバッファを消去します。

SQL> CLEAR BUFFER

次に、コマンド・ファイルを設定します。

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 PROMPT1

TTITLEコマンドは、レポートの一番上のタイトルを設定します。TTITLEコマンドの詳細は、第 4章の「ページおよびレポートのタイトルとサイズの定義」を参照してください。

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

SQL> START PROMPT1Enter a title up to 30 characters long.Title: Department Report as of 1/1/99

問合せ結果は、次のように出力されます。

Department Report as of 1/1/99 DEPTNO DNAME LOC---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON

次の項に進む前に、次のように入力して、コマンド・ファイルに入力した TTITLEコマンドを OFFにします。

SQL> TTITLE OFF

コマンド操作 3-29

Page 72: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

対話型コマンドの作成

置換変数の入力を求めるプロンプトのカスタマイズ置換変数の入力を求めるプロンプトのカスタマイズ置換変数の入力を求めるプロンプトのカスタマイズ置換変数の入力を求めるプロンプトのカスタマイズ置換変数値の入力を求めるプロンプトをカスタマイズする場合は、次の例に示すとおり、置換変数と組み合せて PROMPTおよび ACCEPTを使用します。

例例例例 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: 7369, 7499, 7521 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: 7369, 7499, 7521Emp. 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

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

Page 73: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

バインド変数の使用方法

問合せ結果は、次のように出力されます。

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.

画面の消去画面の消去画面の消去画面の消去レポートを表示する前に(または任意の時点で)画面を消去する場合は、コマンド・ファイル内の適切な場所に、次の書式で SQL*Plusの CLEARコマンドに SCREEN句を付けて挿入します。

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サブプログラムのデバッグなどに利用できます。

コマンド操作 3-31

Page 74: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

バインド変数の使用方法

バインド変数は SQL*Plusによって認識できるため、バインド変数の値を SQL*Plusで表示したり、SQL*Plusで実行した他の PL/SQLサブプログラム中でバインド変数を参照することができます。

バインド変数の作成バインド変数の作成バインド変数の作成バインド変数の作成バインド変数は、SQL*Plusの中で VARIABLEコマンドを使用して作成されます。次に例を示します。

VARIABLE ret_val NUMBER

このコマンドによって、データ型が NUMBERで ret_valという名前のバインド変数が作成されます。詳細は、第 8章の「VARIABLE」コマンドを参照してください(あるセッションで作成したすべてのバインド変数をリスト表示するには、何も引数を付けずにVARIABLEと入力します)。

バインド変数の参照バインド変数の参照バインド変数の参照バインド変数の参照PL/SQLでバインド変数を参照するには、コロン(:)を入力し、その直後に変数の名前を指定します。次に例を示します。

:ret_val := 1;

SQL*Plusでこのバインド変数を変更するには、PL/SQLブロックを入力する必要があります。次に例を示します。

SQL> begin 2 :ret_val:=4; 3 end; 4 /

PL/SQL procedure successfully completed.

このコマンドは、ret_valという名前のバインド変数に値を割り当てます。

バインド変数の表示バインド変数の表示バインド変数の表示バインド変数の表示SQL*Plusでバインド変数の値を表示するには、SQL*Plusの PRINTコマンドを使用します。次に例を示します。

SQL> print ret_val

RET_VAL---------- 4

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

Page 75: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

このコマンドは、ret_valという名前のバインド変数を表示します。バインド変数を表示する方法の詳細は、第 8章の「PRINT」コマンドを参照してください。

例例例例 3-17 バインド変数の作成、参照および表示バインド変数の作成、参照および表示バインド変数の作成、参照および表示バインド変数の作成、参照および表示

データ型が NUMBERで idという名前のローカル・バインド変数を宣言するには、次のように入力します。

SQL> VARIABLE id NUMBER

次に、作成したばかりのバインド変数に値「1」を入れます。

SQL> BEGIN 2 :id := 1; 3 END; 4 /

idという名前のバインド変数の値を表示する場合は、次のように入力します。

SQL> print id

ID---------- 1

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

注意注意注意注意 : ストアド・ファンクションの戻り値を REFCURSOR変数に割り当てるには、Oracle7リリース 7.3以上を使用する必要があります。

コマンド操作 3-33

Page 76: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

次に、このバインド変数を使用する PL/SQLブロックを OPEN ...FOR SELECT文に入力します。この文は、カーソル変数をオープンし、問合せを実行します。OPENコマンドおよびカーソル変数の詳細は、『Oracle8i PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

この例では、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 created.

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

Page 77: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

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.

コマンド操作 3-35

Page 78: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

文のトレース

このファンクションを実行します。

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

このファンクションは、同じまたは別の 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)文が正常に実行された後に生成されます。このレポートは、これらの文のパフォーマンスを監視し、チューニングする場合に有効です。

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

Page 79: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

文のトレース

レポートの制御レポートの制御レポートの制御レポートの制御AUTOTRACEシステム変数を設定することによって、レポートを制御できます。

この機能を使用するには、PLUSTRACEロールが必要です。また、スキーマにPLAN_TABLE表が作成されている必要があります。PLUSTRACEロールの付与方法、および PLAN_TABLE表の作成方法の詳細は、『Oracle8i SQLリファレンス』を参照してください。PLUSTRACEロールおよび PLAN_TABLE表の詳細は、『Oracle8i SQLリファレンス』および第 8章の「SET」コマンドの AUTOTRACE変数を参照してください。

実行計画実行計画実行計画実行計画実行計画は、SQLオプティマイザの問合せ実行パスを示します。両方の表が、フル・テーブル・スキャンによってアクセスされ、ソートされた後マージされます。

実行計画のそれぞれの行には、順次行番号が付きます。SQL*Plusは、親操作の行番号も表示します。

実行計画は、次の順序で表示される 4つの列で構成されます。

SET AUTOTRACE OFF AUTOTRACEレポートは生成されません。これがデフォルトです。

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 使用されたデータベース・リンク、またはパラレル問合せサーバーを示します。

コマンド操作 3-37

Page 80: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

文のトレース

列の書式は、COLUMNコマンドで変更できます。たとえば、PARENT_ID_PLUS_EXP列を表示しないようにするには、次のように入力します。

SQL> COLUMN PARENT_ID_PLUS_EXP NOPRINT

デフォルトの書式は、サイト・プロファイル(たとえば、glogin.sql)で定義されています。

実行計画の出力は、EXPLAIN PLANコマンドを使用して生成されます。EXPLAIN PLANの出力の解釈の詳細は、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

統計統計統計統計統計は、文を実行したときにサーバーによって記録され、文の実行に必要なシステム・リソースを示します。

統計の中で使用されているクライアントは、SQL*Plusを表します。Net8は、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> /

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 MANAGER

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

Page 81: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

文のトレース

SALES 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 Net8 to client256 bytes received via Net8 from client3 Net8 roundtrips to/from client2 sort (memory)0 sort (disk)14 rows processed

注意注意注意注意 : 出力は、接続先のサーバーのバージョン、またはサーバーの構成によって異なる場合があります。

コマンド操作 3-39

Page 82: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

文のトレース

例例例例 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 Net8 to client256 bytes received via Net8 from client3 Net8 roundtrips to/from client2 sort (memory)0 sort (disk)14 rows processed

このオプションは、大きい問合せをチューニングしていて、問合せレポートを表示しない場合に便利です。

例例例例 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

この実行計画は、行 1でアクセスされている表がデータベース・リンクMY_LINK.DB_DOMAINを経由していることを示しています。

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

Page 83: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

文のトレース

パラレル問合せおよび分散問合せのトレースパラレル問合せおよび分散問合せのトレースパラレル問合せおよび分散問合せのトレースパラレル問合せおよび分散問合せのトレースパラレル問合せまたは分散問合せの中で文をトレースする場合、実行計画には、コストに基づいたオプティマイザの行数見積り(カーディナリティ)が表示されます。一般に、各ノードでのコスト、カーディナリティおよびバイト数は、累積結果を表しています。たとえば、結合ノードのコストは結合操作を実行するためのコストのみを考慮したものではなく、その結合でリレーションにアクセスするコスト全体を含んでいます。

アスタリスクが付いた行は、パラレル操作またはリモート操作を表しています。それぞれの操作は、レポートの 2番目の部分で説明されています。パラレル操作および分散操作の詳細は、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

このレポートの 2番目のセクションは、次の順序で表示される 3つの列で構成されます。

列の書式は、COLUMNコマンドで変更できます。デフォルトの書式は、サイト・プロファイル(たとえば、glogin.sql)で定義されています。

例例例例 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.

列名列名列名列名 説明説明説明説明

ID_PLUS_EXP それぞれの実行ステップの行番号を表示します。

OTHER_TAG_PLUS_EXP OTHER_PLUS_EXP列内の SQL文の機能を説明します。

OTHER_PLUS_EXP Parallel Serverまたはリモート・データベースについての問合せのテキストを示します。

注意注意注意注意 : このレポートの 2番目のセクションを表示するには、Oracle7リリース 7.3以上を使用する必要があります。

コマンド操作 3-41

Page 84: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

文のトレース

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;

問合せ結果は、次のように出力されます。

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

この実行計画の行 0は、コストに基づいたオプティマイザの見積りでは、行数が 263で 5786バイトであることを示しています。この文の合計コストは 1です。

行 2、3および 4には、パラレル操作であることを示す *が付いています。たとえば、行 2の NESTED LOOPSステップは、PARALLEL_TO_SERIAL操作です。PARALLEL_TO_SERIAL操作では、出力を順次に生成するために SQL文が実行されます。また、行 2はパラレル問合せサーバーの識別子が Q8200であったことも示しています。

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

Page 85: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

問合せ結果の書式の

4

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

この章では、最終的なレポートを生成するために問合せ結果の書式を設定する方法について説明します。この章では、次のトピックについて説明します。

� 列の書式設定

� 間隔の設定およびサマリー行によるレポートの明確化

� ページおよびレポートのタイトルとサイズの定義

� 問合せ結果の格納および印刷

� Webレポートの作成

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

設定 4-1

Page 86: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

列の書式設定

列の書式設定列の書式設定列の書式設定列の書式設定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';

問合せ結果は、次のように出力されます。

Department Employee Salary Commission---------- ---------- ---------- ---------- 30 ALLEN 1600 300 30 WARD 1250 500 30 MARTIN 1250 1400 30 TURNER 1500 0

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

Page 87: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

列の書式設定

列ヘッダーを複数の単語に変更するには、COLUMNコマンドを入力するときに、新しいヘッダーを一重引用符または二重引用符で囲みます。列ヘッダーを複数行に表示するには、新しい行を開始する位置に垂直バー(|)を使用します。(SETコマンドのHEADSEP変数の設定を変更すると、垂直バー以外の文字を使用できます。詳細は、第 8章の「SET」コマンドを参照してください。)

例例例例 4-2 列ヘッダーの分割列ヘッダーの分割列ヘッダーの分割列ヘッダーの分割

列 ENAMEに EMPLOYEE NAMEというヘッダーを付け、新しいヘッダーを 2行に分割するには、次のように入力します。

SQL> COLUMN ENAME HEADING ’Employee|Name’

この時点で、次のように /(スラッシュ)コマンドで問合せを再実行します。

SQL> /

問合せ結果は、次のように出力されます。

EmployeeDepartment Name Salary Commission---------- ---------- ---------- ---------- 30 ALLEN 1600 300 30 WARD 1250 500 30 MARTIN 1250 1400 30 TURNER 1500 0

それぞれの列のヘッダーに下線を付けるために使用する文字を変更するには、使用する文字を SETコマンドの UNDERLINE変数に設定します。

例例例例 4-3 下線文字の設定下線文字の設定下線文字の設定下線文字の設定

ヘッダーに下線を付けるために使用する文字を等号に変更し、問合せを再実行するには、次のコマンドを入力します。

SQL> SET UNDERLINE =SQL> /

注意注意注意注意 : 新しいヘッダーは、別のヘッダーを入力するか、列の書式をリセットするか、または SQL*Plusを終了するまで有効です。

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

Page 88: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

列の書式設定

問合せ結果は、次のように出力されます。

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の値より大きい数値は、許容される最大文字数まで切り上げられるか、または切り捨てられます。

COLUMNコマンドで書式モデルを使用することによって、NUMBER列に別の書式を選択できます。書式モデルとは、列の中に数値を表示する方法を表したもので、複数の 9を使用して数字の桁を表します。

注意注意注意注意 : ダッシュは、引用符で囲んでください。そうしないと、ダッシュは、次の行へコマンドを継続することを示すハイフンとして解釈されます。

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

Page 89: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

列の書式設定

デフォルト表示の変更デフォルト表示の変更デフォルト表示の変更デフォルト表示の変更COLUMNコマンドを使用すると、次に示すとおり、書式を設定する列および使用するモデルを指定することができます。

COLUMN column_name FORMAT model

列の中の数値にカンマ、ドル記号、山カッコ(負の値を囲む)、または先行ゼロを追加するには、書式モデルを使用します。値を一定の小数桁数まで丸めたり、負の値の右側(左側でなく)にマイナス記号を表示したり、指数表記で値を表示することもできます。

単一の列に複数の書式モデルを使用するには、使用するモデルを結合して 1つの COLUMNコマンドにします(例 4-4を参照)。書式モデルのすべてのリストおよび詳細は、第 8章の「COLUMN」コマンドを参照してください。

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

SALの表示にドル記号やカンマを使用し、ゼロ値に空白ではなく数字のゼロを表示するには、次のコマンドを入力します。

SQL> COLUMN SAL FORMAT $99,990

この時点で、現行の問合せを再実行します。

SQL> /

問合せ結果は、次のように出力されます。

EmployeeDepartment Name Salary Commission---------- ---------- --------- ---------- 30 ALLEN $1,600 300 30 WARD $1,250 500 30 MARTIN $1,250 1400 30 TURNER $1,500 0

ドル記号などの他の書式を使用しているときに、ゼロ値に空白ではなくゼロを表示する場合は、前述のように書式モデル内でゼロを使用してください。

注意注意注意注意 : 書式モデルは、新しい書式モデルを入力するか、COLUMN colname CLEARで列の書式をリセットするか、または SQL*Plusを終了するまで有効です。

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

Page 90: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

列の書式設定

データ型の書式設定データ型の書式設定データ型の書式設定データ型の書式設定データ型を表示する場合は、SQL*Plusのデフォルトの表示幅を使用するか、またはCOLUMNコマンドを使用してデフォルトの表示幅を変更できます。このマニュアルでは、データ型に次の変数が含まれます。

� CHAR

� NCHAR

� VARCHAR2(VARCHAR)

� NVARCHAR2(NCHAR VARYING)

� DATE

� LONG

� CLOB

� NCLOB

デフォルトの表示デフォルトの表示デフォルトの表示デフォルトの表示データ型列のデフォルトの幅は、データベース内の列の幅です。

SQL*Plusでは書式が設定されていない DATE列のデフォルトの幅および書式は、NLSパラメータで設定します。それ以外の場合、デフォルトの書式の幅は A9です。DATE列の書式の詳細は、第 8章の「COLUMN」コマンドの FORMAT句を参照してください。

デフォルト表示の変更デフォルト表示の変更デフォルト表示の変更デフォルト表示の変更データ型または DATEの表示幅は、COLUMNコマンドと、文字 A(英数字の場合)の後に列幅を表した数値を続けた書式モデルを使用することによって変更できます。

COLUMNコマンドの中で、書式を設定する列および使用するモデルを次のように指定します。

COLUMN column_name FORMAT model

注意注意注意注意 : NCHAR、NVARCHAR2(NCHAR VARYING)、CLOBおよびNCLOBの各データ型を使用するには、Oracle8以上が必要です。

注意注意注意注意 : データ型のデフォルトの文字位置は、左揃えです。

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

Page 91: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

列の書式設定

列ヘッダーより短い幅を指定した場合は、ヘッダーが切り捨てられます。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

SETコマンドのWRAP変数をON(デフォルト値)に設定した場合、従業員名は例 4-5に示すとおり、4文字目の後で次の行へ折り返されます。WRAPを OFFに設定した場合、名前は 4文字目の後で切り捨てられます。

システム変数WRAPは、すべての列を制御します。ある列についてのWRAPの設定は、COLUMNコマンドのWRAPPED、WORD_WRAPPEDおよび TRUNCATED句を指定することによって上書きできます。これらの句の詳細は、第 8章の「COLUMN」コマンドを参照してください。この章の後半で COLUMNコマンドのWORD_WRAPPEDを使用します。

注意注意注意注意 : 書式モデルは、新しい書式モデルを入力するか、COLUMN colname CLEARで列の書式をリセットするか、または SQL*Plusを終了するまで有効です。

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

Page 92: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

列の書式設定

この時点で、次のように列を元の書式に戻します。

SQL> COLUMN ENAME FORMAT A10

列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー複数の列に同じ表示属性を設定する場合は、COLUMNコマンドの LIKE句を使用すると、入力するコマンドを減らすことができます。LIKE句は、前に定義した列の表示属性を新しい列にコピーするよう SQL*Plusに指示します。ただし、同じコマンドの別の句によって加えられた変更はコピーされません。

例例例例 4-6 列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー

列 COMMに、SALに指定した表示属性と同じ表示属性を指定し、別のヘッダーを指定するには、次のコマンドを入力します。

SQL> COLUMN COMM LIKE SAL HEADING Bonus

次のように問合せを再実行します。

SQL> /

問合せ結果は、次のように出力されます。

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

注意注意注意注意 : 列のヘッダーは、WRAPの設定、またはどの COLUMNコマンド句の設定にも関係なく切り捨てられます。

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

Page 93: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

列の書式設定

列の表示属性のリスト表示およびリセット列の表示属性のリスト表示およびリセット列の表示属性のリスト表示およびリセット列の表示属性のリスト表示およびリセットある列の現行の表示属性をリスト表示するには、次に示すとおり、COLUMNコマンドとその後に列名のみを指定します。

COLUMN column_name

すべての列の現行の表示属性をリスト表示するには、次に示すとおり、後ろに列名または句を指定せずに COLUMNコマンドを入力します。

COLUMN

列の表示属性をデフォルト値にリセットするには、次に示すとおり、COLUMNコマンドにCLEAR句を指定します。

COLUMN column_name CLEAR

すべての列の属性をリセットするには、CLEARコマンドに COLUMNS句を指定します。

例例例例 4-7 列の表示属性をデフォルトにリセットする方法列の表示属性をデフォルトにリセットする方法列の表示属性をデフォルトにリセットする方法列の表示属性をデフォルトにリセットする方法

すべての列の表示属性をデフォルトにリセットするには、次のコマンドを入力します。

SQL> CLEAR COLUMNScolumns cleared

列の表示属性の抑止および復元列の表示属性の抑止および復元列の表示属性の抑止および復元列の表示属性の抑止および復元特定の列に指定した表示属性の抑止および復元ができます。列の表示属性を抑止するには、次の形式で COLUMNコマンドを入力します。

COLUMN column_name OFF

OFF句は、列にデフォルトの表示属性を使用するよう SQL*Plusに指示しますが、COLUMNコマンドで定義された属性は削除しません。COLUMNコマンドで定義した属性を復元するには、次のように ON句を使用します。

COLUMN column_name ON

折り返した列の値の後で文字の行を出力する方法折り返した列の値の後で文字の行を出力する方法折り返した列の値の後で文字の行を出力する方法折り返した列の値の後で文字の行を出力する方法前述のとおり、SQL*Plusのデフォルトでは、列の値が列幅に収まらない場合、その値は追加行に折り返されます。折り返された出力行の後(または各行の後)にレコード・セパレータ(文字または空白で構成される 1行)を挿入する場合、SETコマンドの RECSEPおよびRECSEPCHAR変数を使用します。

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

Page 94: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

列の書式設定

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 ’-’

この時点で、次のように列 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

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

Page 95: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

間隔の設定およびサマリー行によるレポートの明確化間隔の設定およびサマリー行によるレポートの明確化間隔の設定およびサマリー行によるレポートの明確化間隔の設定およびサマリー行によるレポートの明確化SQLの SELECTコマンドで ORDER BY句を使用すると、指定した列(または式)に同じ値がある行は、同じ値ごとにまとめて表示されます。SQL*Plusの BREAKおよび COMPUTEコマンドを使用して、レコードのサブセットを作成し、各サブセットの後に空白またはサマリー行(あるいはその両方)を追加することによって、出力をユーザーにとってより実用的なものにできます。

COMPUTEコマンドの関数は、COMPUTEコマンド内の順序にかかわらず、常に AVG、COUNT、MINIMUM、MAXIMUM、NUMBER、SUM、STD、VARIANCEの順序で実行されます。

BREAKコマンドの中で指定する列は、ブレーク列と呼ばれます。ORDER BY句にブレーク列を挿入することによって、出力に意味のあるレコードのサブセットを作成できます。その後、同じ BREAKコマンドの中でサブセットに書式設定を追加でき、COMPUTEコマンドの中でブレーク列を指定することによって(合計、平均などを含んだ)サマリー行を追加できます。

たとえば、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

9 rows selected.

このレポートをさらに使用しやすくするには、BREAKを使用して DEPTNOをブレーク列として設定します。BREAKを使用すると、DEPTNO値の重複を抑止し、部門が変わるときに空白行を入力したり改ページすることができます。BREAKを COMPUTEと組み合せて使用し、各部門およびすべての部門について給与の合計(または、平均、最大、最小、標準偏差、平方偏差、行数)を含むサマリー行を計算して出力することもできます。

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

Page 96: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止BREAKコマンドは、指定された列または式の値の重複をデフォルトで抑止します。したがって、ORDER BY句で指定した列の値の重複を抑止するには、次のように BREAKコマンドを最も単純な形式で使用します。

BREAK ON break_column

例例例例 4-9 ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止ブレーク列内の値の重複の抑止

前述の問合せ結果で重複した部門番号を表示しないようにするには、次のコマンドを入力します。

SQL> BREAK ON DEPTNOSQL> SELECT DEPTNO, ENAME, SAL 2 FROM EMP 3 WHERE SAL < 2500 4 ORDER BY DEPTNO;

問合せ結果は、次のように出力されます。

DEPTNO ENAME SAL---------- ----------- --------- 10 CLARK 2450 MILLER 1300 20 SMITH 800 ADAMS 1100 30 ALLEN 1600 JAMES 950 TURNER 1500 WARD 1250 MARTIN 1250

9 rows selected.

注意注意注意注意 : BREAKコマンドに列または式を指定する場合は、必ず、その列または式を指定した ORDER BY句を使用してください。ORDER BY句を使用しなかった場合は、列の値を変更するたびにブレークが発生します。

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

Page 97: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

ブレーク列の値が変更されたときの空白の挿入ブレーク列の値が変更されたときの空白の挿入ブレーク列の値が変更されたときの空白の挿入ブレーク列の値が変更されたときの空白の挿入ブレーク列の中で値が変更されるたびに、空白行を挿入するか、または改ページすることができます。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> /

問合せ結果は、次のように出力されます。

DEPTNO ENAME SAL---------- ----------- --------- 10 CLARK 2450 MILLER 1300

20 SMITH 800 ADAMS 1100

30 ALLEN 1600 JAMES 950 TURNER 1500 WARD 1250 MARTIN 1250

9 rows selected.

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

Page 98: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

各行の後に空白を挿入する方法各行の後に空白を挿入する方法各行の後に空白を挿入する方法各行の後に空白を挿入する方法各行の後に空白行または空白ページを挿入することもできます。各行の後で n行ずつスキップするには、次の形式で BREAKコマンドを使用します。

BREAK ON ROW SKIP n

各行の後で 1ページずつスキップするには、次の形式で BREAKコマンドを使用します。

BREAK ON ROW SKIP PAGE

複数の間隔設定技法の使用方法複数の間隔設定技法の使用方法複数の間隔設定技法の使用方法複数の間隔設定技法の使用方法たとえば、ORDER BY句に複数の列があり、それぞれの列の値が変更されたときに空白を挿入するとします。BREAKコマンドは、入力するたびに前の BREAKコマンドと置き換えられます。したがって、1つのレポート内で様々な間隔設定技法を使用する場合、または順序付きの複数の列で値が変更されたときに空白を挿入する場合は、単一の BREAKコマンドに複数の列およびアクションを設定する必要があります。

例例例例 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

注意注意注意注意 : SKIP PAGEを指定しても、NEWPAGE 0を指定しなければ、物理的な改ページは行われません。

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

Page 99: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

次のように新規問合せを実行し、結果を表示します。

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

9 rows selected.

ブレーク定義のリスト表示および取消しブレーク定義のリスト表示および取消しブレーク定義のリスト表示および取消しブレーク定義のリスト表示および取消し上部タイトルの定義を変更しないで、その表示を抑止するには、継続する前に次のように入力します。

SQL> TTITLE OFF

句を指定せずに BREAKコマンドを入力すると、現行のブレーク定義をリスト表示できます。

BREAK

CLEARコマンドに BREAKS句を指定して入力すると、現行のブレーク定義を取り消すことができます。

CLEAR BREAKS

すべてのコマンド・ファイルの先頭に CLEAR BREAKSコマンドを指定することによって、あるファイル内で実行する問合せに、前回の BREAKコマンドが影響しないようにすることができます。

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

Page 100: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

ブレーク列の値が変更されたときにサマリー行を計算する方法ブレーク列の値が変更されたときにサマリー行を計算する方法ブレーク列の値が変更されたときにサマリー行を計算する方法ブレーク列の値が変更されたときにサマリー行を計算する方法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列および(場合によっては)すべてのタイプの列に対して実行できます。COMPUTEコマンドの詳細は、第 8章「コマンド・リファレンス」を参照してください。

次の表に、COMPUTE関数およびその機能を示します。

表表表表 4-1 COMPUTE関数関数関数関数

関数関数関数関数 機能機能機能機能

SUM 列内の値の合計を計算する

MINIMUM 列内の最小値を計算する

MAXIMUM 列内の最大値を計算する

AVG 列内の値の平均を計算する

STD 列内の値の標準偏差を計算する

VARIANCE 列内の値の平方偏差を計算する

COUNT 列内の値の NULL以外の値の数を計算する

NUMBER 列内の行数を計算する

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

Page 101: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

COMPUTEコマンドの中で指定した関数は、OFの後および 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

この時点で、次の COMPUTEコマンドを入力し、現行の問合せを実行します。

SQL> COMPUTE SUM OF SAL ON DEPTNOSQL> /

問合せ結果は、次のように出力されます。

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

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

Page 102: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

DEPTNO JOB ENAME SAL---------- --------- ---------- ---------- 30 CLERK JAMES 950

SALESMAN ALLEN 1600 TURNER 1500 WARD 1250 MARTIN 1250********** ********* ----------sum 65509 rows selected.

部門 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;

問合せ結果は、次のように出力されます。

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 ---------- 108758 rows selected.

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

Page 103: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

レポートの終わりで給与を計算するには、次のようにします。

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;

問合せ結果は、次のように出力されます。

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

8 rows selected.

レポートの終わりでのサマリー行の計算レポートの終わりでのサマリー行の計算レポートの終わりでのサマリー行の計算レポートの終わりでのサマリー行の計算BREAKコマンドおよび COMPUTEコマンドを次の形式で使用すると、列内のすべての値に基づいてサマリー行を計算し出力できます。

BREAK ON REPORTCOMPUTE function LABEL label_name OF column column column... ON REPORT

例例例例 4-13 総合計の計算および出力総合計の計算および出力総合計の計算および出力総合計の計算および出力

すべての販売担当者の給与の総合計を計算して出力し、計算ラベルを変更するには、最初に、次のように BREAKコマンドと COMPUTEコマンドを入力します。

注意注意注意注意 : SAL列の書式は、個々の SAL値のみでなく、SALの合計を表示する際にも影響します。NUMBER列の書式を設定する際に、レポートに挿入する合計欄のサイズも考慮する必要があります。

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

Page 104: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

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

総合計(または、総平均、総最大値など)を小計(または小平均など)とともに出力するには、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

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

Page 105: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

間隔の設定およびサマリー行によるレポートの明確化

最後に、修正した問合せを次のように実行し、結果を表示します。

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

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********** ----------

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

Page 106: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

avg 1566.6667sum 9400

6 rows selected.

COMPUTE定義のリスト表示および取消し定義のリスト表示および取消し定義のリスト表示および取消し定義のリスト表示および取消し次のように、句を指定せずに COMPUTEコマンドを入力すると、現行の COMPUTE定義をリスト表示できます。

COMPUTE

例例例例 4-16 COMPUTE定義の取消し定義の取消し定義の取消し定義の取消し

すべての COMPUTE定義、およびそれに伴った BREAK定義を取り消すには、次のコマンドを入力します。

SQL> CLEAR BREAKSbreaks clearedSQL> CLEAR COMPUTEScomputes cleared

すべてのコマンド・ファイルの先頭に CLEAR BREAKコマンドおよび CLEAR COMPUTESコマンドを指定することによって、前に入力した BREAKコマンドおよび COMPUTEコマンドが、あるファイル内で実行する問合せに影響しないようにすることができます。

ページおよびレポートのタイトルとサイズの定義ページおよびレポートのタイトルとサイズの定義ページおよびレポートのタイトルとサイズの定義ページおよびレポートのタイトルとサイズの定義ページとは、表示される 1画面全体の情報、またはスプールされる(印刷される)レポートの 1ページを指します。各ページの上部タイトルおよび下部タイトルの配置、1ページあたりの行数の設定、各行の幅の設定ができます。

レポートとは、問合せの結果全体を指します。それぞれのレポートにヘッダーおよびフッターを配置し、それらの書式をページの上部タイトルおよび下部タイトルと同じ方法で設定できます。

上部タイトルと下部タイトルおよびヘッダーとフッターの設定上部タイトルと下部タイトルおよびヘッダーとフッターの設定上部タイトルと下部タイトルおよびヘッダーとフッターの設定上部タイトルと下部タイトルおよびヘッダーとフッターの設定前述のとおり、レポートの各ページの一番上に表示するタイトルを設定できます。また、各ページの下に表示するタイトルも設定できます。TTITLEコマンドは上部タイトルを定義し、BTITLEコマンドは下部タイトルを定義します。

それぞれのレポートにヘッダーおよびフッターを設定することもできます。REPHEADERコマンドはレポート・ヘッダーを定義、REPFOOTERコマンドはレポート・フッターを定義します。

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

Page 107: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

TTITLE、BTITLE、REPHEADERまたは REPFOOTERコマンドは、コマンド名の後に、位置または書式を指定する 1つ以上の句を指定し、その後に、その位置に指定する CHAR値またはその書式を設定する 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句の詳細は、第 8章の「TTITLE」コマンドおよび「REPHEADER」コマンドを参照してください。

例例例例 4-17 ページの上部タイトルおよび下部タイトルの配置ページの上部タイトルおよび下部タイトルの配置ページの上部タイトルおよび下部タイトルの配置ページの上部タイトルおよび下部タイトルの配置

レポートの各ページの一番上および一番下にタイトルを挿入するには、次のように入力します。

SQL> TTITLE CENTER -> ’ACME WIDGET SALES DEPARTMENT PERSONNEL REPORT’SQL> BTITLE CENTER ’COMPANY CONFIDENTIAL’

この時点で、次のように現行の問合せを実行します。

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

6 rows selected.

例例例例 4-18 レポートのヘッダーの配置レポートのヘッダーの配置レポートのヘッダーの配置レポートのヘッダーの配置

個々のページにレポート・ヘッダーを中央揃えで配置するには、次のように入力します。

SQL> REPHEADER PAGE CENTER ’ACME WIDGET’

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

Page 108: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

この時点で、次のように現行の問合せを実行します。

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

6 rows selected.

レポート・ヘッダーの定義を変更せずにその出力を抑止するには、次のように入力します。

SQL> REPHEADER OFF

タイトル要素の位置決定タイトル要素の位置決定タイトル要素の位置決定タイトル要素の位置決定前述の例に示したレポートは、会社名をさらに強調し、別の行の両端にレポートの種類および部門名を配置するとさらに体裁が良くなります。また、行サイズを減らして、タイトルをデータの近くに中央揃えに配置するのも良い方法です。

これらの変更を加えるには、次の例に示すとおり TTITLEコマンドにいくつかの句を追加し、システム変数 LINESIZEを再設定します。

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

Page 109: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

レポートのヘッダーおよびフッターは、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

6 rows selected.

LEFT、RIGHTおよび CENTER句は、後続の値を行の始め、終わりおよび中央に配置します。SKIP句は、1行以上、下へ移動するよう SQL*Plusに指示します。

結果の最後の行と下部タイトルの間に空白がなくなっていることに注意してください。下部タイトルの最終行は、ページの最終行に表示されます。レポートの最終行から下部タイトルまでの空白の量は、ページ全体のサイズ、上部タイトルが占める行数、そのページ内の行数によって決まります。前述の例では、上部タイトルは、その前の例で示した上部タイトルより 3行多く行数をとります。1ページあたりの行数の設定方法は、この章の後半で説明します。

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

Page 110: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

下部タイトルの前に 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

6 rows selected.

長いタイトルの入力長いタイトルの入力長いタイトルの入力長いタイトルの入力長さが 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...’

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

Page 111: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

その後、次のように 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> /

問合せ結果は、次のように出力されます。

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

6 rows selected.

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

Page 112: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

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

6 rows selected.

ページ・タイトル定義のリスト表示、抑止、復元ページ・タイトル定義のリスト表示、抑止、復元ページ・タイトル定義のリスト表示、抑止、復元ページ・タイトル定義のリスト表示、抑止、復元ページ・タイトルの定義をリスト表示するには、句を指定せずに該当するタイトル・コマンドを入力します。

TTITLEBTITLE

タイトル定義を抑止するには、次のように入力します。

TTITLE OFFBTITLE OFF

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

Page 113: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

これらのコマンドを実行すると、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に指示します。

次に、ページ・タイトルにラベルおよび値を挿入し、適正な 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;

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

Page 114: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

問合せ結果は、次のように出力されます。

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

8 rows selected.

ページの一番下に列の値を出力する場合は、COLUMNコマンドを次の形式で使用します。

COLUMN column_name OLD_VALUE variable_name

SQL*Plusは、マスター列の新しい値を検出した後、新しいページにブレークするプロセスの一部として下部タイトルを出力します。したがって、単にマスター列の NEW_VALUEを参照した場合、次のディテール・セットの値が得られます。OLD_VALUEには、改ページが開始される前に有効であったマスター列の値が記録されます。

タイトル内に現在の日付を表示する方法タイトル内に現在の日付を表示する方法タイトル内に現在の日付を表示する方法タイトル内に現在の日付を表示する方法タイトルに値を入力するのみで、レポートに日付を付けることができます。その場限りのレポートならこの方法でも十分ですが、同じレポートを繰り返し実行する場合は、レポートの実行時に日付が自動的に付くようにした方が便利です。そのためには、現在の日付を保持する変数を作成します。

変数(この例では _DATE)を作成するには、SQL*Plusの LOGINファイルに次のコマンドを追加します。

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

Page 115: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

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

これらの設定は、ご使用のコンピュータ画面のサイズ、または印刷の場合は用紙サイズに合うように変更できます。

ページの長さはシステム変数 PAGESIZEを使用して変更できます。たとえば、印刷するページは、一般に長さが 66行であるため、レポートの印刷時にページの長さを変更してもかまいません。

各ページの始めから上部タイトルまでの行数を設定するには、SETコマンドの NEWPAGE変数を使用します。

SET NEWPAGE number_of_lines

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

Page 116: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

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

この時点で、次のコマンドを入力して実行し、結果を表示します。

SQL> TTITLE CENTER ’ACME WIDGET PERSONNEL REPORT’ SKIP 1 -> CENTER '10-JAN-99' 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;

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

Page 117: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ページおよびレポートのタイトルとサイズの定義

改ページ後、問合せ結果が次のように表示されます。

ACME WIDGET PERSONNEL REPORT 10-JAN-99

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

14 rows selected.

この時点で、次のように PAGESIZE、NEWPAGEおよび LINESIZEをデフォルト値にリセットします。

SQL> SET PAGESIZE 24SQL> SET NEWPAGE 1SQL> SET LINESIZE 80

これらの変数の現在の設定値をリスト表示するには、次のように SHOWコマンドを使用します。

SQL> SHOW PAGESIZEpagesize 24SQL> SHOW NEWPAGEnewpage 1SQL> SHOW LINESIZElinesize 80

SQL*Plusコマンドの SPOOLを使用して、問合せ結果をファイルに格納したり、ご使用のコンピュータのデフォルト・プリンタで印刷することができます。

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

Page 118: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

問合せ結果の格納および印刷

問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果の格納および印刷問合せ結果を、印刷する前にワード・プロセッサで編集したり、書状、メモまたはその他の文書に挿入する場合は、問合せ結果をファイルに格納します。

問合せ結果を画面に表示したままファイルに格納するには、次の形式で SPOOLコマンドを入力します。

SPOOL file_name

ファイル名の後にピリオドおよび拡張子を指定しなかった場合、SPOOLはそのファイルを出力ファイルとして認識するため、ファイル名にデフォルトのファイル拡張子を追加します。このデフォルトは、オペレーティング・システムによって異なりますが、ほとんどのホストでは LSTまたは LISです。詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

次のように SPOOLコマンドを入力してスプーリングを OFFにするまで、SQL*Plusは情報をスプールし続けます。

SPOOL OFF

フラット・ファイルの作成フラット・ファイルの作成フラット・ファイルの作成フラット・ファイルの作成異なるソフトウェア・プロダクト間でデータを移動するときには、フラット・ファイル(エスケープ文字、ヘッダーまたは余分な埋込み文字を含まないオペレーティング・システム・ファイル)を使用する必要がある場合があります。たとえば、Net8を持っていない場合、Oracle7から Oracle8へデータを移動するには、SQL*Loaderで使用できるようにフラット・ファイルを作成する必要があります。

SQL*Plusでフラット・ファイルを作成するには、最初に次の SETコマンドを入力します。

SET NEWPAGE 0SET SPACE 0SET LINESIZE 80SET PAGESIZE 0SET ECHO OFFSET FEEDBACK OFFSET HEADING OFFSET MARKUP HTML OFF SPOOL OFF

これらのコマンドを入力した後、前述のような SPOOLコマンドを使用してフラット・ファイルを作成します。

SET COLSEPコマンドは、列に線を付けるときに便利です。詳細は、第 8章の「SET」コマンドを参照してください。

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

Page 119: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

問合せ結果の格納および印刷

ファイルへの結果の格納ファイルへの結果の格納ファイルへの結果の格納ファイルへの結果の格納問合せ結果を画面に表示したままファイルに格納するには、次の形式で SPOOLコマンドを入力します。

SPOOL file_name

SPOOLコマンドを入力した後に画面に表示されていたすべての情報が、指定したファイルに格納されます。

プリンタへの結果の出力プリンタへの結果の出力プリンタへの結果の出力プリンタへの結果の出力問合せ結果を印刷するには、前述のようにして結果をファイルにスプールします。その後、SPOOL OFFではなく、次のようにコマンドを入力します。

SPOOL OUT

SQL*Plusはスプールを停止し、スプールされたファイルの内容をご使用のホスト・コンピュータの標準(デフォルト)プリンタにコピーします。SPOOL OUTでは、スプール・ファイルは印刷後に削除されません。

例例例例 4-25 プリンタへの問合せ結果の出力プリンタへの問合せ結果の出力プリンタへの問合せ結果の出力プリンタへの問合せ結果の出力

最終レポートを生成し、結果をスプールして印刷するには、次のコマンドを含む、EMPRPTという名前のコマンド・ファイルを作成します。

最初に EDITを使用して、ご使用のホスト・オペレーティング・システムのテキスト・エディタでコマンド・ファイルを作成します。(INPUTおよび SAVEを使用しないでください。これらを使用すると、SQL*Plusはファイルの終わりにスラッシュを追加し、コマンド・ファイルを 2回実行します。1回はセミコロンの結果として実行され、1回はスラッシュによって実行されます。)

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

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

Page 120: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

問合せ結果の格納および印刷

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

画面には、次のように出力されます(TERMOUTを OFFに設定した場合を除く)。これらは、ファイル TEMPにスプールされ、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

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

Page 121: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

問合せ結果の格納および印刷

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

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

Page 122: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

Webレポートの作成レポートの作成レポートの作成レポートの作成SQL*Plusでは、スタンドアロンのWebページ、またはWebページに埋込み可能な HTML出力のいずれも生成できます。SQLPLUS -MARKUP HTML ONまたは SET MARKUP HTML ON SPOOL ONを使用して、スタンドアロンのWebページを生成できます。SQL*Plusは、<HTML>タグおよび <BODY>タグで自動的にカプセル化された、完全なHTMLページを生成します。

コンテンツは、SQL*Plusでの出力と同じようにWebブラウザでも表示されるように、HTML <PRE>タグに出力できますが、デフォルトでは HTML表に書き込まれます。これらのコマンドの詳細は、第 7章の「SQLPLUSコマンドでの SQL*Plusの起動」の SQLPLUS -MARKUPコマンドおよび第 8章の「SET」の SET MARKUPコマンドを参照してください。

SQLPLUS -MARKUP HTML ONは、SQL*Plusをプログラム・スクリプトに埋め込む場合に役立ちます。起動すると、コマンドを実行する前に、HTMLタグおよび BODYタグが出力されます。その後の出力は、SQL*Plusを終了するまで、すべて HTMLになります。-SILENTおよび -RESTRICTコマンドライン・オプションは、-MARKUPと組み合せて使用し、SQL*Plusプロンプトおよびバナー情報を表示しないようにしたり、一部のコマンドの使用を制限する場合に有効です。

SET MARKUP HTML ON SPOOL ONは、その後スプールされた各ファイルに対して、完全な HTMLページを生成します。スプール・ファイルの HTMLタグは、SPOOL OFFが実行されるか、または SQL*Plusを終了した場合にクローズします。

SET MARKUP HTML ON SPOOL OFFを使用して、既存のWebページに埋込み可能なHTML出力を生成できます。この方法で生成されたHTML出力には、<HTML>タグや<BODY>タグは含まれません。

対話型での対話型での対話型での対話型での Webレポートの作成レポートの作成レポートの作成レポートの作成SET MARKUPコマンドを SQL*Plusセッションで対話的に使用し、スプール・ファイルにHTMLで書き出します。出力結果はWebブラウザで表示できます。

SET MARKUPは、SQL*Plusの出力を HTML形式にコード化することを指定するのみで、出力ファイルを作成したり、ファイルへの書出しを開始するわけではありません。HTML出力のスプーリングを可能にするには、SET MARKUP HTML ON SPOOL ONを使用する必要があります。その後、SQL*Plusの SPOOLコマンドを使用して、スプール・ファイルの作成、ファイル名の指定および HTML出力の書出しを開始します。

HTMLファイルを作成する場合は、HTMLファイルの標準拡張子である .htmlを指定します。これによって、出力ファイルの種類を簡単に識別でき、また、Webブラウザが HTMLファイルを認識し、正しく表示することができます。拡張子を指定しないと、SQL*Plusのデフォルトのファイル拡張子 .lstが使用されます。

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

Page 123: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

HTMLの終了タグをスプール・ファイルに追加してファイルをクローズするには、SPOOL OFFまたは EXITを使用します。SPOOL filenameコマンドをもう 1つ指定すると、SPOOL OFFまたは EXITについては、現行のスプール・ファイルがクローズされ、別の HTMLスプール・ファイルが、指定した名前で新規に作成されます。

SET MARKUPコマンドを使用すると、必要に応じて HTML出力を ONまたは OFFにできます。

例例例例 4-26 対話型セッションでのスタンドアロン対話型セッションでのスタンドアロン対話型セッションでのスタンドアロン対話型セッションでのスタンドアロンWebレポートの作成レポートの作成レポートの作成レポートの作成

SET MARKUPコマンドを使用して、HTMLレポートを SQL*Plusの対話型セッションで作成することができます。HTMLの <HEAD>タグには、埋込み型のスタイル・シートまたはその他の有効なテキストを挿入できます。SQL*Plusのセッションをオープンし、次のように入力します。

SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP ON -HEAD '<TITLE>Department Report</TITLE> -<STYLE type="text/css"> -<!-- BODY {background: yellow} --> -</STYLE>’ -BODY 'TEXT="#FF00FF"' -TABLE 'WIDTH="50%" BORDER="5"'

列の出力を制御するには、COLUMNコマンドを使用します。次の COLUMNコマンドは、SQL問合せの出力に対して、新規に見出しを作成します。1つ目のコマンドでは、見出しの作成とともに、DNAME列に対するエンティティへのマッピングを OFFにして、HTMLのハイパーリンクを出力データのこの列に正しく作成します。

COLUMN DNAME HEADING "Department" ENTMAP OFFCOLUMN LOC HEADING "Location"

SET MARKUP HTML ON SPOOL ONを使用すると、SQL*Plusでスプール・ファイルにHTMLを書き出すことができます。次の SPOOLコマンドは、指定したファイルへの<HTML>および <BODY>タグの書込みをトリガーします。

SPOOL report.html

SPOOLコマンドの後に入力された文字や標準出力に表示された文字も、スプール・ファイル report.htmlに書き出されます。

次のように SQL問合せを入力します。

SELECT '<A HREF="http://oracle.com/'||DNAME||'.html">'||DNAME||'</A>'DNAME, LOCFROM DEPTORDER BY DEPTNO;

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

Page 124: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

SPOOL OFFコマンドを入力します。

SPOOL OFF

スプール・ファイル report.htmlをクローズする前に、</BODY>および </HTML>タグが追加されます。

report.sqlの出力ファイルは、report.htmlです。このファイルは、Webブラウザにロード可能なスタンドアロンのWebページです。ご使用のWebブラウザで report.htmlをオープンします。次のように表示されます。

前述の例の SQL*Plusコマンドを使用する場合は、次のことに注意してください。

� 長い SQL*Plusコマンドで行を継続するには、ハイフンを使用します。

� 表のWIDTH属性および BORDER属性の設定には、TABLEオプションを使用します。

� DNAME列に ENTMAP OFFを設定し、HTMLハイパーリンクを正しく構成するには、COLUMNコマンドを使用します。これによって、引用符や山カッコなどの HTML特殊文字が、同等のエンティティ &quot;、&amp;、&lt;および &gt;に置き換えられることはありません。

� 文字列および変数要素を連結してハイパーリンクを作成するには、SELECT文で引用符および連結文字を使用します。

Webブラウザまたはテキスト・エディタで report.htmlソースを表示すると、次のように、Department列の表セルにハイパーリンクが設定されていることがわかります。

<html><head><title>Department Report</title> <STYLE type="text/css"> <!-- BODY {background: yellow} --> </STYLE> <META Name="generator" content="SQL*Plus 8.1.7"></head><body text="#ff00ff"><p><table width="50%" border="5"><tr><th>Department</th><th>Location</th></tr><tr><td><a href="http://oracle.com/ACCOUNTING.html">ACCOUNTING</a></td>

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

Page 125: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

<td>NEW YORK</td></tr><tr><td><a href="http://oracle.com/RESEARCH.html">RESEARCH</a></td><td>DALLAS</td></tr><tr><td><a href="http://oracle.com/SALES.html">SALES</a></td><td>CHICAGO</td></tr><tr><td><a href="http://oracle.com/OPERATIONS.html">OPERATIONS</a></td><td>BOSTON</td></tr></table><p></body></html>

例例例例 4-27 SQLPLUSコマンドを使用した、スタンドアロンコマンドを使用した、スタンドアロンコマンドを使用した、スタンドアロンコマンドを使用した、スタンドアロンWebレポートの作成レポートの作成レポートの作成レポートの作成

オペレーティング・システムのプロンプトで、次のコマンドを入力します。

SQLPLUS -S -M "HTML ON TABLE 'BORDER="2"'" scott/tiger @dept.sql > dept.html

dept.sqlには、次の内容が含まれているとします。

SELECT DEPTNO, DNAME, LOCFROM DEPTORDER BY DEPTNO;EXIT

この例では、ユーザー「scott」で SQL*Plusを起動し、HTML ONを設定し、TABLEに対して BORDER属性を設定して、スクリプト dept.sqlを実行します。この場合 dept.sqlの出力結果は、オペレーティング・システム・コマンド >を使用して、dept.htmlにリダイレクトされた、完全なWebページになります。Webサーバーの CGIスクリプトで SQL*Plusをコールして、出力結果の送信先をWebブラウザにすることもできます。CGIスクリプトからSQL*Plusをコールする方法の詳細は、「CGIスクリプトからのスタンドアロンWebレポート作成」を参照してください。

Webブラウザを起動し、適切な URLを入力して dept.htmlをオープンすると、次のように表示されます。

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

Page 126: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

前述の SQLPLUSコマンドには、ネストした引用符による 3つのレイヤーが含まれています。レイヤーは、内側から順に次のものがあります。

� "50%"は、WIDTHに対する HTML属性値を引用符で囲んだものです。

� WIDTH="50%"は、TABLEオプションに対するテキスト引数を引用符で囲んだものです。

� "HTML ON TABLE 'BORDER="2" ' "は、-MARKUPオプションに対する引数を引用符で囲んだものです。

引用符のネスト方法は、オペレーティング・システムやプログラム・スクリプト言語によって異なります。

埋込み型の埋込み型の埋込み型の埋込み型の Webレポートの作成レポートの作成レポートの作成レポートの作成SET MARKUPコマンドを対話的に使用するかわりに、SQLPLUS -MARKUPコマンドを使用すると、インターネットで使用可能なモードで SQL*Plusセションを開始できます。これによって、CGI(Common Gateway Interface)またはオペレーティング・システム・コマンド・ファイルが内部に埋め込まれた SQL*Plusのセッションを実行できるようになります。このようにして作成されたファイルは、直接Webブラウザで表示できます。シェル・スクリプト、Windowsコマンド・ファイル(バッチ・ファイル)、Java、Javaスクリプト、Perlのファイルなど、Webサーバーがサポートしているものであれば、どのようなスクリプト言語でも使用できます。

この埋込み型の方法で、既存の SQL*Plusスクリプトを変更せずに使用して、インターネット上で HTMLのWeb出力を生成できます。これによって、Webベースのレポートを動的に作成できます。

例例例例 4-28 CGIスクリプトからのスタンドアロンスクリプトからのスタンドアロンスクリプトからのスタンドアロンスクリプトからのスタンドアロンWebレポート作成レポート作成レポート作成レポート作成

CGIスクリプトを使用して SQL*Plusを実行し、SQLスクリプトからWebレポートを生成できます。そのためには、次の 3つの要素が必要です。

� CGIスクリプトをコールするWebページ

� 入力を収集し、SQL*Plusを実行する CGIスクリプト

� SQL*Plusセッションによって実行される SQLスクリプト

CGIを使用するを使用するを使用するを使用するWebページの例ページの例ページの例ページの例次の例で示すWebページでは、ユーザー名とパスワード、データベース接続文字列および実行する SQLスクリプトの名前を入力するプロンプトが表示されます。

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

Page 127: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

<html><head><title>SQL*Plus Report Demonstration</title></head><body bgcolor="#ffffff">

<h1>SQL*Plus Report Demonstration</h1>

<!-- Change the URL here. On Windows NT you may need to usehttp://whatever/cgi-bin/perl?plus.pl if your web server is notconfigured to identify the script as a Perl program -->

<form method=post action="http://whatever/cgi-bin/plus.pl"><table border=0 summary="">

<tr> <td>Username:</td> <td><input type="text" name="username" size="10" align="left"></td></tr>

<tr> <td>Password:</td> <td><input type="password" name="password" size="10" align="left"></td></tr><tr> <td>Connect string: </td> <td><input type="text" name="db" size="10" align="left"></td></tr><tr> <td>Report to run: </td> <td><input type="text" name="script" value="emp.sql" size=40></td></tr><tr> <td><input type="submit" value="Run it">&nbsp;<input type="reset" value="Reset Form"></td> <td>&nbsp;</td>

注意注意注意注意 : ログイン情報をスクリプト・ファイルに埋め込んだり、CGIスクリプトを使用してログイン情報やパスワードのプロンプトを表示し、入力された情報を SQLPLUSコマンドに渡す場合は、サーバー上のセキュリティについて十分に注意してください。

デフォルト値を使用するのではなく、初期条件を設定することを検討してください。たとえば、ENTMAPのデフォルトが ONであっても、明示的に ENTMAP ONを指定するようにします。

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

Page 128: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

</tr></table></form></body></html>

CGIを使用するを使用するを使用するを使用する Perlスクリプトの例スクリプトの例スクリプトの例スクリプトの例次の例で示す CGIスクリプトは Perlスクリプトですが、シェル・スクリプトや Java Classなど、Webサーバーでサポートされている他の言語であってもかまいません。次のようなPerl CGIスクリプトを作成し、ご使用のWebサーバーの cgi-binディレクトリに sqlscript.plという名前で保存します。

# Set up the SQL*Plus environment$ENV{'ORACLE_SID'} = "P817"; # Your SID goes here$ENV{'ORACLE_HOME'} = "/oracle/817"; # Your Oracle Home directory goes here$ENV{'TNS_ADMIN'} = "/var/opt/oracle";$plusexe = "$ENV{'ORACLE_HOME'}/bin/sqlplus";

# Extract parameters and values from data entered through the web browser$i=<>;@in = split(/[&;]/,$i);

foreach $i (0 .. $#in){ ($key,$val) = split(/=/,$in[$i],2);

# Change encoding to machine character set $key =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge; $val =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;

# Store the value $in{"$key"} = $val;}

# Construct the connection string from values passed in$connstr = $in{'username'}."/".$in{'password'};$connstr = $connstr."@".$in{'db'} if ($in{'db'});

# Construct the SQL script to be run$script = "@".$in{'script'};

# Force output to be flushed$| = 1;

# Print mime typeprint "Content-Type: text/html\n\n";

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

Page 129: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

if ($debug){ print "<html><body>\n"; print "$plusexe:$connstr:$script:\n"; print "</body></html>\n"; exit;}

# Call SQL*Plus with the parameters entered from the web browsersystem ("$plusexe -r 3 -s -m \"html on\" $connstr $script");

exit;

CGIを使用するを使用するを使用するを使用する SQLスクリプトの例スクリプトの例スクリプトの例スクリプトの例テキスト・エディタで次のような SQL*Plusスクリプトを作成し、ご使用のWebサーバーのcgi-binディレクトリに employee.sqlという名前で保存します。

select empno, ename from emp;exit;

Webブラウザを起動し、適切な URLを入力して sqlplus.htmlをオープンすると、次のように表示されます。

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

Page 130: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

「Run it」をクリックし、シェル・スクリプト sqlscript.shを実行すると、SQL*Plusが起動され、employee.sqlスクリプトが実行されます。問合せ結果は、直接Webブラウザに表示されます。

Webレポートでのレポートでのレポートでのレポートでの SQL*Plusコマンドの表示の抑止コマンドの表示の抑止コマンドの表示の抑止コマンドの表示の抑止SILENTモードを使用して SQL*Plusセッションを起動することをお薦めします。これによって、Webブラウザには SQL問合せの結果のみが表示されます。

CGIスクリプトまたはオペレーティング・システム・コマンド・ファイルを使用して、埋込み型の SQL*Plusレポートを生成する場合、SQLPLUSの -SILENTオプションを -MARKUPと組み合せて使用すると便利です。これによって、SQL*Plusコマンドおよび SQL*Plusバナーが表示されなくなります。HTML出力には、SQL問合せの結果データのみが表示されます。

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

Page 131: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

HTMLエンティティエンティティエンティティエンティティ一部の文字(<、>、"および &)は、HTMLであらかじめ意味が定義されています。これらの文字をWebブラウザで表示できるようにするために、HTMLには代替文字のエンティティがあります。

Webブラウザには「>」が表示されますが、実際の HTMLファイルでのHTMLエンティティは、&gtです。SET MARKUPオプションの ENTMAPは、HTMLエンティティへの置換を指定します。ENTMAPは、デフォルトで ONに設定されています。デフォルトでは、<、>、"および &は、常にその文字を表す HTMLエンティティに置換されます。これによって、SQL*Plusコマンドまたは問合せ結果のデータにこれらの文字があった場合、Webブラウザが誤った解釈をしないようになります。

表表表表 4-2 対応する対応する対応する対応する HTMLエンティティエンティティエンティティエンティティ

文字文字文字文字 HTMLエンティティエンティティエンティティエンティティ 意味意味意味意味

< &lt; HTMLタグ・ラベルの開始

> &gt; HTMLタグ・ラベルの終了

" &quot; 二重引用符

& &amp; アンパサンド

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

Page 132: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Webレポートの作成

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

Page 133: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベース

5

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

この章では、SQL*Plusで使用可能なデータベース管理ツールの概要を説明します。この章では、次のトピックについて説明します。

� 概要

� データベースの起動および停止の概要

� REDOログ・ファイル

� データベースのリカバリ

この章は、データベース管理者向けです。この章で説明されているコマンドの機能を利用するには、データベース管理者の権限が必要です。

データベース管理の詳細は、『Oracle8i概要』を参照してください。

管理 5-1

Page 134: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

概要

概要概要概要概要データベースの起動、停止などの特別な操作は、データベース管理者(DBA)が行います。DBAは、一般ユーザーには割り当てられていない権限を所有しています。この章で概要を説明するコマンドは、通常、DBAが使用します。

SQL*Plusでのセキュリティおよびロールの詳細は、付録 Eを参照してください。

データベースの起動および停止の概要データベースの起動および停止の概要データベースの起動および停止の概要データベースの起動および停止の概要すべてのユーザーが、Oracleデータベースを利用できるとは限りません。データベースをオープンまたはクローズするには、あるいはインスタンスを起動または停止するには、DBA権限を持っているか、SYSOPERまたは SYSDBAで接続する必要があります。それ以外のユーザーは、Oracleデータベースの現在の状態を制御できません。

Oracle7 Server上で、STARTUPまたは SHUTDOWNを使用して、Oracleインスタンスを起動または停止することはできません。

データベースの起動データベースの起動データベースの起動データベースの起動データベースの起動には、次の 3つのステップが含まれています。

1. インスタンスの起動インスタンスの起動インスタンスの起動インスタンスの起動

インスタンスは、バックグラウンド・プロセスを制御し、Oracleデータベースに接続するためのメモリー領域を割り当てます。

2. データベースのマウントデータベースのマウントデータベースのマウントデータベースのマウント

データベースをマウントすることによって、データベースとすでに起動されているインスタンスが対応付けられます。

3. データベースのオープンデータベースのオープンデータベースのオープンデータベースのオープン

データベースをオープンすると、通常のデータベース操作が可能になります。

データベースの起動の詳細は、『Oracle8i概要』を参照してください。STARTUPコマンドの詳細は、第 8章「コマンド・リファレンス」を参照してください。

例例例例 5-1 インスタンスの起動インスタンスの起動インスタンスの起動インスタンスの起動

データベースをマウントせずに Oracleインスタンスを起動するには、次のように入力します。

SQL> STARTUP NOMOUNT

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

Page 135: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベースの起動および停止の概要

例例例例 5-2 データベースのマウントデータベースのマウントデータベースのマウントデータベースのマウント

インスタンスを起動し、データベースをクローズしたままマウントするには、次のように入力します。

SQL> STARTUP MOUNT

例例例例 5-3 データベースのオープンデータベースのオープンデータベースのオープンデータベースのオープン

Oracle8iのパラメータ・ファイル INITSALE.ORAを使用してインスタンスを起動し、SALESというデータベースを排他モードでマウントおよびオープンして、管理者に対してアクセス制限を加えるには、次のように入力します。

SQL> STARTUP OPEN sales PFILE=INITSALE.ORA EXCLUSIVE RESTRICT

SALESは、INITSALE.ORAパラメータ・ファイルの DB_NAMEパラメータで指定したデータベース名です。

データベースの停止データベースの停止データベースの停止データベースの停止データベースの停止には、次の 3つのステップが含まれます。

1. データベースのクローズデータベースのクローズデータベースのクローズデータベースのクローズ

データベースがクローズされると、SGA内のデータベースおよびリカバリ・データがすべてデータ・ファイルおよび REDOログ・ファイルに書き込まれ、すべてのオンライン・データ・ファイルがクローズされます。

2. データベースのディスマウントデータベースのディスマウントデータベースのディスマウントデータベースのディスマウント

データベースをディスマウントすることによって、データベースとインスタンスが切り離され、データベースの制御ファイルがクローズされます。

3. インスタンスの停止インスタンスの停止インスタンスの停止インスタンスの停止

インスタンスの停止によって、SGAメモリーが回収され、Oracleインスタンスを構成するバックグラウンドの Oracleプロセスが終了します。

データベースの停止の詳細は、『Oracle8i概要』を参照してください。SHUTDOWNコマンドの詳細は、第 8章「コマンド・リファレンス」を参照してください。

例例例例 5-4 データベースの停止データベースの停止データベースの停止データベースの停止

オープンおよびマウントされた後、データベースを通常停止するには、次のように入力します。

SQL> SHUTDOWNDatabase closed.Database dismounted.ORACLE instance shut down.

データベース管理 5-3

Page 136: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

REDOログ・ファイル

REDOログ・ファイルログ・ファイルログ・ファイルログ・ファイル各 Oracleデータベースには、2つ以上の REDOログ・ファイルが用意されています。1つのデータベースに対する REDOログ・ファイルのセットは、データベースの REDOログと呼ばれます。

REDOログは、データに加えられた変更を記録するために使用されます。たとえば、データベースが壊れた場合に、REDOログを使用してデータベースをリカバリします。REDOログ自体を含む障害を防ぐため、REDOログのミラー化によって、2つ以上の REDOログのコピーを異なるディスクに保持できます。

ARCHIVELOGモードモードモードモードデータベースを ARCHIVELOGモードでオープンすると、オンライン REDOログをアーカイブできます。

アーカイブ REDOログには、データベースに加えられた変更がすべて永久に保存されるため、ARCHIVE LOGコマンドを使用すると、インスタンス障害のみでなくディスク障害も完全にリカバリできます。

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

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

Page 137: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベースのリカバリ

データベースのリカバリデータベースのリカバリデータベースのリカバリデータベースのリカバリ破損したデータベースが 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

表領域のリカバリを続行する前に、対象の表領域がオフラインになっていることを確認してください。

データベース管理 5-5

Page 138: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベースのリカバリ

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

Page 139: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusを使用したデータベースへの

6

SQL*Plusを使用したデータベースへの接続を使用したデータベースへの接続を使用したデータベースへの接続を使用したデータベースへの接続

この章では、SQL*Plusを使用してデータベースに接続する方法を説明します。この章では、次のトピックについて説明します。

� デフォルト・データベースへの接続

� リモート・データベースへの接続

� データベース間でのデータのコピー

� 1つのデータベース上にある表の間でのデータのコピー

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

接続 6-1

Page 140: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

デフォルト・データベースへの接続

デフォルト・データベースへの接続デフォルト・データベースへの接続デフォルト・データベースへの接続デフォルト・データベースへの接続あるデータベース内のデータにアクセスするには、最初にそのデータベースに接続する必要があります。通常、SQL*Plusを起動すると、起動時に入力したユーザー名およびパスワードでデフォルトの Oracleデータベースに接続します。一度ログインすると、SQL*PlusのCONNECTコマンドを使用して別のユーザー名で接続できるようになります。ユーザー名およびパスワードは、そのデータベースに対して有効である必要があります。

たとえば、パスワード FOXを使用してユーザー名 TODDでデフォルト・データベースに接続するには、次のように入力します。

CONNECT TODD/FOX

ユーザー名およびパスワードを省略した場合、それらの入力を求めるプロンプトが表示されます。CONNECTコマンドの後にユーザー名のみを入力し、パスワードを省略する方法もあります(この場合は、パスワードの入力を求めるプロンプトが表示されます)。CONNECTコマンドは、最初にユーザーを現行データベースから切断するため、CONNECTコマンドに無効なユーザー名およびパスワードを使用した場合は、どのデータベースにも接続していない状態になります。

データベースへの接続の際にアカウントの有効期限が切れたユーザーとしてログインまたは接続した場合は、接続の前にパスワードを変更するように求めるプロンプトが表示されます。

データベースへの接続の際にアカウントがロックされている場合は、メッセージが表示され、そのユーザーとしての接続は、アカウントのロックが DBAによって解除されるまで許可されません。

SQL*Plusのコマンド・プロンプトで SQL*Plusの DISCONNECTコマンドを入力することによって、SQL*Plusを終了せずに現在 Oracleに接続しているユーザー名を切断できます。

デフォルト・データベースは、オペレーティング・システムの環境変数やシンボルを設定するか、または Oracleの特定の構成ファイルを編集することによって、オペレーティング・システム・レベルで構成されます。詳細は、ご使用のオペレーティング・システム用のOracleマニュアルを参照してください。

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

Page 141: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

リモート・データベースへの接続

リモート・データベースへの接続リモート・データベースへの接続リモート・データベースへの接続リモート・データベースへの接続多数の大きなシステムでは、複数のコンピュータ上で Oracleを実行します。それらのコンピュータは、多くの場合、ネットワーク上で接続されているため、異なるコンピュータ上のプログラム間でデータを効率よく高速に交換できます。ネットワーク化されたコンピュータは、互いに物理的に近い位置に設置されている場合と、遠く離れた位置に設置され、通信リンクで接続されている場合があります。

他のコンピュータ上にあるデータベース、またはデフォルト・データベース以外のホスト・コンピュータ上にあるデータベースは、リモート・データベースと呼ばれます。目的のデータベースに Net8があり、両方のデータベースが互換性のあるネットワーク・ドライバを備えている場合は、リモート・データベースに接続できます。

リモート・データベースには、次の 2つの方法のいずれかで接続できます。

� SQL*Plusから、CONNECTコマンドを使用する

� SQL*Plusを起動するときに、SQLPLUSコマンドを使用する

SQL*Plusからのリモート・データベースへの接続からのリモート・データベースへの接続からのリモート・データベースへの接続からのリモート・データベースへの接続CONNECTコマンドを使用してリモート・データベースに接続するには、CONNECTコマンドに、次のいずれかの形式で Net8のデータベース指定を含めます(入力するユーザー名およびパスワードは、接続するデータベースに対して有効である必要があります)。

� CONNECT SCOTT@connect_identifier

� CONNECT SCOTT/TIGER@connect_identifier

SQL*Plusは必要に応じてパスワードの入力を求めるプロンプトを表示し、指定されたデータベースにユーザーを接続します。

データベースへの接続の際にアカウントの有効期限が切れたユーザーでログインまたは接続した場合は、接続の前にパスワードを変更するように求めるプロンプトが表示されます。データベースへの接続の際にアカウントがロックされている場合は、メッセージが表示され、そのユーザーとしての接続は、アカウントのロックが DBAによって解除されるまで許可されません。

この方法でリモート・データベースに接続した場合、そのデータベースに対してすべてのSQLコマンド、SQL*Plusコマンドおよび PL/SQLブロックが使用できます。

サービス名を指定するために入力する正確な文字列は、コンピュータが使用する Net8プロトコルによって異なります。詳細は、第 8章の「CONNECT」およびご使用のプロトコルに該当する Net8のマニュアルを参照するか、または DBAに問い合せてください。

SQL*Plusを使用したデータベースへの接続 6-3

Page 142: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベース間でのデータのコピー

SQL*Plus起動時のリモート・データベースへの接続起動時のリモート・データベースへの接続起動時のリモート・データベースへの接続起動時のリモート・データベースへの接続SQL*Plusを起動したときにリモート・データベースに接続するには、次のいずれかの形式で SQLPLUSコマンドに Net8サービス名を挿入します。

� SQLPLUS SCOTT@connect_identifier

� SQLPLUS SCOTT/TIGER@connect_identifier

リモート・データベースに対して有効なユーザー名、パスワードおよび適切なサービス名を指定する必要があります。SQL*Plusは必要に応じてユーザー名およびパスワードの入力を求めるプロンプトを表示し、SQL*Plusを起動して、指定されたデータベースにユーザーを接続します。そのデータベースは、ユーザーが別のデータベースに CONNECTするか、DISCONNECTするか、または SQL*Plusを終了するまで使用されます。

データベースへの接続の際にアカウントの有効期限が切れたユーザーでログインまたは接続した場合は、接続の前にパスワードを変更するように求めるプロンプトが表示されます。データベースへの接続の際にアカウントがロックされている場合は、メッセージが表示され、そのユーザーとしての接続は、アカウントのロックが DBAによって解除されるまで許可されません。

この場合も、この方法で接続した後、リモート・データベース内の表を直接操作できます。

データベース間でのデータのコピーデータベース間でのデータのコピーデータベース間でのデータのコピーデータベース間でのデータのコピーデータベースとデータベースの間、および同じデータベースの表と表の間でデータをコピーするには、SQL*Plusの COPYコマンドを使用します。COPYコマンドを使用すると、次のようなデータベース間でのデータのコピーが可能です。

� リモート・データベースからローカル・データベースへのデータのコピー

� ローカル(デフォルト)・データベースから(ほとんどのシステム上の)リモート・データベースへのデータのコピー

� あるリモート・データベースから(ほとんどのシステム上の)別のリモート・データベースへのデータのコピー

注意注意注意注意 : 接続識別子の @記号を、コマンド・ファイルの実行に使用する @コマンドと混同しないでください。

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

Page 143: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベース間でのデータのコピー

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句の中でデータベースを指定するには、ローカル・データベースおよびリモート・データベースに対して有効なユーザー名およびパスワードが必要で、適切なNet8サービス名を指定する必要があります。COPYは、Oracleセキュリティに従うため、表にアクセスするには、指定するユーザー名に表へのアクセス権限が必要です。どのデータベースが使用可能であるかについては、DBAに問い合せてください。

リモート・データベースからローカル・データベースにコピーする場合は、TO句を省略できます。ローカル・データベースからリモート・データベースにコピーする場合は、FROM句を省略できます。リモート・データベース間でコピーする場合は、必ず両方の句を指定します。両方の句を挿入すれば、スクリプトを読みやすくする効果があります。

COPYコマンドの動作は、宛先の表がすでに存在するかどうか、およびユーザーが入力したアクション句(前述の例では CREATE)によって異なります。詳細は、この章の後半の「宛先の表の扱いを制御する方法」を参照してください。

デフォルトでは、宛先の表にコピーされた列は元の表での名前と同じ名前になります。宛先の表の中で列に新しい名前を指定する場合は、宛先の表名の後に新しい名前をカッコで囲んで入力します。列名を入力する場合は、コピーするすべての列の名前を入力する必要があります。

注意注意注意注意 : 一般に、COPYコマンドは、Oracleデータベースと Oracle以外のデータベースの間でデータをコピーするために使用するように設計されています。Oracleデータベース間でデータをコピーするには、SQLコマンド(CREATE TABLE ASおよび INSERT)を使用してください。

SQL*Plusを使用したデータベースへの接続 6-5

Page 144: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベース間でのデータのコピー

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はコピーされたデータを使用してその表を作成します。

既存の表を誤って上書きしないように、CREATE句を使用することができます。CREATEは、次のアクションを指定します。

� 宛先の表がすでに存在する場合、COPYはエラーを報告して停止します。

� 宛先の表が存在しない場合、COPYはコピーされたデータを使用してその表を作成します。

注意注意注意注意 : Oracleデータベースと Oracle以外のデータベースの間でデータをコピーできるようにするため、NUMBER列は宛先の表の中で DECIMAL列に変更されます。したがって、Oracleデータベース間でコピーする場合、精度が指定されていない NUMBER列は DECIMAL(38)列に変更されます。Oracleデータベース間でコピーする場合は、SQLコマンド(CREATE TABLE ASおよび INSERT)を使用するか、列に精度を指定する必要があります。

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

Page 145: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベース間でのデータのコピー

既存の表にデータを挿入するには、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

次のメッセージが表示されます。

Array fetch/bind size is 20. (arraysize is 20)Will commit when done. (copycommit is 0)Maximum long size is 80. (long is 80)

その後、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.

注意注意注意注意 : EMPのコピーが入っているリモート・コンピュータ用の適切なユーザー名、パスワードおよびサービス名については、DBAに問い合せてください。

SQL*Plusを使用したデータベースへの接続 6-7

Page 146: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベース間でのデータのコピー

この 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コマンドの中で表名をユーザー名で修飾することによって、別のユーザー表を参照できます。

たとえば、ユーザー名 ADAMSが所有し、Net8接続識別子 BOSTONDBに対応付けられているデータベース上にある DEPTという名前の表のローカル・コピーを作成するには、次のように入力します。

SQL> COPY FROM SCOTT/TIGER@BOSTONDB -> CREATE EMPCOPY2 -> USING SELECT * FROM ADAMS.DEPT

COPYにリモート・データベースへログインするよう指示することによって、ADAMSと同じ結果を得ることができます。ただし、ユーザー名 ADAMSに対応付けられているパスワードを知らないと実行できません。

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

Page 147: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

1つのデータベース上にある表の間でのデータのコピー

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

SQL*Plusを使用したデータベースへの接続 6-9

Page 148: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

1つのデータベース上にある表の間でのデータのコピー

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

Page 149: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

第第第第 II部部部部

リファレンスリファレンスリファレンスリファレンス

この部では、SQL*Plusの起動方法の概要を説明します。それぞれの SQL*Plusコマンドの説明を含むコマンド・リファレンスについても説明します。

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

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

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

Page 150: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,
Page 151: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

7

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

この章では、オペレーティング・システムのプロンプトから SQL*Plusにアクセスする方法を説明します。この章では、次のトピックについて説明します。

� SQLPLUSコマンドでの SQL*Plusの起動

� SQL*Plusコマンドのヘルプ

表示 7-1

Page 152: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

SQLPLUSコマンドでのコマンドでのコマンドでのコマンドでの SQL*Plusの起動の起動の起動の起動SQL*Plusを起動するには、オペレーティング・システムのプロンプトで、次のようにSQLPLUSコマンドを使用します。

SQLPLUS [ [Options] [Logon] [START] ]

各項目の意味は、次のとおりです。

logonの入力は、オプションです。logonを指定しないで startを指定した場合、SQL*Plusは、コマンド・ファイルの 1行目に有効なログインが含まれているものとみなします。startもlogonも指定しなかった場合、SQL*Plusはログイン情報の入力を求めるプロンプトを表示します。

次の項で、SQLPLUSコマンドの項目について説明します。

Options

ヘルプ情報の表示ヘルプ情報の表示ヘルプ情報の表示ヘルプ情報の表示

-SQLPLUSコマンドでの使用方法および構文を表示し、オペレーティング・システムに制御を戻します。

バージョン情報の表示バージョン情報の表示バージョン情報の表示バージョン情報の表示

-?SQL*Plusの現行のバージョンおよびレベル番号を表示し、オペレーティング・システムに制御を戻します。

Options 構文は次のとおりです。

- | -? | [ [-M[ARKUP]] markup_option] [-R[ESTRICT] {1|2|3}] [-S[ILENT]] ]

markup_optionの構文は次のとおりです。

HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]

Logon 構文は次のとおりです。

{username[/password][@connect_identifier | / } [AS {SYSOPER|SYSDBA}] | /NOLOG

START 構文は次のとおりです。

@file_name[.ext] [arg ...]

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

Page 153: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

MARKUP

-M[ARKUP]MARKUPオプションを使用すると、問合せまたはスクリプトから完全なスタンドアロンWebページを生成したり、Webページに埋込み可能なHTML出力を生成することができます。MARKUPオプションが現在サポートしているバージョンは、HTML 3.2です。

スタンドアロンのWebページを生成するには、SQLPLUS -MARKUP HTML ONまたは SET MARKUP HTML ON SPOOL ONを使用します。SQL*Plusは、<HTML>タグおよび <BODY>タグで自動的にカプセル化された、完全なHTMLページを生成します。スプール・ファイルのHTMLタグは、SPOOL OFFが実行されるか、または SQL*Plusを終了した場合にクローズします。

コマンドライン・オプションの -SILENTおよび -RESTRICTは、-MARKUPと組み合せて使用すると便利です。

SET MARKUP HTML ON SPOOL OFFを使用すると、既存のWebページへの埋込みに適した HTML出力を生成できます。この方法で生成された HTML出力には、<HTML>タグや <BODY>タグが含まれません。

今回のリリースでは、MARKUP HTML ONを使用して、<PRE>タグまたはHTML表でHTML出力を生成できます。表への出力では、標準の HTML <TABLE>タグ、<TR>タグおよび <TD>タグが使用され、問合せ結果の行および列が自動的にコード化されます。HTMLオプションの設定が ONの場合、HTML表への出力は、デフォルトで実行されます。PREFORMAT ONを設定すると、HTML <PRE>タグを使用して出力できます。MARKUPオプションの状態を表示するには、SHOW MARKUPコマンドを使用します。

SQLPLUS -MARKUPコマンドには、SET MARKUPコマンドと機能的に同等なオプションがあります。これらのオプションについては、この項で説明しています。SET MARKUPコマンドの詳細は、第 8章の「SET」コマンドを参照してください。

注意注意注意注意 : ご使用のオペレーティング・システムによっては、SQLPLUSコマンドの -MARKUP句全体を引用符で囲む必要があります。

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

Page 154: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

HTML [ON|OFF]HTMLは、生成される出力タイプをHTMLに指定する場合、MARKUPの必須引数です。オプションの ONおよび OFFは、HTML出力を生成するかどうかを指定します。デフォルトは OFFです。

MARKUP HTML ONを使用すると、MARKUPオプションで指定した内容に従って HTML出力が生成されます。SET MARKUPを使用する場合は、現行セッションで前回使用した SET MARKUP HTMLコマンドのオプション・セットに従って HTML出力が生成されます。

HTML出力の ONおよび OFFは、セッション中、必要に応じて切り替えることができます。デフォルトは OFFです。

MARKUPオプションの SPOOL ONで HTMLでの出力を可能にし、その後SQL*Plusコマンドの SPOOL filenameで、スプール・ファイルへの書出しを開始できます。詳細は、後述の SPOOL {ON|OFF}および第 8章の「SPOOL」を参照してください。

HEAD textHEAD textオプションでは、<HEAD>タグの内容を指定できます。デフォルトでは、textには、次の内容が挿入されます。

<TITLE>SQL*Plus Report</TITLE>

textに空白が含まれる場合は、引用符で囲む必要があります。SQL*Plusでは、このような自由文エントリについて、HTMLの妥当性をテストしません。入力するテキストが HTML <HEAD>タグの内容として妥当であるかどうかは、各自が確認してください。これによって、HTML出力を、ご使用のブラウザやそれぞれのニーズに応じて柔軟にカスタマイズできます。

BODY textBODY textオプションでは、<BODY>タグの内容を指定できます。デフォルトでは、属性は付いていません。textに空白が含まれる場合は、引用符で囲む必要があります。SQL*Plusでは、このような自由文エントリについて、HTMLの妥当性をテストしません。入力するテキストが HTML <BODY>タグの内容として妥当であるかどうかは、各自が確認してください。これによって、HTML出力を、ご使用のブラウザやそれぞれのニーズに応じて柔軟にカスタマイズできます。

注意注意注意注意 : SQL*Plusリリース 8.1.7では、HTML表をデフォルトの HTML出力として実装しています。将来のリリースでは、より多くの HTMLタグを実装する予定です。

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

Page 155: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

TABLE textTABLE textオプションでは、<TABLE>タグの属性を入力できます。TABLE textを使用して、HTML <TABLE>タグの BORDER、CELLPADDING、CELLSPACINGおよびWIDTHなどの属性を設定できます。デフォルトでは、<TABLE> WIDTH属性は 90%、BORDER属性は 1に設定されます。

textに空白が含まれる場合は、引用符で囲む必要があります。SQL*Plusでは、このような自由文エントリについて、HTMLの妥当性をテストしません。入力するテキストが HTML <TABLE>タグの内容として妥当であるかどうかは、各自が確認してください。これによって、HTML出力を、ご使用のブラウザやそれぞれのニーズに応じて柔軟にカスタマイズできます。

ENTMAP {ON|OFF}ENTMAP ONまたは OFFで、特殊文字「<」、「>」、「"」および「&」を、SQL*Plusでそれぞれの HTMLエンティティ「&lt;」、「&gt;」、「&quot;」および「&amp;」に置換するかどうかを指定します。ENTMAPは、デフォルトでONに設定されています。

ENTMAPの ONおよび OFFは、セッション中、必要に応じて切り替えることができます。たとえば、ENTMAP OFFを指定すると、SQL*Plus画面出力は次のようになります。

SQL> SELECT ENAME, EMPNO 2 FROM EMP 3 WHERE SAL <= 2000;

ENTMAP ONを指定すると、SQL*Plus画面出力は次のようになります。

SQL&gt; SELECT ENAME, EMPNO 2 FROM EMP 3 WHERE SAL &lt;= 2000;

エンティティがマップされていない場合、Webブラウザは、データを無効なHTMLとして扱うため、それ以降すべての出力が正しく表示されなくなります。ENTMAP OFFを使用すると、独自の HTMLタグを、カスタマイズした出力に書き出すことができます。

<HEAD>タグおよび <BODY>タグのエンティティがマップされていない場合、MARKUP HEADオプションおよびMARKUP BODYオプションで有効なエンティティが使用されていることを確認する必要があります。

注意注意注意注意 : ENTMAPは、HTMLオプションが ONであるか、または SPOOLオプションが ONである場合のみ有効です。出力で使用するエンティティの詳細は、第 8章の「COLUMN」コマンドを参照してください。

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

Page 156: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

SPOOL {ON|OFF}SPOOL ONまたは SPOOL OFFは、SQL*Plus SPOOL filenameコマンドで作成された各ファイルの開始および終了箇所に対して、HTMLの開始タグである<HTML>タグや <BODY>タグ、および終了タグである </BODY>タグおよび</HTML>タグを書き込むかどうかを指定します。デフォルトは OFFです。

SPOOLの ONおよび OFFは、セッション中、必要に応じて切り替えることができます。

SPOOL filenameコマンドを発行した場合、SQL*Plusでは、複数の HTMLタグがスプール・ファイルに書き込まれます。書き込まれるタグ、およびそれらのデフォルトの内容は、次のとおりです。

<HTML><HEAD><TITLE>SQL*Plus Report</TITLE><META name="generator" content="SQL*Plus 8.1.7"></HEAD><BODY>

EXIT、SPOOL OFFまたは SPOOL filenameのいずれかの SQL*Plusコマンドを発行すると、次の終了タグが書き込まれ、ファイルがクローズされます。

</BODY></HTML>

<HEAD>タグの内容および <BODY>の属性は、HEADおよび BODYオプションを使用して指定できます。

注意注意注意注意 : SET MARKUP HTML SPOOLオプションと SQLPLUS SPOOL filenameコマンドの違いを十分に理解してください。

SET MARKUP HTML SPOOL ONオプションでは、HTMLタグのスプール・ファイルへの書込みを指定します。SQLPLUS SPOOL filenameコマンドを発行するまで、スプール・ファイルは作成されず、SET MARKUP HTML SPOOL ONオプションで HTMLタグをスプール・ファイルに書き込むこともできません。

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

Page 157: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

PRE[FORMAT] {ON|OFF}PREFORMAT ONまたは OFFで、SQL*Plusが出力ファイルの書出しに<PRE>タグを使用するかHTML表を使用するかを指定します。デフォルトはOFFで、出力は HTML表に書き出されます。PREFORMATの ONおよびOFFは、セッション中、必要に応じて切り替えることができます。

MARKUPの使用方法の使用方法の使用方法の使用方法PREFORMAT ONを明示的に設定していない既存のスクリプトでは、出力が HTML表で生成されます。HTML <PRE>タグで出力するには、PREFORMAT ONを設定する必要があります。

一部の SQL*Plusコマンドでは、出力がHTML表に送られる場合の動作が異なります。基本的に、紙のレポートをフォーマットするためのコマンドには、Web表用のレポートとは、次のように異なる意味があります。

� PAGESIZEは、HTML表での行数であり、単なる行数ではありません。HTML表の各行には、複数の行が含まれる場合があります。TTITLE、BTITLEおよび列ヘッダーは、各PAGESIZE行で繰り返されます。

� LINESIZEはWRAP変数が ONである場合、または非常に長いデータの場合に有効になります。データサイズによっては別々の行に生成され、ブラウザが空白文字として解釈する場合があります。

� TTITLEおよび BTITLEの内容は、3つの行位置(左、中央および右)に出力され、最大行幅はブラウザのウィンドウの 90%に設定されています。これらの要素は、Web出力用に処理される場合に想定される、主な出力とは揃わない場合があります。TTITLEおよび BTITLEでのエンティティのマッピングは、MARKUPコマンドで指定する一般的な ENTMAPの設定と同じです。

� 独自のタイトルを使用して出力する場合、SQL*Plusは新規に HTML表を開始し、タイトルの後に出力行を表示します。ご使用のブラウザでは、各列のデータの幅によって、表の列幅が異なるフォーマットになる場合があります。

� PREFORMATが ONの場合、SET COLSEPおよび RECSEPのみが、HTMLレポート出力を生成します。

注意注意注意注意 : HTML <PRE>タグを使用したレポート出力を作成するには、PREFORMAT ONを設定する必要があります。次に例を示します。

SQLPLUS -M "HTML ON PREFORMAT ON"SET MARKUP HTML ON PREFORMAT ON

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

Page 158: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

RESTRICT

-R[ESTRICT] {1|2|3}オペレーティング・システムと対話する特定のコマンドを使用禁止にすることができます。これは、PUP(Product User Profile)表の同じコマンドを使用禁止にすることと同様です。ただし、-RESTRICTオプションで使用禁止にされたコマンドは、サーバーと接続していないときにも使用できず、SQL*Plusを終了するまで使用禁止のままです。

-RESTRICTオプションが指定されていない場合、PUP表で使用禁止に指定されていなければ、すべてのコマンドが使用可能です。

-RESTRICTを指定すると、LOGIN.SQLは読み込めません。GLOGIN.SQLは読み込めますが、制限付きのコマンドが使用されていると、正常に実行されません。

表 7-1に、各制限レベルで使用禁止にされるコマンドを示します。

SILENT

-S[ILENT]すべての SQL*Plus情報メッセージおよびプロンプト・メッセージを抑止します。コマンド・プロンプト、コマンドのエコー、SQL*Plusの起動時に通常表示されるバナーも含まれます。usernameまたは passwordを省略すると、SQL*Plusはプロンプトを表示せずに入力を待ちます。ユーザーには見えないように SQL*Plusを使用するには、SILENTを使用して別のプログラム内でSQL*Plusを起動します。

表表表表 7-1 各制限レベルでの使用禁止コマンド各制限レベルでの使用禁止コマンド各制限レベルでの使用禁止コマンド各制限レベルでの使用禁止コマンド

コマンドコマンドコマンドコマンド レベルレベルレベルレベル 1 レベルレベルレベルレベル 2 レベルレベルレベルレベル 3

EDIT 使用禁止 使用禁止 使用禁止

GET 使用禁止

HOST、! 使用禁止 使用禁止 使用禁止

SAVE 使用禁止 使用禁止

SPOOL 使用禁止 使用禁止

START、@、@@ 使用禁止

STORE 使用禁止 使用禁止

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

Page 159: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

SILENTは、CGIを含む SQLPLUS -MARKUPコマンドやオペレーティング・システムのコマンド・ファイルを使用して、Web用のレポートを作成する場合に便利なモードです。SILENTオプションを使用して作成されたレポートでは、SQL*Plusのバナーおよびプロンプトは抑止され、表示されません。

Logon

username[/password]SQL*Plusを起動し、Oracleに接続するためのユーザー名およびパスワードを指定します。usernameおよび passwordを省略すると、SQL*Plusは入力を求めるプロンプトを表示します。

passwordのみを省略すると、passwordの入力を求めるプロンプトが表示されます。プロンプトを表示する場合、SQL*Plusが端末画面に passwordを表示することはありません。SILENTモードでは、ユーザー名およびパスワードのプロンプトは表示されません。ユーザー名は、入力したとおりに表示されますが、パスワードは表示されません。

@connect_identifierNet8接続識別子で構成されます。正確な構文は、Oracleインストールで使用する Net8通信プロトコルによって異なります。詳細は、ご使用のプロトコルに該当する Net8のマニュアルを参照するか、データベース管理者に問い合せてください。

/オペレーティング・システム認証を使用するデフォルト・ログインを表します。デフォルト・ログインを使用する場合、database_specificationを指定できません。デフォルト・ログインでは、SQL*Plusは通常ユーザー名 OPS$nameを使用してユーザーをログインさせようとします。nameは、ご使用のオペレーティング・システムのユーザー名です。接頭辞「OPS$」は、テキストの他の文字列にも設定されることがあります。たとえば、INIT.ORAパラメータ・ファイルの設定を LOGONnameまたは USERIDnameに変更することがあります。オペレーティング・システム認証の詳細は、『Oralce8i管理者ガイド』を参照してください。

AS {SYSOPER|SYSDBA}AS句は、SYSOPERまたは SYSDBAシステム権限を付与されているユーザーに対して、特権付きの接続を許可します。また、/および /NOLOGでも特権付きの接続を使用できます。

このオプションを使用する場合、多くのオペレーティング・システムで、コマンド引数を引用符で囲む必要があります。次に例を示します。

SQLPLUS "/ AS SYSDBA"SQLPLUS "SYSTEM/MANAGER AS SYSOPER"

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

Page 160: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

/NOLOGOracleへの初期接続を確立しません。SQLコマンドを発行する前に、CONNECTコマンドを発行して有効なログインを確立する必要があります。ユーザー名、パスワードまたはデータベースを指定するためのプロンプトを、SQL*Plusコマンド・ファイルから表示するには、/NOLOGを使用します。コマンド・ファイルの 1行目には、ログインが含まれていないものとみなされます。

START

@file_name[.ext] [arg ...]コマンド・ファイル名および実行する引数を指定します。SQL*Plusは、SQL*Plusの STARTコマンドを使用してファイルを実行した場合と同様に、引数をコマンド・ファイルに渡します。ファイルに拡張子が指定されていない場合は、SET SUFFIXコマンドで定義された拡張子が使用されます。デフォルトの拡張子は、.sqlです。

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

サイト・プロファイルの設定サイト・プロファイルの設定サイト・プロファイルの設定サイト・プロファイルの設定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-10 Oracle8i SQL*Plusユーザーズ・ガイドおよびリファレンス

Page 161: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUSコマンドでの SQL*Plusの起動

例例例例 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の間には、空白を入れます。

HTML ONで SQL*Plusを起動し、Webブラウザで表示できるようにするには、次のように入力します。

SQL> SQLPLUS -M "HTML ON" SCOTT/TIGER

セッション中、EDITおよびHOSTコマンドのアクセスを受け付けないように SQL*Plusを起動するには、次のように入力します。

SQL> SQLPLUS -R 1 SCOTT/TIGER

例例例例 7-2 SQLPLUS構文の表示構文の表示構文の表示構文の表示

SQLPLUSコマンドの構文を表示するには、次のように入力します。

SQL> SQLPLUS -H

次のように表示されます。

Usage: SQLPLUS [ [<option>] [<logon>] [<start>] ]where <option> ::= - | -? | [ [-M <o>] [-R <n>] [-S] ] <logon> ::= <username>[/<password>][@<connect_identifier>] | / |/NOLOG <start> ::= @<filename>[.<ext>] [<parameter> ...] - displays the SQL*Plus version banner and usage syntax -? displays the SQL*Plus version banner -M <o> uses HTML markup options <o> -R <n> uses restricted mode <n> -S uses silent mode

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

Page 162: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusコマンドのヘルプ

SQL*PlusコマンドのヘルプコマンドのヘルプコマンドのヘルプコマンドのヘルプSQL*Plusコマンドのオンライン・ヘルプにアクセスするには、SQLコマンド・プロンプトで HELPと入力し、続けてコマンド名を入力します。次に例を示します。

SQL> HELP ACCEPT

SQL*Plusコマンドのリストを表示するには、HELPの後に TOPICSまたは INDEXを入力します。HELP TOPICSでは、SQL*Plusコマンドが 1列にリスト表示されます。HELP INDEXでは、SQL*Plusコマンドが 1画面内に収まるように 4列にリスト表示されます。次に例を示します。

SQL> HELP INDEX

ヘルプが使用できないことを示す応答があった場合は、データベース管理者に連絡してください。詳細は、第 8章の「HELP」コマンドを参照してください。

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

Page 163: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

コマンド・リファレ

8

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

この章では、SQL*Plusのコマンドをアルファベット順に説明します。この章は、参照用に利用してください。それぞれのコマンドについて、次の内容を説明します。

SQL*Plusの各コマンドを説明する前に、すべてのコマンドをリストに示し、それぞれを簡単に紹介する一覧表を記載しています。

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

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

用途用途用途用途 コマンドの基本的な用途について説明します。

構文構文構文構文 コマンドの入力方法を示します。コマンドの表記規則については、第 1章を参照してください。

項および句項および句項および句項および句 構文の中に含まれるそれぞれの項または句の働きについて説明します。

使用方法使用方法使用方法使用方法 コマンドの働きおよびコマンドの使用方法に関する追加情報を示します。

例例例例 コマンドの例を示します。

ンス 8-1

Page 164: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusコマンド一覧

SQL*Plusコマンド一覧コマンド一覧コマンド一覧コマンド一覧

コマンドコマンドコマンドコマンド ページページページページ 説明説明説明説明

@ 8-5 指定したコマンド・ファイルを実行する。

@@ 8-7 コマンドをコールしたスクリプトと同じディレクトリを検索して、指定したコマンド・ファイルを実行する。

/ 8-9 SQLコマンドまたは PL/SQLブロックを実行する。

ACCEPT 8-10 1行の入力を読み取り、それを所定のユーザー変数に格納する。

APPEND 8-12 指定したテキストをバッファ内のカレント行の終わりに追加する。

ARCHIVE LOG 8-13 オンライン REDOログ・ファイルの自動アーカイブを開始または終了する、指定した REDOログ・ファイルを手動で(明示的に)アーカイブする、または REDOログ・ファイルの情報を表示する。

ATTRIBUTE 8-17 オブジェクト型列の特定の属性の表示特性を指定し、1つまたはすべての属性の現行の表示特性をリスト表示する。

BREAK 8-19 レポート内のどこでどのように書式設定を変更するかを指定する、または現行のブレーク定義をリスト表示する。

BTITLE 8-24 各レポート・ページの下部に指定のタイトルを配置し書式設定する、または現行の BTITLE定義をリスト表示する。

CHANGE 8-25 バッファ内のカレント行のテキストを変更する。

CLEAR 8-28 指定したオプション(たとえば BREAKSや COLUMNS)などの現在の値または設定を、リセットまたは消去する。

COLUMN 8-30 特定の列の表示特性を指定するか、1つまたはすべての列の現在の表示特性をリスト表示する。

COMPUTE 8-41 選択した行のサブセットについて、各種の標準計算方法を使用してサマリー行を計算し出力する、またはすべての COMPUTE定義をリスト表示する。

CONNECT 8-47 指定したユーザー名で Oracleに接続する。

COPY 8-49 問合せから、ローカル・データベースまたはリモート・データベース内の表に結果をコピーする。

DEFINE 8-52 ユーザー変数を指定し、それに CHAR値を割り当てるか、1つまたはすべての変数の値および変数型をリスト表示する。

DEL 8-54 バッファの 1つ以上の行を削除する。

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

Page 165: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusコマンド一覧

DESCRIBE 8-56 指定した表、ビューまたはシノニムの列定義をリスト表示する、または指定したファンクションまたはプロシージャの仕様をリスト表示する。

DISCONNECT 8-63 データベースに対する保留中の変更をコミットし、カレント・ユーザーを Oracleからログオフするが、SQL*Plusは終了しない。

EDIT 8-64 指定したファイルの内容またはバッファの内容を対象として、ホスト・オペレーティング・システムのテキスト・エディタを起動する。

EXECUTE 8-66 1つの PL/SQL文を実行する。

EXIT 8-67 SQL*Plusを終了し、オペレーティング・システムに制御を戻す。

QUIT 8-67 SQL*Plusを終了し、オペレーティング・システムに制御を戻す。EXITと同じ機能。

GET 8-69 ホスト・オペレーティング・システム・ファイルを SQLバッファにロードする。

HELP 8-70 SQL*Plusヘルプ・システムにアクセスする。

HOST 8-71 SQL*Plusを終了せずに、ホスト・オペレーティング・システム・コマンドを実行する。

INPUT 8-73 バッファ内のカレント行の後に、1つ以上の新しい行を追加する。

LIST 8-75 SQLバッファの 1つ以上の行をリスト表示する。

PASSWORD 8-77 パスワードを入力デバイスにエコー表示せずに変更できるようにする。

PAUSE 8-78 指定したテキストを表示し、その後ユーザーが [Return]を押すまで待つ。

PRINT 8-79 バインド変数の現在の値を表示する。

PROMPT 8-80 指定したメッセージをユーザーの画面に送る。

RECOVER 8-81 1つ以上の表領域、1つ以上のデータ・ファイル、またはデータベース全体に対しメディア・リカバリを実行する。

REMARK 8-87 コマンド・ファイルの中でコメントを開始する。

REPFOOTER 8-88 各レポートの下部に指定のレポート・フッターを配置し書式設定するか、または現行の REPFOOTER定義をリスト表示する。

REPHEADER 8-90 各レポートの上部に指定のレポート・ヘッダーを配置し書式設定するか、または現行の REPHEADER定義をリスト表示する。

コマンドコマンドコマンドコマンド ページページページページ 説明説明説明説明

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

Page 166: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusコマンド一覧

RUN 8-93 現在、SQLバッファに格納されている SQLコマンドまたはPL/SQLブロックを、リスト表示し実行する。

SAVE 8-94 SQLバッファの内容を、ホスト・オペレーティング・システム・ファイル(コマンド・ファイル)に保存する。

SET 8-96 現行セッション用に SQL*Plus環境を変更するためのシステム変数を設定する。

SHOW 8-121 SQL*Plusシステム変数の値または現行の SQL*Plus環境を表示する。

SHUTDOWN 8-126 現在実行中の Oracleインスタンスを停止する。

SPOOL 8-128 問合せの結果を、オペレーティング・システム・ファイルに格納し、オプションとしてそのファイルをプリンタに送る。

START 8-129 指定したコマンド・ファイルの内容を実行する。

STARTUP 8-131 Oracleインスタンスを起動し、オプションでデータベースをマウントおよびオープンする。

STORE 8-135 現行の SQL*Plus環境の属性を、ホスト・オペレーティング・システム・ファイル(コマンド・ファイル)に保存する。

TIMING 8-136 経過時間に関するタイミング・データを記録するか、現行のタイマーのタイトルとタイミング・データをリスト表示するか、アクティブ・タイマーの数をリスト表示する。

TTITLE 8-138 各レポート・ページの上部に指定のタイトルを配置し書式設定する、または現行の TTITLE定義をリスト表示する。

UNDEFINE 8-142 明示的に(DEFINEコマンドを使用して)定義したか、または暗黙的に(STARTコマンドでの引数によって)定義した 1つ以上のユーザー変数を削除する。

VARIABLE 8-143 PL/SQLで参照できるバインド変数を宣言する。

WHENEVER OSERROR 8-149 オペレーティング・システム・コマンドがエラーを生成した場合に、SQL*Plusを終了する。

WHENEVER SQLERROR 8-151 SQLコマンドまたは PL/SQLブロックがエラーとなった場合、SQL*Plusを終了する。

コマンドコマンドコマンドコマンド ページページページページ 説明説明説明説明

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

Page 167: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

@(アットマーク)

@(アットマーク)(アットマーク)(アットマーク)(アットマーク)

用途用途用途用途指定したコマンド・ファイルを実行します。

構文構文構文構文@ 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番目の引数でコマンド・ファイルにある &1が置換され、2番目の引数で &2が置換されます(以降同様に置換されます)。

@コマンドは、引数の値でパラメータを定義します。このセッションで同じコマンド・ファイルを再度実行するには、新しい引数を入力するか、または引数を省略して現在の値を使用します。

パラメータの使用方法の詳細は、第 3章の「対話型コマンドの作成」の「STARTコマンドを使用した値の指定」を参照してください。

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

Page 168: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

@(アットマーク)

使用方法使用方法使用方法使用方法コマンド・ファイルには、通常、対話形式で入力するコマンド(主に、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

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

Page 169: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

@@(二重アットマーク)

@@(二重アットマーク)(二重アットマーク)(二重アットマーク)(二重アットマーク)

用途用途用途用途コマンド・ファイルを実行します。このコマンドは、@(アットマーク)コマンドとほぼ同じですが、このコマンドがコールされたコマンド・ファイルと同じパス内で、指定のコマンド・ファイルを検索するという点が異なります。

構文構文構文構文@@ 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」コマンドを参照してください。

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

Page 170: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

@@(二重アットマーク)

SQL*Plusは、@@コマンドを発行する前に SQLTERMINATOR(デフォルトではセミコロン)を削除します。これに対処するには、新しく SQLTERMINATORを追加します。詳細は、この章の「SET」コマンドの SQLTERMINATOR変数を参照してください。

例例例例PRINTRPTという次のようなコマンド・ファイルがあるとします。

SELECT * FROM EMP@EMPRPT@@ WKRPT

PRINTRPTを開始し、それが @コマンドに到達すると、現行の作業ディレクトリ内でEMPRPTという名前のコマンド・ファイルが検索され、実行されます。PRINTRPTが @@コマンドに到達すると、このコマンドは、PRINTRPTと同じパスの中でWKRPTというコマンド・ファイルを検索し、実行します。

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

Page 171: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

/(スラッシュ)

/(スラッシュ)(スラッシュ)(スラッシュ)(スラッシュ)

用途用途用途用途現在 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

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

Page 172: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ACCEPT

ACCEPT

用途用途用途用途1行の入力を読み取り、それを所定のユーザー変数に格納します。

構文構文構文構文ACC[EPT] variable [NUM[BER]|CHAR|DATE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text|NOPR[OMPT]] [HIDE]

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

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リファレンス』を参照してください。

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

Page 173: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ACCEPT

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/99である HIREDという名前の DATE変数に応答を入れるには、次のように入力します。

SQL> ACCEPT hired DATE FORMAT ’dd/mm/yy’ DEFAULT ’01/01/99’-> PROMPT ’Enter date hired: ’

「Enter employee lastname:」というプロンプトを表示し、LASTNAMEという名前の CHAR変数に応答を入れるには、次のように入力します。

SQL> ACCEPT lastname CHAR FORMAT ’A20’ -> PROMPT ’Enter employee lastname: ’

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

Page 174: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

APPEND

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番目の空白が、追加される最初の文字になります。

この行にセミコロンを追加するには、次のように入力します。

SQL> APPEND ;;

SQL*Plusは、最初のセミコロンをこの行に追加し、2番目のセミコロンは APPENDコマンドの終了記号と解釈します。

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

Page 175: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ARCHIVE LOG

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」の行を削除します。

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

Page 176: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ARCHIVE LOG

ログ順序は、ログ・ライターが他の 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マニュアルを参照してください。オペレーティング・システムの多くは、複数のログ・ファイルを同一のテープにスプールできます。

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

Page 177: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ARCHIVE LOG

アーカイブ先がコマンドラインで指定されていない場合は、初期化パラメータLOG_ARCHIVE_DESTの指定に従います。コマンド ARCHIVE LOG STARTの destinationで指定されたデバイスまたはディレクトリは、今後すべての自動または手動アーカイブの新しい標準出力先になります。他のオプションで出力先が指定された場合は、一時的に、現行の(手動の)アーカイブのみで有効な出力先になります。その後の自動アーカイブでは、標準出力先を変更しません。

アーカイブ先の指定方法については、ご使用のプラットフォーム固有の Oracleマニュアルを参照してください。

使用方法使用方法使用方法使用方法SYSOPERまたは SYSDBAでデータベースに接続している必要があります。データベース接続については、「CONNECT」コマンドを参照してください。

オンライン REDOログ・ファイル・グループが一杯で、再利用可能なものがない場合は、データベース処理が中断されます。ログ・ファイル・グループをアーカイブすると、データベース処理が再開されます。

アーカイブ先の指定方法については、ご使用のプラットフォーム固有の Oracleマニュアルを参照してください。

例例例例アーカイブ・プロセスを起動し、LOG_ARCHIVE_DESTで指定したアーカイブ先を使用して自動アーカイブを開始するには、次のように入力します。

SQL> ARCHIVELOG START

自動アーカイブを停止するには、次のように入力します。

SQL> ARCHIVELOG STOP

注意注意注意注意 : このコマンドを使用できるのは、現行のインスタンスのみです。Parallel Server内の異なるインスタンスまたはすべてのインスタンスに対してアーカイブを指定するには、SQLコマンドの ALTER SYSTEMを使用します。SQLコマンドの使用方法については、『Oracle8i SQLリファレンス』を参照してください。

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

Page 178: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ARCHIVE LOG

順序番号 1001を使用して、指定した出力先へアーカイブ・ログ・ファイル・グループをアーカイブするには、次のように入力します。

SQL> ARCHIVELOG 1001 '/vobs/oracle/dbs/arch'

archは、出力先デバイス上のファイル名に接頭辞を指定します。残りのファイル名は、初期化パラメータ LOG_ARCHIVE_FORMATによって、アーカイブ REDOログ・ファイルのファイル名の書式を指定します。

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

Page 179: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ATTRIBUTE

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指定した別名が type_name.attribute_nameに割り当てられます。これは、他のATTRIBUTEコマンドで type_name.attribute_nameを参照するために使用できます。

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

Page 180: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ATTRIBUTE

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

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

Page 181: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

BREAK

BREAK

用途用途用途用途レポート内で次のような書式設定をどこでどのように変更するかを指定します。

� 特定の列について重複する値の表示の抑止

� 特定の列値が変化するたびに 1行スキップ

� 特定の列値が変化するたび、またはレポートの終わりに COMPUTEによって計算された数値を出力(「COMPUTE」コマンドも参照)

また、現行の BREAK定義もリスト表示します。

構文構文構文構文BRE[AK] [ON report_element [action [action]]] ...

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

ON column [action [action]]アクションを指定する場合は、指定した列(ブレーク列)の中でブレークが発生するたびに SQL*Plusがとるアクションを指定します。(columnには、表もビューも追加できません。これを行うために、SQL文の中でその列に別名を付けることができます。)ブレークとは、列または式の値の変更、行の出力、レポートの終わりのいずれかです。

アクションを省略した場合、BREAK ON columnによって、columnの中で重複する値の出力が抑止され、対応する COMPUTEコマンドに指定された計算をSQL*Plusが実行するレポート内の位置にマークが設定されます。

ON columnは、1回以上指定できます。次の例のように、複数の ON句を指定したとします。

report_element 構文は次のとおりです。

{column|expr|ROW|REPORT}

action 構文は次のとおりです。

[SKI[P] n|[SKI[P]] PAGE][NODUP[LICATES]|DUP[LICATES]]

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

Page 182: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

BREAK

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は、初期検索で見つかった最初の発生ブレークについて指定されているアクションまでの各アクションを実行します。

たとえば、ある行で 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コマンドの中で指定しなくてもかまいません)。これは、レポートの無意味な位置でブレークが発生することを防ぐためです。

この項の前半で指定した BREAKコマンドが使用されている場合、次のSELECTコマンドによって、有効な結果が得られます。

SQL> SELECT DEPTNO, JOB, SAL, ENAME 2 FROM EMP 3 ORDER BY DEPTNO, JOB, SAL, ENAME;

DEPTNOが同じであるすべての行がまとめて 1ページに出力され、そのページの中では、JOBが同じであるすべての行が 1グループにまとめられます。それぞれの JOBグループの中では、SALが同じである JOBがグループにまとめられます。この BREAKコマンドに ENAMEは指定されていないため、ENAME内にブレークがあってもアクションは実行されません。

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

Page 183: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

BREAK

ON expr [action [action]]アクションを挿入する場合は、式の値が変化したときに SQL*Plusがとるアクションを指定します。

アクションを省略した場合、BREAK ON exprは、exprの重複値の出力を抑止し、対応する COMPUTEコマンドに指定された計算を SQL*Plusが実行するレポート内の位置に、マークが設定されます。

1つ以上の表列を含む式、あるいは SQL SELECTまたは SQL*Plus COLUMNコマンドでレポート列に割り当てられている別名を含む式を使用できます。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はレポートの終わりで 1ページをスキップしないため、BREAK ON REPORT SKIP PAGEは使用できません。

SKI[P] nブレークが発生した行を出力する前に、n行スキップします。

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

Page 184: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

BREAK

[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の重複値を出力し、JOBの値が変化したときに SALの平均値を出して空白行を 1行挿入し、さらに、DEPTNOの値が変化したときに SALの合計値を出力して、再び空白行を挿入するレポートを生成するには、次のコマンドを入力します(この例では、DEPTNO10および 30から、CLERKおよび SALESMANの JOBのみが選択されます)。

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;

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

Page 185: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

BREAK

問合せ結果は、次のように出力されます。

DEPTNO JOB ENAME SAL---------- --------- ---------- ---------- 10 CLERK MILLER 1300 ********* ---------- avg 1300

********** ----------sum 1300

30 CLERK JAMES 950 ********* ---------- avg 950

DEPTNO JOB ENAME SAL---------- --------- ---------- ---------- 30 SALESMAN ALLEN 1600 SALESMAN WARD 1250 SALESMAN MARTIN 1250 SALESMAN TURNER 1500 ********* ---------- avg 1400

********** ----------sum 6550

6 rows selected.

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

Page 186: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

BTITLE

BTITLE

用途用途用途用途各レポート・ページの下部に指定のタイトルを配置し書式設定するか、または現行のBTITLE定義をリスト表示します。

旧形式の BTITLEの詳細は、付録 Fを参照してください。

構文構文構文構文BTI[TLE] [printspec [text|variable] ...] [ON|OFF]

項および句項および句項および句項および句BTITLEコマンド構文の中の項と句の詳細は、この章の「TTITLE」コマンドを参照してください。

現行の BTITLE定義をリスト表示するには、句を指定せずに、BTITLEを入力します。

使用方法使用方法使用方法使用方法textの前に、printspec句を入力しなかった場合、BTITLEはテキストを左揃えにします。コマンド名の直後に有効な printspec句(LEFT、SKIP、COLなど)が続いている場合、SQL*Plusは新形式で BTITLEを解釈します。

例例例例左側には CORPORATE PLANNING DEPARTMENTという下部タイトル、右側には日付が示されるように設定するには、次のように入力します。

SQL> BTITLE LEFT ’CORPORATE PLANNING DEPARTMENT’ -> RIGHT ’23 Nov 1999’

50桁目から CONFIDENTIALという下部タイトルが表示され、その後に 6つの空白を置いて日付が続くように設定するには、次のように入力します。

SQL> BTITLE COL 50 ’CONFIDENTIAL’ TAB 6 ’23 Nov 1999’

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

Page 187: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CHANGE

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と最初に一致した文字列とそこから行末までのすべてのものを意味します。途中に「...」を含めた場合は、oldより前の部分からoldから後の部分までのすべてのものが該当します。

newoldと置換するテキストを指定します。newと、オプションの 2番目および 3番目の sepcharsを省略した場合、CHANGEは、バッファのカレント行から oldを削除します。

使用方法使用方法使用方法使用方法CHANGEは、バッファのカレント行の上で、指定された既存のテキストと最初に一致した文字列を、指定された新しいテキストに変更します。LIST出力では、カレント行にはアスタリスク(*)によってマークが設定されています。

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

Page 188: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CHANGE

CHANGEを使用して、Oracleエラーの原因となったバッファ内の行を変更することもできます。SQL*Plusは、エラーがある行をバッファのカレント行に設定するため、それを変更できます。

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')

行番号を使用して、行全体の内容を置換できます。たとえば、次のように入力したとします。

SQL> 2 FROM EMP e1

バッファの 2番目の行が次のように置換されます。

FROM EMP e1

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

Page 189: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CHANGE

行番号に続けて文字列を入力すると、その行番号の後にどのようなテキストがあってもすべて置換されます。たとえば、次のように入力したとします。

SQL> 2 c/old/new/

バッファの 2番目の行が次のように変更されます。

2* c/old/new/

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

Page 190: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CLEAR

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]画面が消去されます。

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

Page 191: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CLEAR

SQLSQLバッファからテキストが消去されます。複数のバッファを使用している場合以外は、CLEAR SQLの働きは CLEAR BUFFERと同じです(付録 Fの「SET BUFFER」コマンドを参照)。

TIMI[NG]TIMINGコマンドにより作成されたすべてのタイマーが削除されます。

例例例例ブレークを消去するには、次のように入力します。

SQL> CLEAR BREAKS

列定義を消去するには、次のように入力します。

SQL> CLEAR COLUMNS

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

Page 192: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

COLUMN

用途用途用途用途特定の列について次のような表示属性を指定します。

� 列ヘッダーのテキスト

� 列ヘッダーの位置

� NUMBERデータの書式

� 列データの折返し

さらに、1つまたはすべての列の現行の表示属性をリスト表示します。

構文構文構文構文COL[UMN] [{column|expr} [option ...]]

optionは、次のいずれかの句を表します。

ALI[AS] aliasCLE[AR]ENTMAP {ON|OFF}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を入力します。

項または句の詳細は、次の説明を参照してください。

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

Page 193: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

{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も消去されます。

ENTMAP {ON|OFF}HTML出力の選択した列に対して、エンティティのマッピングを ONにするか OFFにするかを指定します。この機能によって、たとえば、同じレポートの他の列にエンティティをマッピングしていても、データの列に HTMLハイパーリンクを含めることができます。HTMLハイパーリンクを含む列に対して、エンティティのマッピングを OFFにすると、HTMLアンカー・タグのデリミタ(<、>、"および &)が、レポートで正しく解釈されます。HTMLハイパーリンクを含む列に対して、エンティティのマッピングを ONにすると、各エンティティ(&lt;、&gt;、&quot;および &amp;)と置換され、Webブラウザで HTMLが正しく解釈されません。

列の ENTMAPの値によって、列ヘッダーのエンティティと、COMPUTEラベルまたは列に表示される出力とが、マップされるかどうかが決まります。

COLUMN ENTMAPのデフォルトの設定は、MARKUP HTML ENTMAPオプションの現行の設定です。MARKUP HTML ENTMAPオプションの詳細は、第 7章の「MARKUP」およびこの章の「SET」コマンドを参照してください。

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

Page 194: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

FOLD_A[FTER]列ヘッダーの後および列内の各行の後に、改行が挿入されます。SQL*Plusでは、SELECT構文のリスト内の最後の列の後には余分な改行は挿入されません。

FOLD_B[EFORE]列ヘッダーの前および列内の各行の前に、改行が挿入されます。SQL*Plusでは、SELECT構文のリスト内の最初の列の前には余分な改行は挿入されません。

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のいずれか小さい方の値です。

データ型の幅を、FORMAT An(Aは英数字)を使用して nに変更します。列ヘッダーより短い幅を指定した場合は、ヘッダーが切り捨てられます。LONG、CLOBまたは NCLOBのいずれかの列に幅を指定した場合は、LONGCHUNKSIZE、または指定した幅のどちらか小さい方が列幅として使用されます。

DATE列列列列 SQL*Plus内の書式未設定の DATE列のデフォルトの幅と書式は、有効な NLSパラメータから導出されます。その他の場合、デフォルトの幅はA9です。Oracle8iでは、NLSパラメータは、データベース・パラメータ・ファイル内で設定されることもあり、環境変数やそれに相当するプラットフォーム固有メカニズムであることもあります。また、NLSパラメータは、ALTER SESSIONコマンドによって各セッションごとに指定することもできます(NLSパラメータの詳細は、Oracle8iのマニュアルを参照してください)。

SQL SELECT文の中で SQL関数 TO_CHARを使用して、任意の DATE列の書式を変更できます。COLUMN FORMATコマンドを明示的に使用して、列幅を調整することもできます。

Oracleでは、TO_CHARのような SQL関数を使用するときに、非常に幅の広い列が自動的に使用できるようになります。

DATE列の幅を nに変更するには、COLUMNコマンドで FORMAT Anを指定します。列ヘッダーより短い幅を指定した場合、ヘッダーは切り捨てられます。

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

Page 195: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

NUMBER列列列列 NUMBER列の幅を変更するには、FORMATの後に、表 8-1に示す要素の 1つを指定します。

表表表表 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列を書式設定するために使用される。

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

Page 196: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

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は、その幅に相当する各桁にシャープ記号(#)を表示することによって、オーバーフローを示します。

正の値が極端に大きく、数値の四捨五入の際に数値オーバーフローが発生する場合は、値のかわりに無限大記号(~)が表示されます。同様に、負の値が極端に小さく、数値の四捨五入の際に数値オーバーフローが発生する場合は、値のかわりに負の無限大記号(-~)が表示されます。

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

Page 197: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

HEA[DING] text列ヘッダーを定義します。HEADING句を使用しなかった場合の、デフォルトの列ヘッダーは、columnまたは exprです。textに空白または句読点文字が含まれている場合は、一重または二重引用符でそのテキストを囲む必要があります。HEADSEP文字(デフォルトでは「|」)が発生するたびに、新しい行が始まります。

たとえば、次のように入力したとします。

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コマンドに挿入しておく必要があります。変数名にシャープ記号(#)は挿入できません。

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

Page 198: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

NEW_VALUEは、ページごとに新しいマスター・レコードが使用されるマスター /詳細レポートに使用すると便利です。マスター /詳細レポートを作成するには、ORDER BY句にもこの列を挿入しておく必要があります。この項の終わりに記載されている例を参照してください。

下部タイトルに列値を表示する方法の詳細は、COLUMN OLD_VALUEを参照してください。タイトル内の変数の参照については、この章の終わりにある「TTITLE」コマンドを参照してください。書式設定および有効な書式モデルの詳細は、「FORMAT」コマンドの FORMAT句を参照してください。

NOPRI[NT]|PRI[NT]列(列ヘッダーおよび選択したすべての値)の印刷を制御します。NOPRINTを指定すると、列の画面表示および印刷が行われません。PRINTを指定すると、列の印刷が行われます。

NUL[L] textSQL*Plusによって特定の列に NULL値として表示されるテキストを制御します。デフォルトは空白です。SET NULLは、すべての列のすべてのNULL値のかわりに表示されるテキストを制御します。ただし、COLUMNコマンドのNULL句に指定した列には適用されません。NULL値を選択すると、変数の型は常に CHARになるので、SET NULLテキストをその変数に格納できます。

OLD_V[ALUE] variable列値を保持する変数を指定します。この変数は、BTITLEコマンドの中で参照できます。OLD_VALUEは、下部タイトルに列値を表示するために使用します。この列は、SKIP PAGEアクションを伴う BREAKコマンドに挿入しておく必要があります。

OLD_VALUEは、それぞれのページごとに新しいマスター・レコードが使用されるマスター /詳細レポートに使用すると便利です。マスター /詳細レポートを作成するには、ORDER BY句にもこの列を挿入しておく必要があります。

上部タイトルに列値を表示する方法の詳細は、COLUMN NEW_VALUEを参照してください。タイトル内の変数の参照については、この章の終わりにある「TTITLE」コマンドを参照してください。

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

Page 199: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

ON|OFF列の表示特性の状態を制御します。OFFを指定すると、属性の定義に影響を与えることなく列の属性が使用禁止にされます。ONを指定すると、属性が復元されます。

WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]長すぎて列に収まらないデータ型または DATE列を SQL*Plusでどのように処理するかを指定します。WRAPPEDを指定すると、列の境界内で文字列が折り返され、必要に応じて新しい行が開始されます。WORD_WRAPが使用可能になっている場合、SQL*Plusは、組込みの改行文字を含むすべての先行空白(リターン、改行文字、タブ、空白など)をスキップして、各行を左揃えにします。行の境界上にない組込み空白はスキップされません。TRUNCATEDを指定すると、最初の表示行の終わりの文字列が切り捨てられます。

使用方法使用方法使用方法使用方法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>’

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

Page 200: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

この例では、この列指定を 2つのコマンドに分けています。最初のコマンドは別名 NETを定義し、2番目のコマンドは NETを使用して書式を定義しています。

また、最初のコマンドでは、SELECTコマンドで入力した(またはこれから入力する)のと同様に式を入力する必要があります。そうしないと、SQL*Plusは、COLUMNコマンドを適正な列に対応付けることができません。

REMARKSという名前の列の中の長い値を折り返すには、次のように入力します。

SQL> COLUMN REMARKS FORMAT A20 WRAP

次に例を示します。

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;

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

Page 201: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

2ページにわたるレポートは次のようになり、「Job Report」が現行サイズの行の中央にきます。

Job Report 10/25/99

Job: CLERK

ENAME MGR HIREDATE SAL DEPTNO---------- ---------- --------- ---------- ----------ADAMS 7788 12-JAN-83 1100 20JAMES 7698 03-DEC-81 950 30MILLER 7782 23-JAN-82 1300 10SMITH 7902 17-DEC-80 800 20 ---------- 1037.5

Job Report 10/25/99

Job: SALESMAN

ENAME MGR HIREDATE SAL DEPTNO---------- ---------- --------- ---------- ----------ALLEN 7698 20-FEB-81 1600 30MARTIN 7698 28-SEP-81 1250 30TURNER 7698 08-SEP-81 1500 30WARD 7698 22-FEB-81 1250 30 ---------- 1400

8 rows selected.

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;

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

Page 202: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COLUMN

問合せ結果は、次のように出力されます。

Job Report 10/25/99

Job: SALESMAN

HIREDATE----------1981-11-17

ALTER SESSIONコマンドの詳細は、『Oracle8i SQLリファレンス』を参照してください。

SELECT文では、一部の SQL計算または関数(TO_CHARなど)の結果として、列幅が非常に広くなることがあります。このような場合は、FORMATオプションを使用して列幅を変更します。

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

Page 203: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COMPUTE

COMPUTE

用途用途用途用途選択した行のサブセットについて、各種の標準計算方法を使用してサマリー行を計算し出力するか、またはすべての COMPUTE定義をリスト表示します(サマリーの作成方法の詳細は、第 4章の「間隔の設定およびサマリー行によるレポートの明確化」を参照してください)。

構文構文構文構文COMP[UTE] [function [LAB[EL] text] ... OF {expr|column|alias} ... ON {expr|column|alias|REPORT|ROW} ...]

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

function ...表 8-2に示す関数の 1つを指定します。複数の関数を指定する場合は、関数と関数の間を空白で区切ります。

COMPUTEコマンドの関数は、COMPUTEコマンド内の順序にかかわらず、常に AVG、COUNT、MINIMUM、MAXIMUM、NUMBER、SUM、STD、VARIANCEの順序で実行されます。

表表表表 8-2 COMPUTE関数関数関数関数

関数関数関数関数 計算計算計算計算 適用されるデータ型適用されるデータ型適用されるデータ型適用されるデータ型

AVG NULL以外の値の平均 NUMBER

COU[NT] NULL以外の値の数 すべての型

MIN[IMUM] 最小値 NUMBER、CHAR、NCHAR、VARCHAR2(VARCHAR)、NVARCHAR2(NCHAR VARYING)

MAX[IMUM] 最大値 NUMBER、CHAR、NCHAR、VARCHAR2(VARCHAR)、NVARCHAR2(NCHAR VARYING)

NUM[BER] 行の数 すべての型

SUM NULL以外の値の合計 NUMBER

STD NULL以外の値の標準偏差 NUMBER

VAR[IANCE] NULL以外の値の平方偏差 NUMBER

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

Page 204: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COMPUTE

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は計算済の値を出力し、計算を再開します。

複数の COMPUTEコマンドの ON句で同じ列が参照されている場合は、最後の COMPUTEコマンドのみが適用されます。

ON句で SQL SELECT式または関数の参照を指定するには、その式または関数の参照を引用符で囲みます。列の名前および別名に引用符は必要ありません。

すべての COMPUTE定義をリスト表示するには、句を指定せずに COMPUTEを入力します。

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

Page 205: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COMPUTE

使用方法使用方法使用方法使用方法計算が実行されるためには、次の条件がすべて満たされている必要があります。

� OF句で参照している式、列または列の別名が 1つ以上、SELECTコマンドの中でも指定されている。

� ON句で参照している式、列または列の別名が、SELECTコマンドの中および最新のBREAKコマンドの中にも指定されている。

� ON句で ROWまたは REPORTを参照する場合は、最新の BREAKコマンドの中でもROWまたは REPORTを参照する。

すべての COMPUTE定義を取り消すには、CLEAR COMPUTESコマンドを使用します。

例例例例「clerk」、「analyst」および「salesman」の職種(JOB)別に給与(SAL)の小計を計算し、「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;

問合せ結果は、次のように出力されます。

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

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

Page 206: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COMPUTE

レポート上の 1,000未満の給与(SAL)の合計を計算するには、次のように入力します。

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 1750

経理部門(ACCOUNTING)および販売部門(SALES)の中での給与の平均と最高額を計算するには、次のように入力します。

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 BLAKE 2850 MARTIN 1250 JAMES 950 TURNER 1500 WARD 1250

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

Page 207: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COMPUTE

************** ----------Dept Average 1566.66667Dept Maximum 2850

9 rows selected.

DEPTNO10および 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;

問合せ結果は、次のように出力されます。

DEPTNO ENAME SAL---------- ---------- ---------- 10 CLARK 2450 10 KING 5000 10 MILLER 1300 ---------- 8750

20 SMITH 800 20 ADAMS 1100 20 FORD 3000 20 SCOTT 3000 20 JONES 2975 ---------- 10875

8 rows selected.

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

Page 208: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COMPUTE

ラベルを出力せずに、レポートの終わりに給与(SAL)の合計額のみが表示されるようにするには、次のように入力します。

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;

問合せ結果は、次のように出力されます。

DEPTNO ENAME SAL---------- ---------- ---------- 10 CLARK 2450 10 KING 5000 10 MILLER 1300 20 SMITH 800 20 ADAMS 1100 20 FORD 3000 20 SCOTT 3000 20 JONES 2975 ---------- 19625

8 rows selected.

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

Page 209: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CONNECT

CONNECT

用途用途用途用途指定したユーザー名で Oracleに接続します。

構文構文構文構文CONN[ECT] [[logon] [AS {SYSOPER|SYSDBA}]]

logonは、次の構文に従ってください。

username[/password][@connect_identifier]|/

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

username[/password]Oracleに接続するためのユーザー名およびパスワードを指定します。usernameおよび passwordを省略すると、SQL*Plusは入力を求めるプロンプトを表示します。usernameの入力を求めるプロンプトに対してスラッシュ(/)を入力するか、そのまま [Return]を押した場合、SQL*Plusは、デフォルトのログインを使用してユーザーをログインします(後述の「/」を参照)。

passwordのみを省略すると、passwordの入力を求めるプロンプトが表示されます。プロンプトを表示する場合、SQL*Plusが端末画面に passwordを表示することはありません。パスワードを変更する方法については、この章の「PASSWORD」コマンドを参照してください。

connect_identifierNet8接続識別子で構成されます。正確な構文は、Oracleインストールで使用する Net8通信プロトコルによって異なります。詳細は、ご使用のプロトコルに該当する Net8のマニュアルを参照するか、データベース管理者に問い合せてください。SQL*Plusは、データベース指定については、プロンプトを表示せず、その指定がないときはデフォルトのデータベースを使用します。

/オペレーティング・システム認証を使用するデフォルト・ログインを表します。デフォルト・ログインを使用する場合、connect_identifierは入力できません。通常、デフォルト・ログインでは、SQL*Plusはユーザー名 OPS$nameを使用してユーザーをログインさせようとします。nameは、ご使用のオペレーティング・システムのユーザー名です。オペレーティング・システム認証の詳細は、『Oracle8i管理者ガイド』を参照してください。

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

Page 210: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CONNECT

AS {SYSOPER|SYSDBA}AS句は、SYSOPERまたは SYSDBAシステム権限を付与されているユーザーに対して、特権付き接続を許可します。/でのデフォルト・ログインでも、特権付き接続を使用できます。システム権限の詳細は、『Oracle8i管理者ガイド』を参照してください。

使用方法使用方法使用方法使用方法CONNECTは、現行のトランザクションをデータベースに対してコミットし、現行のユーザー名を Oracleから切断し、指定されたユーザー名で再接続します。

アカウントの有効期限が切れたユーザーとしてログインまたは接続した場合は、接続の前にパスワードを変更するように求めるプロンプトが表示されます。

アカウントがロックされている場合は、メッセージが表示され、DBAがロックを解除するまで、そのアカウントへの(そのユーザーとしての)接続は許可されません。

ユーザー・アカウント管理の詳細は、『Oracle8i SQLリファレンス』の「CREATE」、「ALTER USER」および「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

現行ノードのインスタンスにデフォルトの特権ユーザーで接続するには、次のように入力します。

SQL> CONNECT / AS SYSDBA

注意注意注意注意 : 最後の 2つの例では、デフォルト・スキーマは SYSになります。

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

Page 211: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COPY

COPY

用途用途用途用途問合せから、ローカル・データベースまたはリモート・データベース内の表にデータをコピーします。COPYコマンドでは、次のデータ型をサポートしています。

CHARDATELONGNUMBERVARCHAR2

構文構文構文構文COPY {FROM database | TO database | FROM database TO database} {APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column, ...)] USING query

databaseでは、次の構文に従います。

username[/password]@connect_identifier

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

FROM databaseコピーするデータを含むデータベースを指定します。FROM句を省略した場合のデフォルトのソースは、SQL*Plusが接続されているデータベース(他のコマンドがアドレス指定するデータベース)です。FROM句を挿入する必要があります。

TO database宛先表を含むデータベースを指定します。TO句を省略した場合のデフォルトの宛先は、SQL*Plusが接続されているデータベース(他のコマンドがアドレス指定するデータベース)です。デフォルト以外の宛先データベースを指定するには、TO句を挿入する必要があります。

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

Page 212: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COPY

databaseOracleソースの username[/password] @connect_identifier、または COPY FROMまたは COPY TOで指定する接続先データベースを指定します。FROM句または TO句のいずれかのパスワードを指定しなかった場合、SQL*Plusはその入力を求めるプロンプトを表示します。このパスワードへの応答は表示されません。

ソースまたは接続先データベースの指定に、Net8接続文字列を構成するconnect_identifier句を含める必要があります。正確な構文は、Oracleインストールで使用する Net8通信プロトコルによって異なります。詳細は、ご使用のプロトコルに該当する Net8のマニュアルを参照するか、データベース管理者に問い合せてください。

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によってその既存の表が削除され、コピーしたデータを含む表で置換されます。

destination_table作成する表またはデータを追加する表を指定します。

(column, column, column, ...)destination_tableの中の列の名前を指定します。名前に小文字または空白が含まれている場合は、その名前を二重引用符で囲む必要があります。

列を指定する場合は、問合せで選択された列と同じ数の列を指定する必要があります。COPYによって destination_tableを作成する場合に、列を指定しないと、宛先表内でのコピーされた列の名前は、ソースでの名前と同じものになります。

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

Page 213: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COPY

USING queryCOPYによってコピーする行および列を決定する SQL問合せ(SELECTコマンド)を指定します。

使用方法使用方法使用方法使用方法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’

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

Page 214: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DEFINE

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の終了

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

Page 215: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DEFINE

ストアド・クエリーまたはコマンド・ファイルを実行するたびに、SQL*Plusは、variableを参照するそれぞれの置換変数(&variableまたは &&variableの書式)を、variableの値で置換します。SQL*Plusは、ユーザーが変数を UNDEFINEするまで、そのセッションでの変数値の入力を求めるプロンプトを表示しません。

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であることを示しています。

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

Page 216: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DEL

DEL

用途用途用途用途バッファの 1つ以上の行を削除します。

構文構文構文構文DEL [n|n m|n *|n LAST|*|* n|* LAST|LAST]

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

バッファ内のカレント行を削除するには、句を指定せずに、DELを入力します。

使用方法使用方法使用方法使用方法DELを実行すると、バッファの次の行がある場合は、その行がカレント行になります。DELを繰り返し入力することによって、複数の連続した行を削除できます。

例例例例SQLバッファに次の問合せが含まれているとします。

1 SELECT ENAME, DEPTNO2 FROM EMP3 WHERE JOB = 'SALESMAN'4* ORDER BY DEPTNO

n 行 nが削除されます。

n m 行 n~ mが削除されます。

n * 行 nからカレント行までが削除されます。

n LAST 行 nから最終行までが削除されます。

* カレント行が削除されます。

* n カレント行から行 nまでが削除されます。

* LAST カレント行から最終行までが削除されます。

LAST 最終行が削除されます。

注意注意注意注意 : DELは SQL*Plusコマンドで、DELETEは SQLコマンドです。SQLの DELETEコマンドの詳細は、『Oracle8i SQLリファレンス』を参照してください。

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

Page 217: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DEL

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

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

Page 218: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DESCRIBE

DESCRIBE

用途用途用途用途指定した表、ビューまたはシノニムの列定義をリスト表示するか、あるいは指定したファンクションまたはプロシージャの仕様をリスト表示します。

構文構文構文構文DESC[RIBE] {[schema.]object[@connect_identifier]}

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

schemaobjectが設定されているスキーマを指定します。schemaを省略した場合、SQL*Plusは、コマンド発行者自身の objectが指定されたとみなします。

object記述する表、ビュー、型、プロシージャ、ファンクション、パッケージまたはシノニムを指定します。

@connect_identifierobjectが存在しているデータベースに対応するデータベース・リンク名です。異なるスキーマ内の別の表にアクセスできる権限の詳細は、『Oracle8i SQLリファレンス』を参照してください。

使用方法使用方法使用方法使用方法表、ビュー、型およびシノニムの記述には、次の情報が含まれます。

� それぞれの列の名前

� それぞれの列について NULL値が許されるかどうか(NULLか NOT NULLか)

� 列のデータ型(NUMBER、CHAR、VARCHAR2(VARCHAR)、LONG、DATE、RAW、LONGRAWまたは ROWID)

� 列の精度、および数値列の場合は位取り(ある場合)

DESCRIBEを実行すると、VARCHAR列が VARCHAR2の型とともに戻されます。

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

Page 219: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DESCRIBE

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

SQL*Plusは、次の情報をリスト表示します。

PROCEDURE customer_lookupArgument Name Type In/Out Default?---------------------- -------- -------- ---------CUST_ID NUMBER INCUST_NAME VARCHAR2 OUT

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

Page 220: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DESCRIBE

プロシージャ 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

SQL*Plusは、次の情報をリスト表示します。

Name Null? Type------------------------------ -------- ------------STREET VARCHAR2(20)CITY VARCHAR2(20)

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

Page 221: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DESCRIBE

属性 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)

オブジェクト型 addr_varrayをオブジェクト型 ADDRESSの varrayとして作成し、記述するには、次のように入力します。

SQL> CREATE TYPE addr_varray AS VARRAY(10) OF ADDRESS; 2 /SQL> DESCRIBE addr_varray

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

Page 222: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DESCRIBE

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_emp

SQL*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 /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

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

Page 223: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DESCRIBE

SQL*Plusは、次の情報をリスト表示します。

Name Null? Type------------------------------ -------- ------------NUMERATOR NUMBERDENOMINATOR NUMBER

METHOD------MAP MEMBER FUNCTION RATIONAL_ORDER RETURNS NUMBER

オブジェクト emp_objectを記述し、SET DESCRIBEコマンドを使用し出力を書式設定するには、次のように入力します。

SQL> DESCRIBE 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 DESCRIBE DEPTH 2SQL> SET DESCRIBE INDENT ONSQL> SET DESCRIBE LINE OFF

オブジェクトの設定を表示するには、SHOWコマンドを使用して次のように入力します。

SQL> SHOW DESCRIBEdescribe DEPTH 2 LINENUM OFF INDENT ONSQL> DESCRIBE emp_object

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

Page 224: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DESCRIBE

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)

CREATE TYPEコマンドの使用方法については、『Oracle8i SQLリファレンス』を参照してください。

SET DESCRIBEコマンドおよび SHOW DESCRIBEコマンドの使用方法については、この章の「SET」コマンドおよび「SHOW」コマンドを参照してください。

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

Page 225: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DISCONNECT

DISCONNECT

用途用途用途用途データベースに対する保留中の変更をコミットし、カレント・ユーザーを Oracleからログアウトしますが、SQL*Plusを終了しません。

構文構文構文構文DISC[ONNECT]

使用方法使用方法使用方法使用方法ユーザーを Oracleからログアウトさせても、SQL*Plusの内部には残しておく場合に、データベースへのユーザー・アクセスを防止するには、コマンド・ファイルの内部でDISCONNECTを使用します。Oracleからログアウトしてホスト・コンピュータのオペレーティング・システムに制御を戻すには、EXITまたは QUITを使用します。

例例例例次に示すとおり、コマンド・ファイルを CONNECTコマンドで開始し、DISCONNECTコマンドで終了することができます。

SQL> GET MYFILE 1 CONNECT ... . . . . 15* DISCONNECT

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

Page 226: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

EDIT

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変数を参照してください。

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

Page 227: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

EDIT

ファイル名の指定がなく、バッファが空の場合は、EDITからエラー・メッセージが戻されます。

編集セッションを終了し、SQL*Plusに戻るには、テキスト・エディタの通常の終了方法に従って編集セッションを終了します。エディタを終了するとき、SQL*Plusはファイル名をバッファにロードします。

例例例例ホスト・オペレーティング・システムのテキスト・エディタを使用して、拡張子 SQLが付いたファイル REPORTを編集するには、次のように入力します。

SQL> EDIT REPORT

注意注意注意注意 : デフォルトのファイル名 AFIEDT.BUFは、一部のオペレーティング・システムでは名前が異なる場合があります。

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

Page 228: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

EXECUTE

EXECUTE

用途用途用途用途単一の PL/SQL文を実行します。EXECUTEコマンドは、ストアド・プロシージャを参照する PL/SQL文を実行する場合に便利です。PL/SQLの詳細は、『Oracle8i 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」コマンドを参照してください。

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

Page 229: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

EXIT

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が戻され、処理が終了します。

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

Page 230: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

EXIT

使用方法使用方法使用方法使用方法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は、予約語ではありません。

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

Page 231: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

GET

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」コマンドを参照してください。

例例例例名前が YEARENDRPTで拡張子が SQLのファイルをバッファにロードするには、次のように入力します。

SQL> GET YEARENDRPT

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

Page 232: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

HELP

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

また、SQL*Plusコマンドのリストを 1列に表示するには、次のように入力します。

SQL> HELP TOPICS

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

Page 233: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

HOST

HOST

用途用途用途用途SQL*Plusを終了せずに、ホスト・オペレーティング・システム・コマンドを実行します。

構文構文構文構文HO[ST] [command]

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

commandホスト・オペレーティング・システムのコマンドを指定します。

オペレーティング・システムのプロンプトを表示するには、commandを指定しないで HOSTのみを入力します。複数のオペレーティング・システムのコマンドを入力できます。SQL*Plusに戻る方法については、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

使用方法使用方法使用方法使用方法一部のオペレーティング・システムでは、HOSTのかわりに $(VSM)、!(UNIX)またはその他の文字を使用できます。詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。

ご使用のオペレーティング・システムによっては、HOSTコマンドにアクセスできない場合があります。詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照するか、または DBAに問い合せてください。

注意注意注意注意 : SQL*Plusセッションから HOSTコマンドを使用して入力されたオペレーティング・システム・コマンドは、現行の SQL*Plusセッションでは有効になりません。たとえば、オペレーティング・システムの環境変数の設定は、現行の SQL*Plusセッションでは有効にならず、次に SQL*Plusセッションを開始したときにのみ有効になります。

HOSTコマンドは、使用禁止にすることができます。HOSTコマンドを使用禁止にする方法の詳細は、付録 E「セキュリティ」を参照してください。

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

Page 234: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

HOST

SQL*Plusは、HOSTコマンドが発行される前に SQLTERMINATOR(デフォルトではセミコロン)を削除します。これに対処するには、SQLTERMINATORをもう 1つ追加します。SQLTERMINATORの詳細は、この章の「SET」コマンドの SQLTERMINATOR変数を参照してください。

例例例例オペレーティング・システムのコマンド ls *.sqlを実行するには、次のように入力します。

SQL> HOST ls *.sql

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

Page 235: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

INPUT

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

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

Page 236: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

INPUT

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

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

Page 237: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

LIST

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 最終行がリスト表示されます。

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

Page 238: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

LIST

2行目のみを表示するには、次のように入力します。

SQL> LIST 2

次のように表示されます。

2* FROM EMP

カレント行(この時点では行 2)から最終行までをリスト表示するには、次のように入力します。

SQL> LIST * LAST

次のように表示されます。

2 FROM EMP 3 WHERE JOB = 'CLERK' 4* ORDER BY DEPTNO

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

Page 239: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PASSWORD

PASSWORD

用途用途用途用途入力デバイスにパスワードをエコー表示させないで、パスワードを変更できるようにします。

構文構文構文構文PASSW[ORD] [username]

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

usernameユーザーを指定します。ユーザー名を指定しないと、usernameはデフォルトで現在のユーザーになります。

使用方法使用方法使用方法使用方法他のユーザーのパスワードを変更するには、適切な権限が付与されている必要があります。

パスワード変更の詳細は、この章の「CONNECT」コマンドを参照してください。

例例例例scott/tigerでログインしていて、パスワードを tigertigerに変更する場合は、次のようにします。

SQL> passwChanging password for scottOld password: tigerNew password: tigertigerRetype new password: tigertigerPassword changed

DBAとしてログインしていて、ユーザー usera(現在は passa)のパスワードを passuseraに変更するには、次のようにします。

SQL> passw useraChanging password for useraNew password: passuseraRetype new password: passuseraPassword changed

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

Page 240: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PAUSE

PAUSE

用途用途用途用途空白行を 1行と、それに続いてテキストを含む行を 1行表示し、ユーザーが [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 ...

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

Page 241: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PRINT

PRINT

用途用途用途用途バインド変数の現在の値を表示します。バインド変数の詳細は、『Oracle8i 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

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

Page 242: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PROMPT

PROMPT

用途用途用途用途指定したメッセージまたは空白行を、ユーザーの画面に送ります。

構文構文構文構文PRO[MPT] [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:>

プロンプト DEPT:>が表示されたら、部門番号を入力できます。デフォルトでは、SQL*Plusは置換の前後で& NEWDEPTを含む行をリスト表示します。また、DEPT:>のプロンプトで入力された番号に対応する部門名を表示します。

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

Page 243: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

RECOVER

RECOVER

用途用途用途用途1つ以上の表領域、1つ以上のデータ・ファイル、またはデータベース全体に対しメディア・リカバリを実行します。RECOVERコマンドの詳細は、『Oracle8i管理者ガイド』、『Oracle8i SQLリファレンス』および『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

構文構文構文構文RECOVER {general | managed} [parallel]

general句の構文は次のとおりです。

[AUTOMATIC] [FROM location] {[STANDBY] DATABASE [ [UNTIL {CANCEL | CHANGE integer | TIME date} | USING BACKUP CONTROLFILE]...] | STANDBY {DATAFILE datafilename [, DATAFILE datafilename...] | TABLESPACE tablespace [, TABLESPACE tablespace ...]} UNTIL [CONSISTENT] [WITH] CONTROLFILE | TABLESPACE tablespace [, tablespace ...] | DATAFILE datafilename [, datafilename ...] | LOGFILE filename | CONTINUE [DEFAULT] | CANCEL}

managed句の構文は次のとおりです。

MANAGED STANDBY DATABASE {TIMEOUT integer | CANCEL [IMMEDIATE]}

parallel句の構文は次のとおりです。

PARALLEL [integer] | NOPARALLEL

項および句項および句項および句項および句項および句の詳細は、次の説明を参照してください。

AUTOMATICリカバリ操作を続ける必要のある次のアーカイブ REDOログ・ファイル名を自動的に生成します。Oracleは、ターゲットの REDOログ・ファイル名を生成するために、LOG_ARCHIVE_DEST(または LOG_ARCHIVE_DEST_1)パラメータおよび LOG_ARCHIVE_FORMATパラメータ(またはそのデフォルト)を使用します。そのファイルが存在する場合、REDOはそのファイルが適用されるように含めます。ファイルが存在しない場合、SQL*Plusは、案として生成したファイル名をプロンプトに表示します。

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

Page 244: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

RECOVER

AUTOMATICまたは LOGFILEのどちらも指定しなかった場合、SQL*Plusは案として生成したファイル名をプロンプトに表示します。生成されたファイル名を指定するか、または完全に修飾されたファイル名に置き換えます。アーカイブされたファイル名が、Oracleが生成したものと異なっていることがわかっている場合は、LOGFILE句を使用して時間を削減できます。

FROM locationアーカイブ REDOログ・ファイル・グループが読み込まれた位置を指定します。位置の値は、オペレーティング・システムの表記規則に従って完全に指定されたファイル位置である必要があります。このパラメータを省略すると、SQL*Plusは、アーカイブ REDOログ・ファイル・グループが初期化パラメータ LOG_ARCHIVE_DESTまたは LOG_ARCHIVE_DEST_1で指定された位置に存在するとみなします。

STANDBY制御ファイルおよびプライマリ・データベースからコピーしたアーカイブREDOログ・ファイルを使用して、スタンバイ・データベースをリカバリします。スタンバイ・データベースは、マウントされているがオープンされていない状態である必要があります。

DATABASEデータベース全体をリカバリします。

UNTIL CANCEL不完全で、取消ベースのリカバリを指定します。アーカイブ REDOログ・ファイルの案として生成されたファイル名をプロンプトに表示することによって、リカバリが進められます。また、ファイル名のかわりに CANCELを指定すると、リカバリは完了します。

UNTIL CHANGE integer不完全で、変更ベースのリカバリを指定します。integerは、リカバリする最新の変更に続く SCN(System Change Number)です。たとえば、データベースを 9番の SCNでトランザクションにリストアする場合は、UNTIL CHANGE 10と指定します。

UNTIL TIME date不完全で、時間ベースのリカバリを指定します。一重引用符を使用して、次の形式で指定します。

'YYYY-MM-DD:HH24:MI:SS'

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

Page 245: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

RECOVER

USING BACKUP CONTROLFILE現在の制御ファイルのかわりに使用される制御ファイルのバックアップを指定します。

STANDBY {[DATAFILE datafilename [, DATAFILE datafilename ...]}スタンバイ・データベース内の損失または破損したデータ・ファイルを、プライマリ・データベースおよび制御ファイルからコピーしたアーカイブ REDOログ・ファイルを使用して再構築します。

STANDBY {TABLESPACE tablespace [, TABLESPACE tablespace ...]}スタンバイ・データベース内の損失または破損した表領域を、プライマリ・データベースおよび制御ファイルからコピーしたアーカイブ REDOログ・ファイルを使用して再構築します。

UNTIL [CONSISTENT] [WITH] CONTROLFILE古いスタンバイ・データ・ファイルまたは表領域のリカバリは、現行のスタンバイ・データベースの制御ファイルを使用するように指定します。

TABLESPACE tablespace特定の表領域をリカバリします。tablespaceは、現行データベースの表領域の名前です。1文で、16の表領域をリカバリできます。

DATAFILE datafilename特定のデータ・ファイルをリカバリします。データ・ファイルのすべての番号を指定できます。

LOGFILE filename指定した REDOログ・ファイルを適用して、メディア・リカバリを続行します。

CONTINUE [DEFAULT]スレッドを無効にするために中断した後、マルチインスタンス・リカバリを続行します。

ログ・ファイルを指定していない場合、Oracleが自動的に生成した REDOログ・ファイルを使用してリカバリを続行します。このオプションは、Oracleがファイル名に対してプロンプトを表示しないことを除いて、AUTOMATICを指定することと同じです。

CANCEL取消しベースのリカバリを中断します。

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

Page 246: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

RECOVER

MANAGED STANDBY DATABASE継続スタンバイ・リカバリ・モードを指定します。このモードでは、スタンバイ・データベースは、スタンバイ・データベースのアーキテクチャ全体の、アクティブ・コンポーネントとみなされます。プライマリ・データベースは、REDOログ・ファイルをスタンバイ・サイトに積極的にアーカイブします。これらのアーカイブ REDOログがスタンバイ・サイトにアーカイブされると、管理スタンバイ・リカバリ操作で使用可能になります。継続スタンバイ・リカバリは、メディア・リカバリに制限されています。

この句のパラメータの詳細は、『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

TIMEOUT integer継続リカバリ操作までの待機時間を分単位で指定します。リカバリ・プロセスは、指定された時間、要求されたアーカイブ REDOログがスタンバイ・データベースへの書込みが可能になるのを待機します。REDOログ・ファイルがその時間内に書込み可能にならない場合、リカバリ・プロセスは、エラー・メッセージを表示して終了します。この場合、継続スタンバイ・リカバリ・モードに戻るための文を再発行できます。

この句を指定しない場合、RECOVER CANCEL句とともに文を再発行するか、インスタンスを停止するか、またはインスタンス障害が発生するまで、データベースは継続スタンバイ・リカバリ・モードのままです。

CANCEL [IMMEDIATE]すべての REDOログを現行のアーカイブ REDOファイルに適用した後、または次の REDOログ・ファイルが読み込まれた後で、継続リカバリ操作を終了します。

PARALLEL [integer]実行中のすべてのインスタンスで使用可能な CPUの数に等しい並列度を、PARALLEL_THREADS_PER_CPU初期化パラメータの値に合わせて選択します。

PARALLELキーワードは、RECOVERY_PARALLELISM初期化パラメータを上書きします。PARALLELキーワードの詳細は、『Oracle8i Parallel Server概要』を参照してください。

並列度は、パラレル操作で使用するパラレル・スレッドの数を整数で指定します。各パラレル・スレッドには、1つまたは 2つのパラレル実行プロセスを使用できます。通常、並列度の最適値は Oracleによって計算されるため、指定する必要はありません。

NOPARALLELシリアルでの実行を指定します。これがデフォルトです。

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

Page 247: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

RECOVER

使用方法使用方法使用方法使用方法SYSOPERまたは SYSDBAで Oracleに接続している必要があります。

マルチスレッド・サーバーを経由して接続した場合、RECOVERコマンドを使用できません。

データベース全体(すべての表領域)でメディア・リカバリを実行するには、EXCLUSIVEがマウントされていてクローズ状態である必要があります。

表領域でメディア・リカバリを実行するには、データベースはマウントされていてオープン状態である必要があります。また、表領域はオフラインである必要があります。

データ・ファイルでメディア・リカバリを実行するには、データベースがオープンしていて破損したデータ・ファイルのオフライン(そのファイルが SYSTEM表領域の一部でない限り)でマウントされた状態である必要があります。

RECOVERコマンドを使用する前に、以前のバックアップから破損したデータ・ファイルのコピーをリストアしておく必要があります。バックアップが作成されたとき以降の、すべてのアーカイブ REDOログ・ファイルおよびオンライン REDOログ・ファイルにアクセスできることを確認してください。

リカバリ時に他のログ・ファイルが必要な場合、必要とされるファイル名が案として生成されます。名前は、初期化パラメータ LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_FORMATで指定された値から導出されます。必要に応じて、LOG_ARCHIVE_DESTで指定した宛先に、リカバリに必要なアーカイブ REDOログ・ファイルのコピーをリストアします。SETLOGSOURCEコマンドで LOGSOURCE変数を設定することによって初期化パラメータを上書きできます。

リカバリ時に、[Return]を押すことによって提案されたログ名を指定できます。ログ名のかわりに CANCELを入力することによってリカバリを取消しできます。また、プロンプトを進めないでファイルを自動選択するにはプロンプトで AUTOを入力します。

自動リカバリ(SET AUTORECOVERY ON)を使用可能にする場合は、ファイル名をプロンプトに表示させないでリカバリを進めます。状態を示すメッセージは、それぞれのログ・ファイルが適用されているときに表示されます。

通常のメディア・リカバリが実行されている場合、完了した状態で戻ってきます。

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

Page 248: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

RECOVER

例例例例データベース全体をリカバリするには、次のように入力します。

SQL> RECOVER DATABASE

指定した時間までにデータベースをリカバリするには、次のように入力します。

SQL> RECOVER DATABASE UNTIL TIME 23-NOV-99:04:32:00

データベースから 2つの表領域 ts_oneおよび ts_twoをリカバリするには、次のように入力します。

SQL> RECOVER TABLESPACE ts_one, ts_two

データベースからデータ・ファイル data1.dbをリカバリするには、次のように入力します。

SQL> RECOVER DATAFILE 'data1.db'

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

Page 249: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

REMARK

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

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

Page 250: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

REPFOOTER

REPFOOTER

用途用途用途用途各レポートの下部に指定のレポート・フッターを配置し書式設定するか、または現行のREPFOOTER定義をリスト表示します。

構文構文構文構文REPF[OOTER] [PAGE] [printspec [text|variable] ...] [ON|OFF]

項および句項および句項および句項および句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: 1ENAME SAL---------- ----------JONES 2975BLAKE 2850CLARK 2450

注意注意注意注意 : SET EMBEDDEDが ONの場合、レポート・フッターは抑止されます。

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

Page 251: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

REPFOOTER

SCOTT 3000KING 5000FORD 3000 Page: 2 END EMPLOYEE LISTING REPORT

6 rows selected.

レポート・フッターの定義を変更しないで、レポート・フッターを抑止するには、次のように入力します。

SQL> REPFOOTER OFF

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

Page 252: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

REPHEADER

REPHEADER

用途用途用途用途各レポートの上部に指定のレポート・ヘッダーを配置し書式設定するか、または現行のREPHEADER定義をリスト表示します。

構文構文構文構文REPH[EADER] [PAGE] [printspec [text|variable] ...] [ON|OFF]

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リリース番号)

� SQL.CODE(現行のエラー・コード)

� SQL.USER(現行のユーザー名)

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

Page 253: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

REPHEADER

これらの値の 1つを出力するには、適切な変数をレポート・ヘッダーまたはレポート・フッターの中で参照します。FORMAT句で variableの形式を設定できます。

OFF定義に影響を与えないで、レポート・ヘッダーまたはレポート・フッターをOFF(表示を抑止)にします。

COL nカレント行の列 nまでインデントします(列 nを過ぎている場合は、後退します)。ここでいう「列」とは、印刷位置のことで、表の列ではありません。

S[KIP][n]新規行の先頭まで n回スキップします。nを省略すると、1回スキップします。nに 0(ゼロ)を入力すると、カレント行の先頭まで戻ります。

TABnn列分前方に(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句を参照してください。

書式モデルのデータ型が指定のデータ項目のデータ型と一致しない場合、FORMAT句はその項目には影響しません。

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

Page 254: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

REPHEADER

指定のデータ項目の前に適切な 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: 2ENAME SAL---------- ----------JONES 2975BLAKE 2850CLARK 2450SCOTT 3000KING 5000FORD 3000

6 rows selected.

レポート・ヘッダーの定義を変更しないで、レポート・ヘッダーを抑止するには、次のように入力します。

SQL> REPHEADER OFF

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

Page 255: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

RUN

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

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

Page 256: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SAVE

SAVE

用途用途用途用途SQLバッファの内容を、ホスト・オペレーティング・システム・ファイル(コマンド・ファイル)に保存します。

構文構文構文構文SAV[E] file_name[.ext] [CRE[ATE]|REP[LACE]|APP[END]]

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

file_name[.ext]バッファ内容を保存するコマンド・ファイルを指定します。

CREATE指定された名前で、ファイルを新規作成します。これがデフォルトの動作です。

REP[LACE]既存のファイル内容が置換されます。ファイルが存在しない場合、REPLACEはファイルを作成します。

APP[END]指定したファイルの終わりに、バッファの内容が追加されます。

使用方法使用方法使用方法使用方法拡張子を指定しなかった場合、SQL*Plusは、デフォルトのコマンド・ファイル拡張子(通常は SQL)が指定されたものとみなします。このデフォルト拡張子の変更については、この章の「SET」コマンドの SUFFIX変数を参照してください。

SAVEコマンド句(CREATE、REPLACEまたは APPEND)と同じ名前でファイルを保存するには、ファイル拡張子を指定する必要があります。

SAVEを使用して SQLバッファの内容を保存すると、スラッシュ(/)を含む 1行がファイルの終わりに追加されます。

指定するファイル名が fileという語の場合は、名前を一重引用符で囲む必要があります。

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

Page 257: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SAVE

例例例例名前が DEPTSALRPTで、拡張子が SQLのファイルにバッファ内容を保存するには、次のように入力します。

SQL> SAVE DEPTSALRPT

名前が DEPTSALRPTで、拡張子が OLDのファイルにバッファ内容を保存するには、次のように入力します。

SQL> SAVE DEPTSALRPT.OLD

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

Page 258: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

SET

用途用途用途用途現行セッション用に SQL*Plus環境を変更するために、次のようなシステム変数を設定します。

� NUMBER型データの表示幅

� LONG型データの表示幅

� 列ヘッダーの出力の有効または無効

� 1ページあたりの行数

構文構文構文構文SET system_variable value

system_variableおよび valueは、次のいずれかの句を表します。

APPI[NFO]{ON|OFF|text}ARRAY[SIZE] {15|n}AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}AUTOP[RINT] {ON|OFF}AUTORECOVERY [ON|OFF]AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]BLO[CKTERMINATOR] {.|c}CMDS[EP] {;|c|ON|OFF}COLSEP {_|text}COM[PATIBILITY]{V7|V8|NATIVE}CON[CAT] {.|c|ON|OFF}COPYC[OMMIT] {0|n}COPYTYPECHECK {ON|OFF}DEF[INE] {&|c|ON|OFF}DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]ECHO {ON|OFF}EDITF[ILE] file_name[.ext]EMB[EDDED] {ON|OFF}ESC[APE] {\|c|ON|OFF}FEED[BACK] {6|n|ON|OFF}FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}FLU[SH] {ON|OFF}HEA[DING] {ON|OFF}HEADS[EP] {||c|ON|OFF}INSTANCE[instance_path|LOCAL]LIN[ESIZE] {80|n}LOBOF[FSET] {n|1}LOGSOURCE [pathname]

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

Page 259: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

LONG {80|n}LONGC[HUNKSIZE] {80|n}MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]NEWP[AGE] {1|n|NONE}NULL textNUMF[ORMAT] formatNUM[WIDTH] {10|n}PAGES[IZE] {24|n}PAU[SE] {ON|OFF|text}RECSEP {WR[APPED]|EA[CH]|OFF}RECSEPCHAR {_|c}SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]}]SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}SHOW[MODE] {ON|OFF}SQLBL[ANKLINES] {ON|OFF}SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}SQLCO[NTINUE] {>|text}SQLN[UMBER] {ON|OFF}SQLPRE[FIX] {#|c}SQLP[ROMPT] {SQL>|text}SQLT[ERMINATOR] {;|c|ON|OFF}SUF[FIX] {SQL|text}TAB {ON|OFF}TERM[OUT] {ON|OFF}TI[ME] {ON|OFF}TIMI[NG] {ON|OFF}TRIM[OUT] {ON|OFF}TRIMS[POOL] {ON|OFF}UND[ERLINE] {-|c|ON|OFF}VER[IFY] {ON|OFF}WRA[P] {ON|OFF}

項および句項および句項および句項および句項、句またはシステム変数の詳細は、次の説明を参照してください。

APPI[NFO]{ON|OFF|text}DBMS_APPLICATION_INFOパッケージを介してコマンド・ファイルが自動登録されるように設定します。この設定によって、各コマンド・ファイルのパフォーマンスおよびリソースの使用状況を DBAが監視できます。V$SESSIONおよび V$SQLAREA仮想表のMODULE列には、登録名が表示されます。DBMS_APPLICATION_INFO.READ_MODULEプロシージャを使用して、登録名を読み込むこともできます。

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

Page 260: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

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]{ON|OFF|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は、Oracle8iデータベース・サーバー製品の一部です。

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

Page 261: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

� n個の INSERT、UPDATE、DELETEコマンドまたは PL/SQLブロック

� 1回のコミット

� 1回のロールバック

� 1個の SET AUTOCOMMIT

AUTOP[RINT] {ON|OFF}バインド変数の自動出力を設定します。ONまたは OFFによって、SQL*Plusがバインド変数(正常に実行された PL/SQLブロックで参照されているか、または EXECUTEコマンドで使用されているもの)を自動的に表示するかどうかを制御します。バインド変数の表示の詳細は、この章の「PRINT」コマンドを参照してください。

AUTORECOVERY [ON|OFF]ONを指定すると、リカバリ時に必要なアーカイブ REDOログ・ファイルのデフォルトのファイル名を自動的に適用するために RECOVERコマンドが設定されます。標準的な名前で一般的な位置に必要なファイルが提供されるので、対話操作は必要ありません。AUTORECOVERYが ONの場合に使用されるファイル名は、初期化パラメータ LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_FORMATの値から導出されます。

OFFを指定すると、デフォルト・オプションとして、手動でファイル名を入力するか、または自動生成されたデフォルトのファイル名を指定するかを選択できます。

AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]正常に実行された SQL DML文(SELECT、INSERT、UPDATEまたはDELETE)のレポートが表示されます。レポートには、実行統計および問合せ実行パスを含めることができます。

OFFを指定すると、トレース・レポートは表示されません。ONを指定すると、トレース・レポートが表示されます。TRACEONLYを指定すると、トレース・レポートは表示されますが、問合せデータは、存在しても出力されません。EXPLAINを指定すると、EXPLAIN PLANが実行されて、問合せ実行パスが表示されます。STATISTICSを指定すると、SQL文統計が表示されます。EXPLAIN PLANの詳細は、『Oracle8i SQLリファレンス』を参照してください。

オプションを明示的に指定せずに ONまたは TRACEONLYを使用すると、デフォルトで EXPLAIN STATISTICSが使用されます。

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

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

Page 262: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

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|ON|OFF}cに、1行に入力する複数の SQL*Plusコマンドを区切るために使用する、英数字以外の文字を設定します。ONまたは OFFによって、1行に複数のコマンドを入力できるかどうかを制御します。ONを指定すると、コマンド・セパレータ文字は自動的にセミコロン(;)に設定されます。

COLSEP {_|text}SELECTによって選択された列の間に出力するテキストを設定します。COLSEP変数に空白または句読記号が含まれている場合は、一重引用符でテキストを囲む必要があります。textのデフォルト値は単一の空白です。

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

Page 263: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

複数行を含む行の場合、異なる行を開始する列の間には列セパレータは出力されません。列セパレータは、BREAK...SKIP nによって生成される空白行には表示されず、レコード・セパレータが列セパレータで上書きされることもありません。詳細は、この章の SET RECSEPを参照してください。

COM[PATIBILITY]{V7|V8|NATIVE}現行の接続先である Oracleのバージョンを指定します。COMPATIBILITYは、Oracle7の場合は V7に、Oracle8および Oracle8iの場合は V8に設定します。データベースに設定を判断させる(たとえば、Oracle8または Oracle8iに接続されている場合に、デフォルトで V8に設定する)には、COMPATIBILITYをNATIVEに設定します。COMPATIBILITYは、接続先の Oracleのバージョンに正しく設定する必要があります。この設定に誤りがあると、SQLコマンドを実行できません。

CON[CAT] {.|c|ON|OFF}通常、SQL*Plusが置換変数名の一部として解釈する文字を、変数の直後に続けて指定する場合、置換変数の指定を終了させるために使用できる文字を設定します。CONCATを ONに切り替えると、SQL*Plusは CONCATの値をピリオドにリセットします。

COPYC[OMMIT] {0|n}COPYコマンドで、データベースに対する変更をコミットするときの基準となるバッチの数を制御します。COPYでは、n個の行バッチがコピーされるたびに、宛先データベースへの行がコミットされます。有効な値は 0~ 5000です。ARRAYSIZE変数を使用して、バッチのサイズを設定できます。COPYCOMMITを 0に設定すると、COPYではコピー操作が終わったときにのみコミットを実行します。

COPYTYPECHECK {ON|OFF}COPYコマンドを使用して表にデータを挿入または追加する間は、データ型の比較が抑止されます。このため、CHARを DB2 DATEにコピーする必要がある場合、DB2へのコピーが容易になります。

注意注意注意注意 : Oracle8iに接続している場合でも、COMPATIBILITYに V7を設定することができます。これによって、Oracle8iに対して Oracle7 SQLを実行できます。

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

Page 264: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

DEF[INE] {&|c|ON|OFF}cには、接頭辞の置換変数に使用される文字を設定します。ONまたは OFFによって、SQL*Plusがコマンドをスキャンして置換変数を検索し、その値に置換するかどうかを指定します。ONを設定すると、cの値を最近使用された文字ではなくデフォルトの「&」に戻します。OFFを設定すると、SCAN変数の設定がオーバーライドされます。SCAN変数の詳細は、付録 Fの「SET SCAN」コマンドを参照してください。

DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]オブジェクトを再帰的に記述できるレベルの深さを設定します。DEPTH句の有効範囲は、1~ 50です。SET DESCRIBE DEPTH ALLを設定する場合、深さは最大レベルの 50に設定します。1つのオブジェクトに複数のオブジェクト型が含まれている場合は、行番号および属性や列のインデントを表示することもできます。SET LINESIZEコマンドを使用して、表示されるデータ幅を制御します。

オブジェクトの記述については、この章の「DESCRIBE」を参照してください。

ECHO {ON|OFF}STARTコマンドの実行時に、コマンド・ファイル内の各コマンドの実行時にそのコマンドをリスト表示するかどうかを制御します。ONを指定すると、コマンドがリスト表示されます。OFFを指定すると、リスト表示が抑止されます。

EDITF[ILE] file_name[.ext]EDITコマンド用のデフォルトのファイル名を設定します。EDITコマンドの詳細は、この章の「EDIT」コマンドを参照してください。

パスまたはファイル拡張子(あるいはその両方)を挿入できます。デフォルトの拡張子の変更については、このコマンドの SUFFIX変数を参照してください。デフォルトのファイル名およびファイル名の最大長は、オペレーティング・システムによって異なります。

EMB[EDDED] {ON|OFF}ページのどこから各レポートが始まるかを制御します。OFFを指定すると、各レポートは新しいページの一番上から始まります。ONを指定すると、新しいページのどこからでもレポートを開始できます。直前のレポートが終了した直後に次のレポートを出力するには、EMBEDDEDを ONに設定します。

ESC[APE] {\|c|ON|OFF}エスケープ文字として入力する文字を定義します。OFFを指定すると、エスケープ文字の定義が解除されます。ONを指定すると、エスケープ文字が使用可能になります。ONを指定すると、cの値がデフォルトの「\」に戻ります。

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

Page 265: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

置換文字(SET DEFINEで指定された文字)の前にエスケープ文字を指定することによって、SQL*Plusにその置換文字を変数置換のための要求としてでなく、通常の文字として処理するように指示できます。

FEED[BACK] {6|n|ON|OFF}問合せによってレコードを n個以上選択する場合に、問合せから戻されるレコードの数を表示します。ONまたは OFFによって、この表示を 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] {ON|OFF}出力をユーザーの表示デバイスに、いつ送るかを制御します。OFFを指定すると、ホスト・オペレーティング・システムは出力をバッファに格納できます。ONを指定すると、バッファリングは使用禁止になります。

OFFは、コマンド・ファイルを非対話形式で実行する場合(コマンド・ファイルの実行が完了するまで出力またはプロンプト、あるいはその両方を表示させる必要がない場合)のみ、使用します。FLUSH OFFを使用すると、プログラム I/Oの量が減り、パフォーマンスが向上する場合があります。

HEA[DING] {ON|OFF}レポートへの列ヘッダーの出力を制御します。ONを指定すると、列ヘッダーがレポートに出力されます。OFFを指定すると、列ヘッダーの出力が抑止されます。

SET HEADING OFFコマンドは、表示される列幅に影響しません。そのコマンドは、列ヘッダーの出力を抑止するのみです。

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

Page 266: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

HEADS[EP] {||c|ON|OFF}ヘッダーのセパレータ文字として入力する文字を定義します。ヘッダー区切り文字に、英数字または空白は使用できません。ヘッダー区切り文字を、COLUMNコマンド、旧形式の BTITLEおよび TTITLEの中で使用して、列ヘッダーまたはタイトルを複数の行に分割できます。ONまたは OFFによって、このヘッダー分割を 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インストレーション・ガイドおよび管理者リファレンスを参照してください。

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

Page 267: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

LOBOF[FSET] {n|1}CLOBおよび NCLOBデータを取り出して表示する開始位置を設定します。

LOGSOURCE [pathname]リカバリ中に取り出されたアーカイブ・ログの位置を指定します。デフォルト値は、Oracle初期化パラメータ・ファイル init.oraの LOG_ARCHIVE_DEST初期化パラメータで設定されます。パス名を指定せずに SET LOGSOURCEコマンドを使用すると、デフォルト位置がリストアされます。

LONG {80|n}LONG、CLOBおよび NCLOB値を表示する場合、および LONG値をコピーする場合の最大幅を(バイト単位で)設定します。nの最大値は、2GBです。

LONGC[HUNKSIZE] {80|n}SQL*Plusが LONG、CLOBまたは NCLOB値を取り出すときの増分値のサイズを(バイト単位で)設定します。

MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]

HTML3.2のマークアップ・テキストを出力します。SET MARKUPには、SQLPLUS -MARKUPと同じオプションがあり、同じ動作をします。詳細は、第 7章の「MARKUP」を参照してください。使用方法の詳細は、8-115ページの「MARKUP」および第 4章の「Webレポートの作成」を参照してください。

NEWP[AGE] {1|n|NONE}各ページの最上部から上部タイトルまでの間に入れる空白行の数を設定します。値 0を指定すると、(最初のページも含めて)各ページの開始位置に改ページ文字が設定され、ほとんどの端末で画面がクリアされます。NEWPAGEを NONEに設定した場合、SQL*Plusはレポートのページ間で空白行または改ページ文字を出力しません。

NULL textSQL SELECTコマンドの実行結果の中で NULL値を表すテキストを設定します。指定の列の NULL変数の設定を上書きするには、COLUMNコマンドのNULL句を使用します。

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

Page 268: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

NUMF[ORMAT] format数値を表示するためのデフォルトの書式を設定します。formatに、数値書式を入力します。数値書式の詳細は、この章の「COLUMN」コマンドの FORMAT句を参照してください。

NUM[WIDTH] {10|n}数値を表示するためのデフォルトの幅を設定します。数値書式の詳細は、この章の「COLUMN」コマンドの FORMAT句を参照してください。

PAGES[IZE] {24|n}各ページの行数を設定します。PAGESIZEを 0に設定すると、ヘッダー、改ページ、タイトル、初期空白行およびその他の書式設定情報をすべて抑止できます。

PAU[SE] {ON|OFF|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はレコード・セパレータを出力しません。

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

Page 269: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

SERVEROUT[PUT] {ON|OFF} [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未満である必要があります。

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] {ON|OFF}SETを使用して、SQL*Plusシステム変数の設定を変更したときに、新旧の設定値を SQL*Plusでリスト表示するかどうかを制御します。ONを指定すると、設定値がリスト表示されます。OFFを指定すると、リスト表示が抑止されます。SHOWMODE ONの動作は、すでに廃止された SHOWMODE BOTHと同じです。

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

Page 270: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

SQLBL[ANKLINES] {ON|OFF}SQL*Plusが SQLコマンド内の空白行を許可するかどうかを制御します。ONを指定すると、空白行および新しい行は SQLコマンドの一部とみなされます。OFFを指定すると、デフォルトで SQLコマンド内に空白行または新しい行を許可しません。

SQLコマンドのエントリを SQLコマンドを実行しないで停止するには、BLOCKTERMINATORを入力します。SQLコマンドのエントリを停止して、SQL文を実行するには、SQLTERMINATORを入力します。

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] {ON|OFF}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コマンド・プロンプトを設定します。

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

Page 271: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

SQLT[ERMINATOR] {;|c|ON|OFF}cには、SQLコマンドの終了および実行に使用する文字を設定します。英数字または空白は使用できません。OFFは、SQL*Plusでコマンド終了記号が認識されないことを表します。SQLコマンドを終了するときは、空白行を入力します。SQLBLANKLINESを ONに設定すると、SQLコマンドの終了にはBLOCKTERMINATORを使用する必要があります。ONを設定すると、終了記号はデフォルトのセミコロン(;)にリセットされます。

SUF[FIX] {SQL|text}コマンド・ファイルを参照するコマンドの中で、SQL*Plusが使用するデフォルトのファイル拡張子を設定します。SUFFIXでは、スプール・ファイルの拡張子は制御できません。

TAB {ON|OFF}SQL*Plusが空白をどのように端末に出力するかを指定します。OFFを指定すると、空白は空白として出力されます。ONを指定すると、TAB文字が使用されます。TABの設定間隔は 8文字です。TABのデフォルト値は、システムによって異なります。

TERM[OUT] {ON|OFF}コマンド・ファイルから実行するコマンドによって生成される出力の表示を制御します。OFFを指定すると、表示が抑止されるため、コマンド・ファイルからの出力を画面に表示せずに、出力をスプールできます。ONを指定すると、出力が表示されます。TERMOUT OFFは、対話形式で入力するコマンドからの出力には影響を与えません。

TI[ME] {ON|OFF}現在時刻の表示を制御します。ONを指定すると、各コマンド・プロンプトの前に現在時刻が表示されます。OFFを指定すると、時刻表示が抑止されます。

TIMI[NG] {ON|OFF}タイミング統計の表示を制御します。ONを指定すると、それぞれの SQLコマンドまたは PL/SQLブロックが実行されるたびに、そのタイミング統計が表示されます。OFFを指定すると、各コマンドのタイミング統計が抑止されます。SET TIMING ONで表示されるデータの詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。複数のコマンドのタイミング情報については、この章の「TIMING」コマンドを参照してください。

TRIM[OUT] {ON|OFF}SQL*Plusで、それぞれの表示行の終わりに後続空白を入れるかどうかを判断します。ONを指定すると、各行の終わりの空白が削除されるため、パフォーマンスが向上します。特に、低速の通信デバイスから SQL*Plusにアクセスする場合に効果的です。OFFを指定すると、SQL*Plusで後続空白を表示できます。TRIMOUT ONは、スプール出力には影響を与えません。

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

Page 272: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

TRIMS[POOL] {ON|OFF}SQL*Plusで、それぞれのスプール行の終わりに後続空白を入れるかどうかを判断します。ONを指定すると、各行の終わりの空白が削除されます。OFFを指定すると、SQL*Plusで後続空白を挿入できます。TRIMSPOOL ONは、端末出力には影響を与えません。

UND[ERLINE] {-|c|ON|OFF}cには、SQL*Plusレポートの列ヘッダーに下線を付けるために使用する文字を設定します。cには、英数字または空白を使用できません。ONまたは OFFによって、下線付けを ONまたは OFFにできます。ONを指定すると、cの値がデフォルトの「-」に戻ります。

VER[IFY] {ON|OFF}SQL*Plusが置換変数を値に置き換える前後で、SQL文または PL/SQLコマンドのテキストを SQL*Plusでリスト表示するかどうかを制御します。ONを指定すると、テキストがリスト表示されます。OFFを指定すると、リスト表示が抑止されます。

WRA[P] {ON|OFF}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コマンド変数の使用例を示します。

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

Page 273: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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”

To make sure that registration has taken place, enterSQL> 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

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

Page 274: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

COLSEP列セパレータを「|」に設定するには、次のように入力します。

SQL> SET COLSEP ’|’SQL> SELECT ENAME, JOB, DEPTNO 2 FROM EMP 3 WHERE DEPTNO = 20;

問合せ結果は、次のように出力されます。

ENAME |JOB | DEPTNO-------------------------------SMITH |CLERK | 20JONES |MANAGER | 20SCOTT |ANALYST | 20ADAMS |CLERK | 20FORD |ANALYST | 20

COMPATIBILITYOracle7で作成されたコマンド・ファイル SALARY.SQLを実行するには、次のように入力します。

SQL> SET COMPATIBILITY V7SQL> START SALARY

このファイルを実行した後で、Oracle8iで作成されたコマンド・ファイルを実行するために互換性をバージョン 8にリセットするには、次のように入力します。

SQL> SET COMPATIBILITY V8

かわりに、コマンド・ファイルの最初にコマンド SET COMPATIBILITYバージョン 7を追加し、そのファイルの終わりで COMPATIBILITYをバージョン 8にリセットするという方法もあります。

DESCRIBE2レベルの深さにオブジェクト emp_objectを記述して、行数も表示されている間に出力をインデントするには、オブジェクトの最初に次のように記述します。

SQL> DESCRIBE emp_object

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

Name Null Type ----------------------------------------- -------- ---------------------------- EMPLOYEE RECUR_PERSON NAME VARCHAR2(20) ADDR RECUR_ADDRESS ADDR1 RECUR_ADDRESS1

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

Page 275: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

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)

インデントおよび行数が表示されたものを出力するために 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)

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

Page 276: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

ESCAPE感嘆符(!)をエスケープ文字として定義し、次のように入力したとします。

SQL> SET ESCAPE !SQL> ACCEPT v1 PROMPT ’Enter !&1:’

次のプロンプトが表示されます。

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番目の文字になるまで切捨てを行いません。

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

Page 277: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

LOGSOURCEリカバリするログ・ファイルのデフォルト位置を /usr/oracle81/dbs/archディレクトリに設定するには、次のように入力します。

SQL> SET LOGSOURCE "/usr/oracle81/dbs/arch" SQL> RECOVER DATABASE

LONGLONG値を表示およびコピーするためにフェッチする最大文字数を 500に設定するには、次のように入力します。

SQL> SET LONG 500

LONGデータは、画面上で折り返されます。SQL*Plusは、501番目の文字になるまで切捨てを行いません。

LONGCHUNKSIZESQL*Plusが LONG値を取り出すときに使用する増分値のサイズを 100文字に設定するには、次のように入力します。

SQL> SET LONGCHUNKSIZE 100

LONGデータは、値全体が取り出されるまで、または SET LONGの値に到達するまで(いずれか早い方)、100文字の増分値で取り出されます。

MARKUP次に、HTMLマークアップ・テキストをスプール・ファイルに出力する場合の対話型セッションのログを示します。

SQL> SET MARKUP HTML ON SPOOL ON HEAD '<TITLE>Employee List</title> - <STYLE TYPE="TEXT/CSS"><!--BODY {background: yellow} --></STYLE>'SQL&gt; SET ECHO OFF<BR>SQL&gt; SPOOL EMPLOYEE.HTML<BR><HTML><HEAD><TITLE>EMPLOYEE LIST</TITLE><STYLE TYPE="TEXT/CSS"><!--BODY {background: yellow} --></STYLE><META NAME="GENERATOR" CONTENT="SQL*Plus 8.1.7">

注意注意注意注意 : SET MARKUPの例では、コマンドは、行継続文字「-」を使用したり、空白をあけて読みやすくレイアウトされていますが、通常、コマンド・オプションは、続けて入力してください。

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

Page 278: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

</HEAD><BODY>SQL&GT; SELECT DEPTNO, DNAME FROM DEPT;<BR><P><TABLE BORDER="1" WIDTH="90%"><TR><TH>DEPTNO</TH><TH>DNAME</TH></TR><TR><TD ALIGN="RIGHT"> 10</TD><TD>ACCOUNTING</TD></TR><TR><TD ALIGN="RIGHT"> 20</TD><TD>RESEARCH</TD></TR><TR><TD ALIGN="RIGHT"> 30</TD><TD>SALES</TD></TR><TR><TD ALIGN="RIGHT"> 40</TD><TD>OPERATIONS</TD></TR></TABLE>

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

Page 279: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

<P>

SQL&GT; EXIT<BR></BODY></HTML>Disconnected from Oracle8i Enterprise Edition Release 8.1.7.0.0 - ProductionWith the Partitioning optionOracle8i JVM Release 8.1.7.0.0 - Production

前回の SQL*Plusセッションでは、HTML出力をスプール・ファイル employee.htmlにスプールします。このファイルは、次のようなスタンドアロンのWebページです。

SERVEROUTPUTDBMS_OUTPUT.PUT_LINEを使用して PL/SQLブロック内のテキストを表示するには、次のように入力します。

SQL> SET SERVEROUTPUT ON

次に、SET SERVEROUTPUT ONを使用して無名プロシージャを実行した結果を示します。

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

Page 280: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

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.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

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

Page 281: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

SHIFTINOUTシフト文字が表示されるようにするには、次のように入力します。

SQL> SET SHIFTINOUT VISIBLESQL> SELECT ENAME, JOB FROM EMP;

問合せ結果は、次のように出力されます。

ENAME JOB---------- ----------:JJOO: :AABBCC::AA:abc :DDEE:e

「:」はシフト文字です。

大文字はマルチバイト文字です。

小文字はシングルバイト文字です。

SQLBLANKLINESSQL文での空白行を保持するには、次のように入力します。

SQL> SET SQLBLANKLINES ONSQL> REM Using the SQLTERMINATOR (default is ";") SQL> REM Could have used the BLOCKTERMINATOR (default is ".")SQL> SELECT * 2 3 FROM 4 5 DUAL 6 7 ;

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

D-X

注意注意注意注意 : この例は、列が正しく位置合せされることを示しています。この例で使用されているデータは、例示のためのもので、実際のデータを示すものではありません。

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

Page 282: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET

SQLCONTINUE感嘆符とそれに続く空白 1個を SQL*Plusコマンド継続プロンプトとして設定するには、次のように入力します。

SQL> SET SQLCONTINUE ’! ’

SQL*Plusは、継続のプロンプトを次のように表示します。

SQL> TTITLE ’YEARLY INCOME’ -! RIGHT SQL.PNO SKIP 2 -! CENTER 'PC DIVISION'SQL>

SUFFIXデフォルトのコマンド・ファイル拡張子を .SQLから .UFIに設定するには、次のように入力します。

SQL> SET SUFFIX UFI

次のように入力したとします。

SQL> GET EXAMPLE

SQL*Plusは、名前が EXAMPLEで拡張子が SQLのファイルでなく、名前が EXAMPLEで拡張子が UFIのファイルを検索します。

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

Page 283: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SHOW

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定義が表示されます。

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

Page 284: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SHOW

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は、そのストアド・プロシージャのエラーを表示します。コンパイル・エラーの詳細は、『Oracle8i 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コマンドのみを指定すると、すべての初期化パラメータが表示されます。

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

Page 285: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SHOW

出力結果は、接続している Oracleデータベース・サーバーのバージョンおよび構成によって異なります。PARAMETERS句を使用するには、SELECT ON V_$PARAMETERオブジェクト権限が必要です。権限がない場合、次のメッセージが表示されます。

ORA-00942:表またはビューが存在しません。

PNO現行のページ番号が表示されます。

REL[EASE]SQL*Plusがアクセスしている Oracleのリリース番号が表示されます。

REPF[OOTER]現行の REPFOOTER定義が表示されます。

REPH[EADER]現行の REPHEADER定義が表示されます。

SPOO[L]出力がスプールされているかどうかが表示されます。

SGA現行インスタンスのシステム・グローバル領域に関する情報が表示されます。SGA句を使用するには、SELECT ON V_$SGAオブジェクト権限が必要です。権限がない場合は、次のメッセージが表示されます。

ORA-00942:表またはビューが存在しません。

SQLCODESQL.SQLCODE(最新の操作の SQLリターン・コード)の値が表示されます。

TTI[TLE]現行の TTITLE定義が表示されます。

USERSQL*Plusのアクセスで現在使用しているユーザー名を表示します。「/ AS SYSDBA」で接続している場合、SQL> SHOW USERコマンドでは、「SQL> USER is "SYS"」と表示されます。

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

Page 286: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SHOW

例例例例現行の LINESIZEをリスト表示するには、次のように入力します。

SQL> SHOW LINESIZE

現行の行サイズが 80文字の場合、SQL*Plusから次の応答があります。

linesize 80

次の例は、ストアド・プロシージャを作成し、そのコンパイル・エラーを表示する方法を示しています。

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: バインド変数'P1'が正しくありません。SQL> show errors procedure proc1No errors.SQL> show errors procedure scott.proc1Errors for PROCEDURE SCOTT.PROC1:LINE/COL ERROR--------------------------------------------------------3/3 PLS-00049: バインド変数'P1'が正しくありません。

AUTORECOVERYが使用可能かどうかを表示するには、次のように入力します。

SQL> SHOW AUTORECOVERYautorecovery ON

デフォルト・インスタンスの接続識別子を表示するには、次のように入力します。

SQL> SHOW INSTANCEinstance "local"

アーカイブ・ログの位置を表示するには、次のように入力します。

SQL> SHOW LOGSOURCElogsource "/usr/oracle81/dbs/arch"

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

Page 287: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SHOW

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

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

Page 288: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SHUTDOWN

SHUTDOWN

用途用途用途用途現在、実行中の Oracleインスタンスを停止します。オプションとして、データベースをクローズおよびディスマウントします。Oracle7 Server上の Oracleインスタンスを停止するために SHUTDOWNを使用することはできません。

構文構文構文構文SHUTDOWN [ABORT|IMMEDIATE|NORMAL]

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

ABORTコールの完了またはユーザーの切断を待たずに、高速でデータベースの停止処理を進めます。

コミットされていないトランザクションは、ロールバックされません。現在実行中のクライアント SQL文は、中断されます。現在データベースに接続しているすべてのユーザーは、暗黙的に切断され、次回データベースの起動時に、インスタンス・リカバリが必要になります。

バックグラウンド・プロセスが異常終了した場合、このオプションを使用する必要があります。

IMMEDIATE現行のコールの完了またはデータベースのユーザーの切断を待ちません。

新しい接続は禁止されます。データベースはクローズおよびディスマウントされます。インスタンスが停止され、次回データベース起動時に、インスタンス・リカバリは必要ありません。

NORMALユーザーがデータベースから切断することを待つデフォルト・オプションです。

新しい接続は禁止されます。データベースはクローズおよびディスマウントされます。インスタンスが停止され、次回データベース起動時に、インスタンス・リカバリは必要ありません。

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

Page 289: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SHUTDOWN

使用方法使用方法使用方法使用方法引数なしの SHUTDOWNは、SHUTDOWN NORMALと同じ動作をします。

SYSOPERまたは SYSDBAでデータベースに接続している必要があります。マルチスレッド・サーバーを介して接続できません。データベース接続の詳細は、この章の「CONNECT」コマンドを参照してください。

例例例例標準モードでデータベースを停止するには、次のように入力します。

SQL> SHUTDOWN Database closed. Database dismounted. Oracle instance shut down.

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

Page 290: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SPOOL

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は、対話形式で実行するコマンドからの出力には影響を与えません。

例例例例デフォルトのファイル拡張子を使用して、DLARYという名前のファイルに表示出力を記録するには、次のように入力します。

SQL> SPOOL DIARY

スプールを停止し、ファイルをデフォルトのプリンタで印刷するには、次のように入力します。

SQL> SPOOL OUT

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

Page 291: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

START

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コマンドを使用した値の指定」を参照してください。

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

Page 292: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

START

使用方法使用方法使用方法使用方法@(アットマーク)および @@(二重アットマーク)コマンドは、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;

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

Page 293: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

STARTUP

STARTUP

用途用途用途用途データベースのマウントおよびオープンを含む様々なオプションを付けて、Oracleインスタンスを起動します。Oracle7 Server上の Oracleインスタンスを開始するために STARTUPを使用することはできません。

構文構文構文構文STARTUP [FORCE] [RESTRICT] [PFILE=filename] [EXCLUSIVE] [PARALLEL [RETRY]] [SHARED [RETRY]] [MOUNT [dbname] | OPEN [open_options] [dbname] | NOMOUNT]

open_optionsの構文は次のとおりです。

READ {ONLY | WRITE [RECOVER]} | RECOVER

項および句項および句項および句項および句項および句の詳細は、次の説明を参照してください。

FORCE再起動する前に、現行の Oracleインスタンス(実行されている場合)をABORTモードの SHOUTDOWNで停止しておく必要があります。現行インスタンスが実行されていて、FORCEが指定されていない場合は、エラーになります。FORCEは、デバッグ中および異常な環境下で有効となります。通常は、使用しないでください。

RESTRICTデータベースに接続できるのは、RESTRICTED SESSIONシステム権限があるOracleユーザーのみです。制限されたセッション機能を使用禁止にするには、ALTER SYSTEMコマンドを使用します。

PFILE=filenameインスタンスの起動中に使用されるのは、指定したパラメータ・ファイルになります。PFILEの指定を省略すると、デフォルトの STARTUPパラメータ・ファイルが使用されます。デフォルトで使用されるファイルは、プラットフォームによって異なります。たとえば UNIXの場合は、$ORACLE_HOME/dbs/init$ORACLE_SID、Windowsの場合は%ORACLE_HOME%¥database¥initORCL.oraがデフォルト・ファイルです。

EXCLUSIVEデータベースが、現行インスタンスでマウントおよびオープンのみ可能であることを示しています(複数インスタンスで同時にオープンすることはできません)。SHARED、PARALLELまたは NOMOUNTと同時には指定できません。マウントするオプションが指定されていない場合、デフォルトで EXCLUSIVEが割り当てられます。

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

Page 294: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

STARTUP

PARALLELデータベースを複数のインスタンスで同時にマウントする場合は、必ず指定する必要があります。EXCLUSIVEまたは NOMOUNTと同時には指定できません。初期化パラメータ SINGLE_PROCESSが TRUEに設定されている場合は、無効になります。

SHAREDPARALLELと同様の機能です。

RETRYインスタンスがその他のインスタンスでリカバリされていてビジーである場合、データベースのオープンが 5秒ごとに行われるように指定します。1つのインスタンスが、他のインスタンスでリカバリされている場合、ダウン・インスタンスは、リカバリが完了するまでデータベースをオープンできません。データベースが他の理由でオープンできない場合、RETRYは使用できません。このオプションは、PARALLELモードでのインスタンスの操作に対してのみ使用可能です。

MOUNT dbnameデータベースをオープンしないで、マウントします。

dbnameには、マウントまたはオープンするデータベースの名前を指定します。データベース名を指定しない場合、初期化パラメータ DB_NAMEのデータベース名が使用されます。

OPEN指定されたデータベースを、マウントおよびオープンします。

NOMOUNTインスタンスの起動によって、データベースがマウントされなくなります。

SHARED、EXCLUSIVE、PARALLEL、MOUNTまたは OPENと同時には使用できません。

RECOVERインスタンスを起動する前に、必要に応じてメディア・リカバリを実行するように指定します。STARTUP RECOVERは、RECOVER DATABASEコマンドの発行、およびインスタンスの起動と同じ結果になります。完全リカバリが可能なのは、RECOVERオプションのみです。

必要に応じて、AUTORECOVERYが使用可能かどうかにかかわらず、AUTORECOVERYに ONが設定されているものとしてリカバリを続行します。REDOログ・ファイルが予想した位置に見つからない場合、AUTORECOVERYが使用禁止であるとみなして、リカバリが続行されます。適用する必要がある、次のログ・ファイルの提案された位置および名前がプロンプトに表示されます。

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

Page 295: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

STARTUP

使用方法使用方法使用方法使用方法SYSOPERまたは SYSDBAでデータベースに接続している必要があります。マルチスレッド・サーバーを介して接続できません。

引数なしの STARTUPは、STARTUP OPENと同じ動作をします。

STARTUP OPEN RECOVERは、リカバリが失敗したときもデータベースをマウントおよびオープンします。

例例例例標準パラメータ・ファイルを使用してインスタンスを起動するために、排他モードでデフォルト・データベースをマウントして、データベースをオープンします。次のように入力します。

SQL> STARTUP

次のように入力します。

SQL> STARTUP EXCLUSIVE OPEN database

標準パラメータ・ファイルを使用してインスタンスを起動するために、パラレル・モードでデフォルト・データベースをマウントして、データベースをオープンします。次のように入力します。

SQL> STARTUP PARALLELSQL> STARTUP PARALLEL OPEN database

パラレル・モードで機能しなくなって、他のインスタンスで、まだリカバリされていないインスタンスを再起動するには、RETRYオプションを使用して、次のように入力します。

SQL> STARTUP PARALLEL RETRY

現行インスタンスを停止するには、すぐに、マウントまたはオープンしないで再起動し、データベース管理者のみが接続できるようにします。次のように入力します。

SQL> STARTUP FORCE RESTRICT NOMOUNT

データベースをマウントしないで、パラメータ・ファイル TESTPARMを使用してインスタンスを起動するには、次のように入力します。

SQL> STARTUP PFILE=testparm NOMOUNT

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

Page 296: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

STARTUP

特定のデータベースを停止するには、すぐに、パラレル・モードで再起動およびオープンして、データベース管理者のみが接続できるようにします。パラメータ・ファイルMYINIT.ORAを使用します。次のように入力します。

SQL> STARTUP FORCE RESTRICT PFILE=myinit.ora SHARED OPEN database

インスタンスを起動して、データベースをオープンしないでマウントするには、次のように入力します。

SQL> CONNECT / as SYSDBA 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

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

Page 297: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

STORE

STORE

用途用途用途用途現行の SQL*Plus環境の属性を、ホスト・オペレーティング・システム・ファイル(コマンド・ファイル)に保存します。

構文構文構文構文STORE SET file_name[.ext] [CRE[ATE]|REP[LACE]|APP[END]]

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

SETシステム変数の値が保存されます。

STOREコマンド構文のその他の項および句に関する情報については、この章の「SAVE」コマンドを参照してください。

使用方法使用方法使用方法使用方法このコマンドを実行すると、STARTコマンド、@コマンドまたは @@コマンドを使用して実行できるコマンド・ファイルが作成されます。

STOREコマンド句(CREATE、REPLACEまたは APPEND)と同じ名前でファイルを保存するには、名前を一重引用符で囲むか、またはファイル拡張子を指定する必要があります。

例例例例現行の SQL*Plusシステム変数を、名前が DEFAULTENVでデフォルトのコマンド・ファイル拡張子が付いたファイルに格納するには、次のように入力します。

SQL> STORE SET DEFAULTENV

現行の SQL*Plusシステム変数を、名前が DEFAULTENVで拡張子が OLDの既存ファイルに追加するには、次のように入力します。

SQL> STORE SET DEFAULTENV.OLD APPEND

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

Page 298: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

TIMING

TIMING

用途用途用途用途経過時間に関するタイミング・データを記録するか、現行のタイマー名およびタイミング・データをリスト表示するか、またはアクティブ・タイマーの数をリスト表示します。

構文構文構文構文TIMI[NG] [START text|SHOW|STOP]

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

START textタイマーが設定され、textがタイマー名になります。最初のタイマーを停止する前に追加のタイマーを起動することによって、複数のアクティブ・タイマーを同時に使用できます。SQL*Plusは、それぞれの新規タイマーをその前のタイマーにネストします。最後に起動したタイマーが現行のタイマーになります。

SHOW現行のタイマー名およびタイミング・データがリスト表示されます。

STOP現行のタイマー名およびタイミング・データがリスト表示されてから、そのタイマーが削除されます。他にアクティブになっているタイマーがあれば、削除されたタイマーの次に起動されたタイマーが現行のタイマーになります。

アクティブ・タイマーの数をリスト表示するには、句を指定しないで TIMINGのみを入力します。

使用方法使用方法使用方法使用方法このデータを使用して、特定の期間中に実行されるコマンドまたはブロックに関するパフォーマンスを分析できます。

TIMINGで表示されるデータの詳細は、ご使用のオペレーティング・システム用の Oracleインストレーション・ガイドおよび管理者リファレンスを参照してください。各 SQLコマンドまたは PL/SQLブロックを実行した後、自動的に TIMINGのデータを表示する場合の詳細は、この章の SET TIMING ONを参照してください。

すべてのタイマーを削除するには、CLEAR TIMINGコマンドを使用します。

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

Page 299: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

TIMING

例例例例SQL_TIMERという名前のタイマーを作成するには、次のように入力します。

SQL> TIMING START SQL_TIMER

現行のタイマーのタイトルおよび累積時間をリスト表示するには、次のように入力します。

SQL> TIMING SHOW

現行のタイマーのタイトルおよび累積時間をリスト表示して、そのタイマーを削除するには、次のように入力します。

SQL> TIMING STOP

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

Page 300: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

TTITLE

TTITLE

用途用途用途用途各レポートの上部に指定のタイトルを配置し書式設定するか、または現行の TTITLE定義をリスト表示します。TTITLEコマンドの後に引用符で囲まれた単一の語または文字列のみを指定した場合は、旧形式の TTITLEが使用されます。

旧形式の TTITLEの詳細は、付録 Fの「TTITLE」を参照してください。

構文構文構文構文TTI[TLE] [printspec [text|variable] ...] [ON|OFF]

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リリース番号)

� SQL.SQLCODE(現行のエラー・コード)

� SQL.USER(現行のユーザー名)

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

Page 301: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

TTITLE

これらの値の 1つを出力するには、適切な変数をタイトルの中で参照します。FORMAT句で variableの形式を設定できます。

OFF定義に影響を与えないで、タイトルを OFFに(表示を抑止)します。

ONタイトルを ONに(表示を復元)します。上部タイトルを定義すると、SQL*Plusは自動的に TTITLEを ONに設定します。

COL nカレント行の列 nまでインデントします(列 nを過ぎている場合は、後退します)。ここでいう「列」とは、印刷位置のことで、表の列ではありません。

S[KIP][n]新規行の先頭まで n回スキップします。nを省略すると、1回スキップします。nに 0を入力すると、カレント行の先頭まで戻ります。

TABnn列分前方に(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回連続で印刷するという命令が出ることがあります。

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

Page 302: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

TTITLE

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’

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

Page 303: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

TTITLE

例例例例「Monthly Analysis」を上部タイトルとして定義して左揃え、日付を中央揃え、ページ番号を 3桁書式で右揃え、次の行の中央に「Data in Thousands」を表示するには、次のように入力します。

SQL> TTITLE LEFT ’Monthly Analysis’ CENTER ’23 Nov 99’ -> RIGHT ’Page:’ FORMAT 999 SQL.PNO SKIP CENTER -> ’Data in Thousands’

この結果、タイトルは次のようになります。

Monthly Analysis 23 Nov 99 Page: 1 Data in Thousands

上部タイトルの定義を変更しないで、その表示を抑止するには、次のように入力します。

SQL> TTITLE OFF

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

Page 304: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

UNDEFINE

UNDEFINE

用途用途用途用途明示的に(DEFINEコマンドを使用して)定義したか、または暗黙的に(STARTコマンドでの引数によって)定義した 1つ以上のユーザー変数を削除します。

構文構文構文構文UNDEF[INE] variable ...

項および句項および句項および句項および句項または句の詳細は、次の説明を参照してください。

variable削除するユーザー変数の名前を指定します。同じコマンドで、1つ以上のユーザー変数を削除できます。

例例例例POSという名前のユーザー変数の定義を削除するには、次のように入力します。

SQL> UNDEFINE POS

MYVAR1およびMYVAR2という名前の 2つのユーザー変数の定義を削除するには、次のように入力します。

SQL> UNDEFINE MYVAR1 MYVAR2

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

Page 305: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

VARIABLE

VARIABLE

用途用途用途用途PL/SQLで参照できるバインド変数を宣言します。バインド変数の詳細は、第 3章の「バインド変数の使用方法」を参照してください。PL/SQLの詳細は、『Oracle8i 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以下)の変数が作成されます。

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

Page 306: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

VARIABLE

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 ...CLOBまたは 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カーソル変数の詳細は、『Oracle8i PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

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

Page 307: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

VARIABLE

VARIABLE...REFCURSORコマンドを実行する場合、SQL*Plusはカーソル・バインド変数を作成します。PL/SQLブロック内のバインド変数を参照する OPEN ...FOR SELECT文によって、カーソルが自動的にオープンされます。SQL*Plusは、バインド変数用の PRINT文の処理が完了した後、または終了時に、カーソルをクローズします。

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コマンドを発行する必要はありません。

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

Page 308: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

VARIABLE

次の例では、いくつかの変数を作成し、リスト表示します。

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)

次の例では、個人(ENAME)別給料(SAL)をリスト表示し、部門(DNAME)別の給与(SAL)合計を計算するレポートを作成する方法を示します。

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

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

Page 309: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

VARIABLE

*** 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.

col_clob列にデータをリスト表示するレポートを作成するには、次のように入力します。

SQL> variable t clobSQL> begin 2 select clob_col into t: from clob_tab; 3 end; 4 /PL/SQL procedure successfully completed

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

Page 310: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

VARIABLE

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リファレンス』を参照してください。

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

Page 311: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

WHENEVER OSERROR

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オプションを OFFにします。

COMMIT終了または継続する前に COMMITを実行し、データベースに対する保留中の変更を保存するように SQL*Plusに指示します。

ROLLBACK終了または継続する前に ROLLBACKを実行し、データベースに対する保留中の変更を破棄するように SQL*Plusに指示します。

NONE継続する前に何の操作もしないように SQL*Plusに指示します。

使用方法使用方法使用方法使用方法WHENEVER OSERRORコマンドを入力しなかった場合、SQL*Plusのデフォルト動作では、オペレーティング・システムのエラーが発生すると、何も処置せずに処理が続行されます。

WHENEVER SQLERRORコマンドを入力しなかった場合、SQL*Plusのデフォルト動作では、SQL*Plusのエラーが発生すると、何も処置せずに処理が続行されます。

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

Page 312: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

WHENEVER OSERROR

例例例例次のコマンド・ファイル中のコマンドは、出力ファイルへの書込み時に障害が発生すると、SQL*Plusが終了し、保留中の変更があればそれがすべてコミットされます。

SQL> WHENEVER OSERROR EXITSQL> START no_such_fileOS Message: No such file or directoryDisconnected from Oracle8......

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

Page 313: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

WHENEVER SQLERROR

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オプションを OFFにします。

COMMIT終了または継続する前に COMMITを実行し、データベースに対する保留中の変更を保存するように SQL*Plusに指示します。

ROLLBACK終了または継続する前に ROLLBACKを実行し、データベースに対する保留中の変更を破棄するように SQL*Plusに指示します。

NONE継続する前に何の操作もしないように SQL*Plusに指示します。

使用方法使用方法使用方法使用方法WHENEVER SQLERRORコマンドは、SQLコマンドまたは PL/SQLブロックのエラーによってトリガーされます。SQL*Plusコマンド・エラーではトリガーされません。

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

Page 314: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

WHENEVER SQLERROR

例例例例次のコマンド・ファイル中のコマンドは、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 *エラー行:1:ORA-00904:列名が無効です。

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 *エラー行:1:ORA-00942:表またはビューが存在しません。

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

Unknown SHOW option "NON_EXISTED_OPTION"SQL> get non_existed_file.sqlUnable to open "NON_EXISTED_FILE.SQL"

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

Page 315: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

WHENEVER SQLERROR

次の 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; *エラー行:2:ORA-06550:行2、列10:PLS-00201:識別子'COLUMN_DOES_NOT_EXIST'を宣言してください。ORA-06550:行2、列3:PL/SQL: SQL Statement ignored

Disconnected from Oracle.....

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

Page 316: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

WHENEVER SQLERROR

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

Page 317: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

A

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

この付録では、COPYコマンドが生成するエラー・メッセージについて説明します。Oracleが生成するエラー・メッセージについては、『Oracle8iエラー・メッセージ』を参照してください。

ード A-1

Page 318: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CPY0002APPEND、CREATE、INSERTまたは REPLACEのオプションが不正または欠落しています。原因原因原因原因 : 内部 COPY関数が、有効範囲外の作成オプション(フラグ)値を使用して COPYを起動しました。

処置処置処置処置 : オラクル社カスタマ・サポート・センターへ連絡してください。

CPY0003内部エラー:論理ホスト番号が範囲外です。原因原因原因原因 : 有効範囲外の論理ホスト番号値を使用して内部 COPY関数を起動しました。

処置処置処置処置 : オラクル社カスタマ・サポート・センターへ連絡してください。

CPY0004ソース表および宛先表にある列名が一致していません。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、宛先表の中の列名が 1つ以上、オプションの列名リストまたは SELECTコマンドの列名の対応する列名と一致していません。

処置処置処置処置 : COPYコマンドを指定し直します。宛先表の中のそれぞれの列名およびその順序が、オプションの列名リストまたは SELECTコマンドの列名およびその順序と一致していることを確認します。

CPY0005ソースと宛先の列属性が一致していません。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、宛先表の列のデータ型が1つ以上、SELECTコマンドの対応する列のデータ型と一致していません。

処置処置処置処置 : COPYコマンドを指定し直します。選択する項目のデータ型が宛先と一致していることを確認します。変換するには、TO_DATE、TO_CHARおよび TO_NUMBERを使用します。

CPY0006選択リストに宛先表より多い列があります。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、SELECTコマンドの列の数が、宛先表の列の数を上回っています。

処置処置処置処置 : 選択した列の行数がコピー先の表の行数と一致していることを確認した後、再度COPYコマンドを指定してください。

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

Page 319: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CPY0007選択リストに宛先表より少ない列があります。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、SELECTコマンドの列の数が、宛先表の列の数を下回っています。

処置処置処置処置 : 選択した列の行数がコピー先の表の行数と一致していることを確認した後、再度COPYコマンドを指定してください。

CPY0008列のリスト名が宛先表にある列より多くあります。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、列名リストの列の数が、宛先表の列の数を上回っています。

処置処置処置処置 : 列名リストの列数がコピー先の表の列数と一致していることを確認した後、再度COPYコマンドを指定してください。

CPY0009列のリスト名が宛先表にある列より少数です。原因原因原因原因 : APPEND操作または INSERT(表が存在する場合)で、列名リストの列の数が、宛先表の列の数を下回っています。

処置処置処置処置 : 列名リストの列数がコピー先の表の列数と一致していることを確認した後、再度COPYコマンドを指定してください。

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

Page 320: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

Page 321: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

拡張された

B

拡張された機能拡張された機能拡張された機能拡張された機能

SQL*Plusリリース 8.1.7では、SQL*Plusの前回のリリースに、様々な拡張機能が追加されています。ここでは、SQL*Plusリリース 8.1.7および以前のリリースでの拡張機能について説明します。

機能 B-1

Page 322: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusリリース 8.1.7での拡張機能

SQL*Plusリリースリリースリリースリリース 8.1.7での拡張機能での拡張機能での拡張機能での拡張機能SQL*Plusリリース 8.1.7で追加された機能は、次のとおりです。

SQLPLUS -MARKUPおよびおよびおよびおよび SET MARKUPの変更の変更の変更の変更今回のリリースでは、MARKUP HTML ONを使用して、<PRE>タグまたは HTML表のいずれでも HTML出力を生成できます。表への出力では、標準の HTML <TABLE>タグ、<TR>タグおよび <TD>タグが使用され、問合せ結果の行および列が自動的にコード化されます。HTMLオプションの設定が ONの場合、HTML表への出力は、デフォルトで実行されます。PREFORMAT ONを設定すると、HTML <PRE>タグを使用して出力できます。SQLPLUSおよび SETコマンドの詳細は、第 7章の「SQLPLUSコマンドでの SQL*Plusの起動」および第 8章の「SET」コマンドを参照してください。

TABLE textTABLE textは、MARKUPの新しいオプションです。HTML <TABLE>タグへの属性を入力できます。このオプションを使用して、<TABLE>タグの BORDER、CELLPADDING、CELLSPACINGおよびWIDTHなどの属性を設定できます。詳細は、第 7章の「TABLE text」を参照してください。

SQLPLUS -MARKUPおよび SET MARKUPに対するMARKUPの新しい構文は、次のとおりです。

HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]

詳細は、第 7章の「MARKUP」を参照してください。

COLUMN ENTMAP {ON|OFF}COLUMNコマンドに、新しく追加された ENTMAP {ON|OFF}オプションを使用すると、エンティティのマッピングの柔軟性が向上します。COLUMN ENTMAPのデフォルトは、MARKUP HTML ENTMAPオプションの現在の値です。

COLUMNコマンドで ENTMAP {ON|OFF}を使用すると、選択された列に対するエンティティのマッピングを、HTML出力で明示的に ONにしたり OFFにすることができます。詳細は、第 8章の「COLUMN」コマンドを参照してください。

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

Page 323: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusリリース 8.1.6での拡張機能

SQL*Plusリリースリリースリリースリリース 8.1.6での拡張機能での拡張機能での拡張機能での拡張機能� SQL*Loaderは、SQL*Plusのコマンドライン・ヘルプ・システムのインストールに使用

されなくなりました。ヘルプ・システムは、SQL*Plusのスクリプトを実行してインストールします。ヘルプ・システムのインストール手順の詳細は、ご使用のオペレーティング・システム用のインストレーション・ガイドを参照してください。

ヘルプ・システムをアンインストールするスクリプトも提供されています。

� SQLPLUSコマンドに、-RESTRICTオプションが追加されました。-RESTRICTは、オペレーティング・システムと対話する特定のコマンドを使用禁止にします。同じコマンドを PUP(Product User Profile)表で使用禁止にする場合と比較すると、-RESTRICTオプションで使用禁止にしたコマンドは、サーバーと接続していないときにも使用できず、SQL*Plusを終了するまで使用禁止のままになります。

� SQLPLUSコマンドに、-MARKUPオプションが追加されました。-MARKUPは、サーバー側で CGIスクリプトを使用して、Web上でアクセスできる HTMLレポートを作成できます。SQLPLUS -MARKUPコマンドを使用して、既存の SQLスクリプトからWebレポートを作成できます。SQLPLUSのMARKUPオプションには、SET MARKUPコマンドに新しいオプションを指定する場合と同じ機能があります。

� SETコマンドにMARKUP句が追加されました。SQL*Plusセッション中、SET MARKUPを使用して、Web上でアクセスできるHTMLレポートを対話的に作成できます。

� SHOW MARKUPで、MARKUPオプションの状態を表示できます。

拡張された機能 B-3

Page 324: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusリリース 8.1.5での拡張機能

SQL*Plusリリースリリースリリースリリース 8.1.5での拡張機能での拡張機能での拡張機能での拡張機能� STARTUPコマンドが追加されました。このコマンドは、Oracleインスタンスを起動し、

オプションで、データベースをマウントおよびオープンします。

� SHUTDOWNコマンドが追加されました。このコマンドは、現在実行中の Oracleインスタンスを停止します。オプションで、データベースをクローズおよびディスマウントします。

� RECOVERコマンドが追加されました。このコマンドは、表領域、データ・ファイルまたはデータベース全体を、メディア・リカバリします。

� ARCHIVE LOGコマンドが追加されました。このコマンドは、REDOログ・ファイルをアーカイブします。また、REDOログ・ファイルについての情報を表示します。

� CONNECTコマンドに、AS句が追加されました。この句は、SYSOPERまたは SYSDBAシステム権限を付与されているユーザーに対して、特権付きの接続を許可します。

� SETコマンドに、AUTORECOVERY句が追加されました。この句は、デフォルトのアーカイブ REDOログ・ファイルを、リカバリで使用するかどうかを指定します。

� SETコマンドに、DESCRIBE句が追加されました。この句は、記述できるオブジェクトのレベルの深さを指定します。

� SETコマンドに、INSTANCE句が追加されました。この句は、ご使用のセッション用のデフォルト・インスタンスを指定したインスタンスに変更します。

� SETコマンドに、LOGSOURCE句が追加されました。この句は、リカバリ中に取り出されたアーカイブ・ログの位置を指定します。

� SETコマンドに、SQLBLANKLINES句が追加されました。この句を使用すると、すべての SQLコマンド内で空白行を保持できます。

� SHOWコマンドに、PARAMETERS句が追加されました。この句は、1つ以上の初期化パラメータに対して、現在の値を表示します。

� SHOWコマンドに、SGA句が追加されました。この句は、現行インスタンスのシステム・グローバル領域に関する情報を表示します。

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

Page 325: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusの

C

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

表 C-1に、SQL*Plusのそれぞれの要素の制限または最大値を示します。記載されている制限値は、ほとんどのオペレーティング・システムで有効です。

制限 C-1

Page 326: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

表表表表 C-1 SQL*Plusの制限の制限の制限の制限

項目項目項目項目 制限制限制限制限

ファイル名の長さ システム依存

ユーザー名の長さ 30バイト

ユーザー変数名の長さ 30バイト

ユーザー変数値の長さ 240文字

コマンドラインの長さ 2,500文字

SQL*Plusで入力する LONG値の長さ

LINESIZE値

LINESIZE システム依存

LONGCHUNKSIZE値 システム依存

出力行のサイズ システム依存

変数置換後の行のサイズ 3,000文字(内部のみ)

COMPUTEコマンド・ラベルの文字数

500文字

1つの SQLコマンドの行数 500(1行 80文字の場合)

最大 PAGESIZE 50,000行

合計行幅 VMSの場合は 60,000文字、その他の場合は 32,767文字

最大 ARRAYSIZE 5,000行

ネストしたコマンド・ファイルの最大数

VMS、CMS、Unixの場合は 20、その他の場合は 5

最大ページ数 99,999

PL/SQLエラー・メッセージの最大サイズ

2KB

ACCEPT文字列の最大長 240バイト

DEFINE変数の最大数 2,048

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

Page 327: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLコマンド・リ

D

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

表 D-1に、主要な SQLコマンドを示します。これらのコマンドの詳細は、『Oracle8i SQLリファレンス』を参照してください。

スト D-1

Page 328: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

表表表表 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

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

Page 329: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

セキュリ

E

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

この付録では、データベース表および SQL*Plusコマンドへのアクセスを制御するために使用可能なメソッドについて説明します。セキュリティ用に使用可能なメソッドは、次の 3つに分類されます。

� PRODUCT_USER_PROFILE表

� ロールの使用禁止

� SQLPLUS -RESTRICT

ティ E-1

Page 330: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PRODUCT_USER_PROFILE表

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情報がロードされていないという旨の警告が表示されます。

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

Page 331: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PRODUCT_USER_PROFILE表

表の構造表の構造表の構造表の構造次に、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コマンドのリストについては、この付録の「管理」を参照してください。ロールを使用禁止にする方法の詳細は、この付録の「ロールの使用禁止」を参照してください。

セキュリティ E-3

Page 332: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PRODUCT_USER_PROFILE表

管理管理管理管理DBAユーザー名 SYSTEMは、PRODUCT_USER_PROFILEを所有し、それに関するすべての権限を持っています(SYSTEMがログインする場合、SQL*Plusは、PRODUCT_USER_PRFILEを読み取りません。したがって、ユーザー SYSTEMに制限は適用されません)。他の Oracleユーザー名では、この表に対しては SELECT権限のみを持つようになります。このアクセス権限を使用すると、ユーザー名に設定された制限およびPUBLICに設定された制限を表示できます。コマンド・ファイル PUPBLDが実行されると、PRODUCT_USER_PROFILEに対する SELECTアクセスが PUPBLDに付与されます。

SQL*Plus、、、、SQLおよびおよびおよびおよび PL/SQLコマンドの使用禁止コマンドの使用禁止コマンドの使用禁止コマンドの使用禁止特定のユーザーに SQLまたは SQL*Plusコマンドを使用禁止にするには、Userid列にユーザーのユーザー名、Attribute列にコマンド名および Char_Value列に DISABLEDを入れた行を挿入します。

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

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値が格納されることがあります。

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

Page 333: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PRODUCT_USER_PROFILE表

コマンドを再び使用可能にするには、制限を含む行を削除します。

次に、使用禁止にできる SQL*Plusコマンドを示します。

� COPY

� EDIT

� EXECUTE

� EXIT

� GET

� HOST(または、ご使用のオペレーティング・システムの HOSTの別名(VMSでは $、UNIXでは !など))

� QUIT

� PASSWORD

� RUN

� SAVE

� SET(後述の注意を参照)

� SPOOL

� START

次に、使用禁止にできる SQLコマンドを示します。

� ALTER

� ANALYZE

� AUDIT

� CONNECT

� CREATE

� DELETE

� DROP

� GRANT

注意注意注意注意 : SQL*Plusの SETコマンドを使用禁止にすると、SQLの SET ROLEおよび SET TRANSACTIONコマンドも使用禁止になります。SQL*Plusの STARTコマンドを使用禁止にすると、SQL*Plusの @および@@コマンドも使用禁止になります。

セキュリティ E-5

Page 334: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PRODUCT_USER_PROFILE表

� INSERT

� LOCK

� NOAUDIT

� RENAME

� REVOKE

� SELECT

� SET ROLE

� SET TRANSACTION

� TRUNCATE

� UPDATE

次に、使用禁止にできる PL/SQLコマンドを示します。

� BEGIN

� DECLARE

SET ROLEの使用禁止の使用禁止の使用禁止の使用禁止ユーザーは、SQL*Plusから任意の SQLコマンドを送ることができます。特定の状況下では、これはセキュリティ上の問題の原因になります。適切な予防手段を取っておかないと、ユーザーが SET ROLEを使用して、アプリケーション・ロールで取得した権限にアクセスする可能性があります。これらの権限を使用して、ユーザーが SQL*Plusから SQL文を発行し、その結果データベース表が誤って変更されてしまう可能性があります。

アプリケーション・ユーザーが SQL*Plus内のアプリケーション・ロールにアクセスすることを防ぐには、PRODUCT_USER_PROFILEを使用して、SET ROLEコマンドを使用禁止にします。このようにすると、SQL*Plusユーザーは、SQL*Plusを起動したときに使用可能になるロールに関連した権限以外、使用できなくなります。ユーザー・ロールの作成および使用方法の詳細は、『Oracle8i SQLリファレンス』および『Oracle8i管理者ガイド』を参照してください。

注意注意注意注意 : BEGINおよび DECLAREコマンドを使用禁止にしても、SQL*Plusの EXECUTEコマンドは使用可能です。EXECUTEを使用禁止にする場合は、別々に行ってください。

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

Page 335: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ロールの使用禁止

ロールの使用禁止ロールの使用禁止ロールの使用禁止ロールの使用禁止特定のユーザーに特定のロールを使用禁止にするには、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の使用禁止」を参照してください。

ロールを再び使用可能にするには、制限を含む行を削除します。

ロールの使用禁止ロールの使用禁止ロールの使用禁止ロールの使用禁止SQLのコマンドを使用して Oracle8iにデータベース表のセキュリティを確保するには、ロールを作成し、ロールへのアクセスを制御します。

ロールを作成し、そのロールにアクセスするユーザーを制御することによって、特定のデータベース権限に特定のユーザーのみがアクセスできるようにします。

注意注意注意注意 : USERID列に PUBLICまたは %を入力する場合は、すべてのユーザーに対してロールを使用禁止にします。PUBLICに付与されるロールに対して %または PUBLICのみを使用するようにします。ユーザーに付与されていないロールを使用禁止にしようとしても、使用禁止になるロールはありません。

セキュリティ E-7

Page 336: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQLPLUS -RESTRICT

概要概要概要概要ロールは、SQLの CREATE、GRANTおよび SETコマンドで作成され、使用されます。

� ロールを作成するには、CREATEコマンドを使用します。パスワードなしのロールでもパスワード付きのロールでも作成できます。

� ロールにアクセス権限を付与するには、GRANTコマンドを使用します。この方法で、ロールに関連する権限にアクセスするユーザーを制御します。

� ロールにアクセスするには、SET ROLEコマンドを使用します。パスワード付きのロールを作成する場合、ユーザーは、ロールにアクセスするためのパスワードを知っている必要があります。

ロールの詳細は、『Oracle8i SQLリファレンス』、『Oracle8i管理者ガイド』および『Oracle8i概要』を参照してください。

SQLPLUS -RESTRICTPUP(PRODUCT_USER_PROFILE)表と同様に、RESTRICTオプションで、オペレーティング・システムと対話する特定のコマンドを使用禁止にすることができます。ただし、-RESTRICTオプションで使用禁止にされたコマンドは、サーバーと接続していないときにも使用できず、SQL*Plusを終了するまで使用禁止のままです。

次の表に、各制限レベルでの使用禁止コマンドを示します。

RESTRICTオプションの詳細は、7-8ページの SQLPLUS -R[ESTRICT] {1|2|3}コマンドを参照してください。

コマンドコマンドコマンドコマンド レベルレベルレベルレベル 1 レベルレベルレベルレベル 2 レベルレベルレベルレベル 3

EDIT 使用禁止 使用禁止 使用禁止

GET 使用禁止

HOST、! 使用禁止 使用禁止 使用禁止

SAVE 使用禁止 使用禁止

SPOOL 使用禁止 使用禁止

START、@、@@ 使用禁止

STORE 使用禁止 使用禁止

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

Page 337: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

廃止された SQL*Plusコマ

F

廃止された廃止された廃止された廃止された SQL*Plusコマンドコマンドコマンドコマンド

この付録では、一部の SQL*Plusコマンドの旧バージョンについて説明します。これらの旧コマンドは、これまでと同じように SQL*Plusで動作しますが、現在はサポートされていません。かわりに、次の表に示す SQL*Plusコマンドを使用することをお薦めします。

ンド F-1

Page 338: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL*Plusで廃止されたコマンドとその代替コマンド

SQL*Plusで廃止されたコマンドとその代替コマンドで廃止されたコマンドとその代替コマンドで廃止されたコマンドとその代替コマンドで廃止されたコマンドとその代替コマンド

廃止された廃止された廃止された廃止されたコマンドコマンドコマンドコマンド 代替コマンド代替コマンド代替コマンド代替コマンド 代替コマンドの説明代替コマンドの説明代替コマンドの説明代替コマンドの説明

BTITLE(旧形式)

BTITLE

(8-24ページ)

各レポート・ページの下部にタイトルを配置し書式設定するか、または現行の BTITLE定義をリスト表示します。

COLUMN DEFAULT COLUMN CLEAR

(8-31ページ)

列の表示属性をデフォルトにリセットします。

DOCUMENT REMARK

(8-87ページ)

SQL*Plusがコマンドとして解釈しないようにコメントを付けます。

NEWPAGE SET NEWPAGE

(8-105ページ)

各ページの最上部から上部タイトルまでの間に入れる空白行の数を設定します。

SET BUFFER EDIT

(8-64ページ)

SQL*Plusコマンド・バッファ、または保存されたファイルの内容を編集できます。外部ファイルの作成および使用には、SQL*Plusの SAVE、GET、@および STARTコマンドを使用します。

SET CLOSECURSOR なし 廃止

SET DOCUMENT なし 廃止

SET MAXDATA なし 廃止

SET SCAN SET DEFINE

(8-102ページ)

接頭辞の置換変数に使用される文字を設定します。

SET SPACE SET COLSEP

(8-100ページ)

SELECTによって選択された列の間に出力するテキストを設定します。

SET TRUNCATE SET WRAP

(8-110ページ)

SELECTによって選択された行が長すぎてカレント行の幅に収まらない場合に、その行を SQL*Plusで切り捨てるかどうかを制御します。

SHOW LABEL なし 廃止

TTITLE(旧形式)

TTITLE

(8-138ページ)

各レポート・ページの上部にタイトルを配置し書式設定するか、または現行の TTITLE定義をリスト表示します。

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

Page 339: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DOCUMENT

BTITLE(旧形式)(旧形式)(旧形式)(旧形式)

用途用途用途用途それぞれのレポート・ページの下部にタイトルを表示します。

構文構文構文構文BTI[TLE] text

使用方法使用方法使用方法使用方法旧形式の BTITLEコマンドは、書式設定機能に関しては、新形式と比べると制限されていますが、UFI(SQL*Plusの前身)との互換性を提供します。旧形式で定義される下部タイトルでは、空白行が 1行入り、その後に中央揃えされたテキスト行が続きます。詳細は、この付録の「TTITLE(旧形式)」を参照してください。

COLUMN DEFAULT

用途用途用途用途特定の列の表示属性をデフォルト値にリセットします。

構文構文構文構文COL[UMN] {column|expr} DEF[AULT]

使用方法使用方法使用方法使用方法COLUMN CLEARと同じ働きをします。

DOCUMENT

用途用途用途用途コマンド・ファイル内のドキュメントのブロックを開始します。

構文構文構文構文DOC[UMENT]

廃止された SQL*Plusコマンド F-3

Page 340: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

NEWPAGE

使用方法使用方法使用方法使用方法コマンド・ファイルにコメントを挿入する現行のメソッドの詳細は、第 3章の「後で使用するコマンドの保存」の「コマンド・ファイルへのコメントの挿入」および第 8章「コマンド・リファレンス」の「REMARK」コマンドを参照してください。

DOCUMENTと入力して [Return]を押すと、ドキュメントの作成が終了するまで、「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バッファのみで要件が満たされます。

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

Page 341: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET DOCUMENT

入力したバッファが存在しない場合、SET BUFFERは、そのバッファを定義(作成および命名)します。SQL*Plusを終了すると、SQL*Plusは、バッファおよびその内容を削除します。

問合せを実行すると、SQLバッファは、自動的に現行バッファになります。バッファから別のバッファへテキストをコピーするには、GETおよび SAVEコマンドを使用します。現行バッファからテキストを消去するには、CLEAR BUFFERを使用します。別のバッファを用しているときに SQLバッファからテキストを消去するには、CLEAR SQLを使用します。

SET CLOSECURSOR

用途用途用途用途カーソル使用動作を設定します。

構文構文構文構文SET CLOSECUR[SOR] {ON|OFF}

使用方法使用方法使用方法使用方法カーソルが、それぞれの SQL文の後でクローズおよび再オープンするかどうかを、ONまたは OFFで設定します。環境によっては、この機能が、データベース・サーバーのリソースを解放する際に有効な場合もあります。

SET DOCUMENT

用途用途用途用途DOCUMENTコマンドで作成したドキュメントのブロックを表示および抑止します。

構文構文構文構文SET DOC[UMENT] {ON|OFF}

使用方法使用方法使用方法使用方法SET DOCUMENT ONを指定すると、ドキュメントのブロックが画面にエコー表示されます。SET DOCUMENT OFFを指定すると、ドキュメントのブロックの表示が抑止されます。

DOCUMENTコマンドの詳細は、この付録の「DOCUMENT」を参照してください。

廃止された SQL*Plusコマンド F-5

Page 342: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SET MAXDATA

SET MAXDATA

用途用途用途用途SQL*Plusが処理できる最大行幅を設定します。

構文構文構文構文SET MAXD[ATA] n

使用方法使用方法使用方法使用方法SQL*Plusでは、最大行幅は制限されていません。SQL*Plusは、SET MAXDATAを使用して設定した値を無視します。

SET SCAN

用途用途用途用途置換変数およびパラメータの存在確認のためのスキャンを制御します。OFFを指定すると、置換変数およびパラメータの処理が抑止され、ONを指定すると、通常の処理ができます。

構文構文構文構文SET SCAN {ON|OFF}

使用方法使用方法使用方法使用方法ONを指定すると、SET DEFINE ONと同じ機能が得られます。

SET SPACE

用途用途用途用途出力内の列間の空白数を設定します。nの最大値は 10です。

構文構文構文構文SET SPACE {1|n}

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

Page 343: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

TTITLE(旧形式)

使用方法使用方法使用方法使用方法SET SPACE 0コマンドの機能は、SET COLSEPコマンドと同じです。このコマンドは、SET COLSEPに置き換えられましたが、下位互換性のためにまだ使用可能です。SHOWコマンドを使用すると、COLSEPは認識しますが SPACEは認識しないため、COLSEPを使用する方が便利です。

SET TRUNCATE

用途用途用途用途SQL*Plusが、現行の行の幅に収まらないデータ項目を切り捨てるか折り返すかを制御します。

構文構文構文構文SET TRU[NCATE] {ON|OFF}

使用方法使用方法使用方法使用方法ONは、SET WRAP OFFと同じ働きをし、OFFは逆の働きをします。SHOWコマンドを使用すると、WRAPは認識しますが TRUNCATEは認識しないため、WRAPを使用する方が便利です。

SHOW LABEL

用途用途用途用途現行セッションのセキュリティ・レベルを表示します。

構文構文構文構文SHO[W] LABEL

TTITLE(旧形式)(旧形式)(旧形式)(旧形式)

用途用途用途用途それぞれのレポート・ページの上部にタイトルを表示します。

構文構文構文構文TTI[TLE] text

廃止された SQL*Plusコマンド F-7

Page 344: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

TTITLE(旧形式)

使用方法使用方法使用方法使用方法旧形式の 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」コマンドを参照してください。

例例例例旧形式の TTITLEを使用して、最初の行に左寄せの日付と右寄せのページ番号が示され、次の行に SALES DEPARTMENTが表示され、3番目の行に PERSONNEL REPORTが表示されるように上部タイトルを設定するには、次のように入力します。

SQL> TTITLE ’SALES DEPARTMENT|PERSONNEL REPORT’

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

Page 345: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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

ARCHIVELOG

オンライン REDOログ・ファイルを再利用する前にアーカイブする REDOログ・モード。ARCHIVELOGモードは、インスタンスおよびディスク障害からデータベースを完全にリカバリする。データベースをオープンし、使用可能なときにデータベースのバックアップを取ることができる。ただし、アーカイブ REDOログをメンテナンスするために追加の管理操作が必要。詳細は、「アーカイブ REDOログ(archived redo log)」を参照。

ASCII

デジタル・データを使用して印字可能文字を表すための規則。ASCIIは、American Standard Code for Information Interchangeの頭文字。

body

レポートの大部分(テキスト、図形、データおよび計算)が含まれているレポート領域。

CGI((((Common Gateway Interface))))

サーバー上で実行するプログラムとともに、ユーザーとの対話(通常はWebブラウザを介する)を可能にするためのWebサーバーの一部。CGIスクリプトでは、対話形式でWebページまたはWebページの要素を動的に作成したり、ユーザーがWebページに対して入力し、その入力内容に対して応答することができる。ユーザーがオンラインで記入して送信するという対話形式での使用方法が一般的である。CGIスクリプトで一般的に使用される言語には、Perl、Javaスクリプトおよび Javaがある。

CGIスクリプト(スクリプト(スクリプト(スクリプト(CGI script))))

「CGI(Common Gateway Interface)」を参照。

CHARデータ型(データ型(データ型(データ型(CHAR datatype))))

ANSI/ISO互換性に提供される Oracleデータ型。CHAR列は、固定長の列。また、いくつかの印刷可能文字(A、3、&、空白など)を含むことができ、1~ 2000までの文字またはNULLを格納できる。

用語集用語集用語集用語集 -1

Page 346: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

CLOBデータ型(データ型(データ型(データ型(CLOB datatype))))

標準の Oracleデータ型の 1つ。CLOBデータ型は、シングルバイトのキャラクタ・ラージ・オブジェクト・データを格納するために使用され、最大 4GBまでの文字データを格納できる。

DATEデータ型(データ型(データ型(データ型(DATE datatype))))

日時のデータを格納するために使用される標準の Oracleデータ型。標準の日付書式は、DD-MMM-YY(たとえば、23-NOV-98)。DATE列には、紀元前 4712年 1月 1日から西暦9999年 12月 31日までの日時を指定できる。

DBA

「データベース管理者(database administrator: DBA)」を参照。

DCL

「データ制御言語(Data Control Language: DCL)」を参照。

DDL

「データ定義言語(Data Definition Language: DDL)」を参照。

DML

「データ操作言語(Data Manipulation Language: DML)」を参照。

DUAL表(表(表(表(DUAL table))))

1行のみ含まれている DUALという名前の標準の Oracleデータベース表。DUAL表は、小さいダミー表(意味のないデータ)を要求して既知の結果(真など)を保証するアプリケーションに役立つ。

HTML

WWW上の大部分のドキュメントを記述する際に使用する言語。HTML(HyperText Markup Language)で記述されていれば、ほぼすべてのWebブラウザで表示でき、リンクを指定できる。HTMLに関する推奨事項は、w3c(World Wide Web Consortium)から広開されている。w3cおよび HTMLの推奨事項の詳細は、http://www.w3c.orgを参照。

LGWR

「ログ・ライター(LGWR)」を参照。

LONGデータ型(データ型(データ型(データ型(LONG datatype))))

標準の Oracleデータ型の 1つ。LONG列は、A、3、&、空白などの印刷可能文字を含むことができ、0~ 2GBまでの長さにできる。

用語集用語集用語集用語集 -2

Page 347: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

MARKUP

SQL*Plus出力を HTML形式で生成し、インターネットで配信可能にするための SET MARKUP句または SQLPLUS -MARKUP句。HTMLで生成された SQL*Plus出力は、HTML 3.2をサポートしているWebブラウザで表示できる。

NCHARデータ型(データ型(データ型(データ型(NCHAR datatype))))

標準の Oracleデータ型の 1つ。NCHARデータ型は、固定幅の各国語キャラクタ・セット文字列を指定する。列サイズの最大値は、2000バイト。

NCLOBデータ型(データ型(データ型(データ型(NCLOB datatype))))

標準の Oracleデータ型の 1つ。NCLOBデータ型は、固定幅の各国語キャラクタ・セット文字(NCHAR)データを格納するために使用される。最大 4GBの文字テキスト・データを格納できる。

Net8

クライアント /サーバー間およびサーバー /サーバー間通信をネットワークに接続させるOracleのリモート・データ・アクセス・ソフトウェア。Net8は、分散処理および分散データベース機能をサポートしている。Net8は、何度も実行し、多くの通信プロトコルを相互接続する。Net8は、SQL*Netバージョン 2と下位互換がある。

NULL((((null))))

値が使用できないまたは値が未知であることを意味する値。NULLは、特定のどの値(NULL同士でも)とも等しくない。NULLとの比較は、常に偽になる。

NULL値(値(値(値(NULL value))))

値が存在しないこと。

NUMBERデータ型(データ型(データ型(データ型(NUMBER datatype))))

標準の Oracleデータ型の 1つ。NUMBER列は、数値を含むことができる。小数点および記号を含むこともできる。1~ 105桁の 10進数(38桁までが有効)も含むことができる。

NVARCHAR2データ型(データ型(データ型(データ型(NVARCHAR2 datatype))))

標準の Oracleデータ型の 1つ。NVARCHAR2データ型は、可変長 NCHAR文字列を指定する。NVARCHAR2幅指定は、各国語キャラクタ・セットが固定幅の場合は、文字数を示す。各国語キャラクタ・セットが可変幅の場合は、バイト数を示す。列の最大サイズは、4000バイト。

Oracle Server

オラクル社が販売している RDBMS(リレーショナル・データベース管理システム)。RDBMSのコンポーネントは、DBAおよびデータベース・ユーザーが使用するカーネルおよび様々なユーティリティを含む。

用語集用語集用語集用語集 -3

Page 348: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

Parallel Server((((parallel server))))

複数のコンピュータがデータへのアクセス、ソフトウェアまたは周辺装置を共有できるようになるハードウェア・アーキテクチャ(疎結合されたプロセッサなど)。Parallel Serverシステムを使用すると、Oracleは、単一の物理データベースを共有する複数のデータベース・インスタンスを実行して、そのようなハードウェア・プラットフォームを利用する。適切なアプリケーションでは、Oracle Parallel Serverを使用すると、データベースのパフォーマンスを向上させたまま、ユーザーは複数のマシン上で 1つのデータベースに接続できる。

PL/SQL

オラクル社が提供する SQLの 3GLプロシージャ型言語拡張機能。PL/SQLは、SQLの使用しやすさおよび柔軟性を構造化プログラミング言語のプロシージャ型機能性(IF...THEN、WHILE、LOOPなど)と結合させたもの。PL/SQLがデータベースに格納されていない場合でも、アプリケーションは、個々の SQL文ではなく PL/SQLのブロックをデータベースに送る。そのため、ネットワークの通信量を軽減できる。

PL/SQLは、実行時に解釈および解析されるため、コンパイルが不要。

RAWデータ型(データ型(データ型(データ型(RAW datatype))))

標準の Oracleデータ型。RAWデータ列は、バイナリを含む形式でデータを含む場合がある。RAW列を使用して、バイナリ(非文字)・データを格納できる。

RDBMS(リレーショナル・データベース管理システム)((リレーショナル・データベース管理システム)((リレーショナル・データベース管理システム)((リレーショナル・データベース管理システム)(Relational Database Management System))))

Oracle7以前の用語。データベース内の実際のデータのみでなく、システムの作成およびメンテナンスに使用するソフトウェアを示す。詳細は、「リレーショナル・データベース管理システム(Relational Database Management System: RDBMS)」、「サーバー(server)」および「Oracle Server」を参照。

REDOログ(ログ(ログ(ログ(redo log))))

データに与えたすべての変更の連続したログ。REDOログは、変更がディスクに書き込まれることを妨げる障害のイベント内で書き込まれたり使用される。REDOログは、複数のREDOログ・ファイルで構成される。

REDOログ・ファイル(ログ・ファイル(ログ・ファイル(ログ・ファイル(redo log file))))

データベースへのすべての変更のレコードを含むファイル。これらのファイルは、リカバリ操作のために使用される。詳細は、「REDOログ(redo log)」を参照。

SELECT構文のリスト(構文のリスト(構文のリスト(構文のリスト(SELECT list))))

問合せ内のキーワード SELECTに続く項目のリスト。これらの項目には、列名、SQL関数、定数、疑似列、列の計算および別名が含まれる場合がある。問合せの結果に含まれる列の数は、SELECT構文のリスト内の項目の数と一致する。

用語集用語集用語集用語集 -4

Page 349: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SELECT文(文(文(文(SELECT statement))))

複数の表またはビューからフェッチする行および列を指定する SQL文。詳細は、「SQL文(SQL statement)」を参照。

SETコマンド変数(コマンド変数(コマンド変数(コマンド変数(SET command variable))))

「システム変数(system vaiable)」を参照。

SGA

「システム・グローバル領域(System Global Area: SGA)」を参照。

SQL*Loader

オペレーティング・システム・ファイルから Oracleデータベース表にデータをロードするために使用する Oracle Tools。

SQL*Net

Net8の前の製品。Oracle Serverと機能し、Oracle RDBMSまたは Oracle Tools(SQL*Formsなど)を実行する複数のコンピュータで、ネットワークを介してデータ交換できるようにする Oracle製品。SQL*Netは、分散処理および分散データベース機能をサポートする。SQL*Netは、何度も実行し、多くの通信プロトコルを相互接続する。

SQL*Plus

データ操作、データ定義および Oracleデータベースに対するアクセス権の定義用の、SQLをベースとした対話型言語。多くの場合、エンド・ユーザーのレポート作成ツールとして使用される。

SQL(構造化問合せ言語)((構造化問合せ言語)((構造化問合せ言語)((構造化問合せ言語)(Structured Query Language))))

リレーショナル・システム用に国際的に認められている規格。問合せのみでなく、データ定義、操作、セキュリティ、参照整合性などにも使用される。詳細は、「データ操作言語(Data Manipulation Language: DML)」、「データ定義言語(Data Definition Language:

DDL)」および「データ制御言語(Data Control Language: DCL)」を参照。

SQLコマンド(コマンド(コマンド(コマンド(SQL command))))

「SQL文(SQL statement)」を参照。

SQLスクリプト(スクリプト(スクリプト(スクリプト(SQL script))))

SQL*Plusで起動して、データベース管理を迅速および簡単に実行できる SQL文を含むファイル。

SQLバッファ(バッファ(バッファ(バッファ(SQL buffer))))

ユーザーが入力した最新の SQLコマンドまたは PL/SQLブロックを含むデフォルト・バッファ。SQL*Plusコマンドは、SQLバッファに格納されない。

用語集用語集用語集用語集 -5

Page 350: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

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)」を参照。

USERID

オプションの Net8アドレスを使用して、ユーザー名およびパスワードを指定できるコマンドライン引数。

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、ログインなどを指す。アカウントは、システム管理者が作成して、制御する。

用語集用語集用語集用語集 -6

Page 351: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

位置合せ(位置合せ(位置合せ(位置合せ(alignment))))

データをフィールド内で位置付ける方法。定義されたフィールド幅で左揃え、右揃え、中央揃え、フラッシュ /左揃え、フラッシュ /右揃え、またはフラッシュ /中央揃えに位置合せができる。

インスタンス(インスタンス(インスタンス(インスタンス(instance))))

Oracleデータベースへの接続が必要なバックグランド・プロセスおよびメモリー領域。データベース・システムには、1つのインスタンスおよび 1つのデータベースが必要。Oracleデータベース・サーバーは、SGAおよび Oracleデータベース・サーバー・システムの一連のプロセスで構成される。

インスタンス障害(インスタンス障害(インスタンス障害(インスタンス障害(instance failure))))

「データベース・インスタンス障害(database instance failure)」を参照。

インスタンス・リカバリ(インスタンス・リカバリ(インスタンス・リカバリ(インスタンス・リカバリ(instance recovery))))

ソフトウェアまたはハードウェア障害のイベント内のインスタンスのリカバリ。インスタンスをリカバリすると、再びデータベースが使用可能になる。インスタンスが異常終了すると、次回のインスタンス起動でインスタンス・リカバリが自動的に実行される。

エディタ(エディタ(エディタ(エディタ(editor))))

ファイルの作成または変更を行うプログラム。

エラー・メッセージ(エラー・メッセージ(エラー・メッセージ(エラー・メッセージ(error message))))

コンピュータ・プログラム(SQL*Plusなど)からのメッセージ。プログラムまたはコマンドの実行を妨げる潜在的な問題をユーザーに通知する。

エンド・ユーザー(エンド・ユーザー(エンド・ユーザー(エンド・ユーザー(end user))))

システムの開発対象になるユーザー。たとえば、航空座席予約システムのエンド・ユーザーは、航空座席予約事務員になる。詳細は、「SQL*Plus」を参照。

オープン・データベース(オープン・データベース(オープン・データベース(オープン・データベース(open database))))

インスタンスによってマウントおよびオープンされ、ユーザーのアクセスが可能なデータベース。データベースがオープンしている場合、ユーザーは、データベースを含む情報にアクセスできる。詳細は、「マウント・データベース(mounted database)」を参照。

オブジェクト(オブジェクト(オブジェクト(オブジェクト(object))))

オブジェクト型のインスタンス。Oracle8では、オブジェクトは、持続的(たとえば、データベースに格納されている)である場合と、一時的(たとえば、PL/SQLまたは Oracle コール・インタフェース(Oracle Call Interface: OCI)の変数)である場合がある。詳細は、「オブジェクト型(object type)」を参照。

用語集用語集用語集用語集 -7

Page 352: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

オブジェクト型(オブジェクト型(オブジェクト型(オブジェクト型(object type))))

オブジェクトの構造および動作をモデルとするユーザー定義の種類。異なるプログラミング言語内のクラスの概念と等しい。Oracle8では、オブジェクト型には、属性およびメソッドのあるパブリック・インタフェースがある。オブジェクト型は、抽出データ型と呼ばれることもある。

オブジェクト・リレーショナル・モデル(オブジェクト・リレーショナル・モデル(オブジェクト・リレーショナル・モデル(オブジェクト・リレーショナル・モデル(object-relational model))))

単一のシステムへのリレーショナルおよびオブジェクト・データ・モデルのキー・アスペクトを結合するデータベース・モデル。Oracle8は、オブジェクト・リレーショナル・データベース・システム。

オペレーティング・システム(オペレーティング・システム(オペレーティング・システム(オペレーティング・システム(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))))

列に含まれる 4つの型(CHARACTER、DATE、NUMBERまたは LONG)の情報の 1つ。ユーザーが列の内容に対して実行できる操作は、その列に入っている情報の型によって異なる。詳細は、「書式(format)」を参照。

用語集用語集用語集用語集 -8

Page 353: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

カレント行(カレント行(カレント行(カレント行(current line))))

SQL*Plusエディタなどのエディタで、編集コマンドが影響する現行バッファ内の行。

行(行(行(行(row))))

(1)レコードの同義語。複数の列に対する値を持つデータベース表内の 1行になっているデータ。タプルと呼ばれることもある。

(2)問合せの出力に含まれる一連のフィールド値。詳細は、「列(column)」を参照。

切捨て(切捨て(切捨て(切捨て(truncate))))

故意にまたは誤って、値の先頭または終わりから 1つ以上の文字を破棄または失うこと。

句(句(句(句(clause))))

SQL文の一部。句自体は、SQLの全文にはならない。たとえば、WHERE句がそれにあたる。

クライアント(クライアント(クライアント(クライアント(client))))

他のアプリケーションまたはコンピュータ(サーバー)のサービス、データまたは処理が必要なユーザー、ソフトウェア・アプリケーションまたはコンピュータ。2タスク環境では、クライアントはユーザー・プロセス。ネットワーク環境環境では、クライアントはローカル・ユーザー・プロセスで、サーバーはローカルまたはリモートになる。

計算(計算(計算(計算(computation))))

データベースからフェッチしたデータでランタイム計算を実行するために使用される。これらの計算は、SELECT文で直接実行できる種類の計算のスーパーセット。詳細は、「計算式列(formula column)」を参照。

計算結果列(計算結果列(計算結果列(計算結果列(computed column))))

「計算(computation)」を参照。

計算式列(計算式列(計算式列(計算式列(formula column))))

PL/SQLプロシージャ、ファンクションまたは式、ユーザー・イグジット、SQL文またはそれらの任意の組合せからデータを取得する手動で作成された列。

構成(構成(構成(構成(configuration))))

Net8で、ネットワーク通信を準備するための一連の指示。詳細は、Net8のマニュアルを参照。

構成ファイル(構成ファイル(構成ファイル(構成ファイル(configuration files))))

ネットワークのコンポーネントの識別および特性設定をするために使用されるファイル。構成とは、主にネットワーク・コンポーネントの名前を指定し、それらのコンポーネント間の関係を識別するプロセスのこと。

用語集用語集用語集用語集 -9

Page 354: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

構文(構文(構文(構文(syntax))))

コマンド、修飾子およびパラメータを結合して、有効なコマンド文字列を形成するための規則系。

コマンド(コマンド(コマンド(コマンド(command))))

特定のタスクを実行するための、プログラム、アプリケーション、オペレーティング・システムまたは他のソフトウェアの要求、またはそれらへの指示。コマンドは、1つの単語の場合、またはその他の句、様々な引数、オプション、パラメータまたは修飾子を必要とする場合がある。文とは異なり、コマンドは、入力するとすぐに実行される。SQL*Plusコマンドとしては、ACCEPT、CLEARおよび COPYコマンドなどがそれにあたる。

コマンド・ファイル(コマンド・ファイル(コマンド・ファイル(コマンド・ファイル(command file))))

対話形式で入力できる一連のコマンドを含むファイル。このファイルは保存されるため、利便性が良く再実行できる。コマンド・ファイルは、通常、オペレーティング・システムに固有の名前で呼ばれる。SQL*Plusでは、START、@または @@コマンドで実行できる。

コマンド・プロンプト(コマンド・プロンプト(コマンド・プロンプト(コマンド・プロンプト(command prompt))))

デフォルトでは SQL>というテキスト。これを使用して、SQL*Plusは次のコマンドを要求する。

コマンドライン(コマンドライン(コマンドライン(コマンドライン(command line))))

キーボード入力したコマンドが表示されるコンピュータの画面上の行。たとえば、コンピュータの DOSプロンプトに続く領域がそれにあたる。詳細は、「プロンプト(prompt)」を参照。

コミット(コミット(コミット(コミット(commit))))

データベース内のデータに永続的な変更(挿入、更新、削除)を加えること。変更をコミットする前は、変更を格納したり、データを以前の状態にリストアできるように新旧両方のデータが存在する。

コメント(コメント(コメント(コメント(comment))))

プログラムに説明のテキストを挿入するための言語要素。コメントを実行しても影響はない。

サーバー(サーバー(サーバー(サーバー(server))))

Oracleデータベースに対して、同時に共有データ・アクセスする場合に必要な機能を処理する Oracleソフトウェア。サーバー部は、クライアント・アプリケーションから発行されたSQL文および PL/SQL文を取り出して処理する。サーバー部を管理するコンピュータは、その負荷に合せて最適化されている必要がある。

用語集用語集用語集用語集 -10

Page 355: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

サマリー(サマリー(サマリー(サマリー(summary))))

サマリーまたはサマリー列を使用して、小計、総合計、実行合計および他のレポート内のデータの合計を計算する。

サマリー行(サマリー行(サマリー行(サマリー行(summary line))))

合計、平均、最大値または他の計算した値を含むレポート内の行。ユーザーは、BREAKおよび COMPUTEコマンドを使用してサマリー行を作成する。

式(式(式(式(expression))))

既存の値から新しい値を計算するために使用される SALARY + COMMISSIONなどの式。式は、列名、関数、演算子および定数で構成される。式は、コマンドまたは SQL文にある。

システム・エディタ(システム・エディタ(システム・エディタ(システム・エディタ(system editor))))

オペレーティング・システムが提供するテキスト・エディタ。

システム管理者(システム管理者(システム管理者(システム管理者(system administrator))))

コンピュータのオペレーティング・システムの運用およびメンテナンスに対する責任者。

システム・グローバル領域(システム・グローバル領域(システム・グローバル領域(システム・グローバル領域(System Global Area: SGA))))

ユーザー・プロセスおよびバックグランド・プロセス(1つの Oracleインスタンスに対するデータおよび制御情報など)が要求する情報を含む共有格納領域。

SGAは、Oracleインスタンスが起動するときに割り当てられ、インスタンスが停止するときに割当てが解除される。

システム変数(システム変数(システム変数(システム変数(system vaiable))))

状態または環境を示す変数。Oracleまたは SQL*Plusによってデフォルト値を与えられる。たとえば、LINISEZE、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))))

コンピュータからデータを転送する先のファイル。

用語集用語集用語集用語集 -11

Page 356: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

小計(小計(小計(小計(subtotal))))

レポートで、数値列内の値の合計。ブレーク・フィールド内の同じ値がある行のグループから取られる。詳細は、「サマリー(summary)」を参照。

書式(書式(書式(書式(format))))

情報を含む列の文字、数値、日付、ロングなどの型。ユーザーは、問合せでそれらの列から取り出す情報の書式を設定できる。たとえば、日付型の情報は、23/11/98、Monday Twenty-third November 1998、またはその他の有効な日付書式で表示される。

書式モデル(書式モデル(書式モデル(書式モデル(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 identifier))))

Net8がネットワーク上の特定の Oracleインスタンスに接続するために使用する一連のパラメータ。プロトコルも含まれる。

選択(選択(選択(選択(select))))

問合せ(SQL文の SELECT)を使用して、複数のデータベース表から行をフェッチすること。

用語集用語集用語集用語集 -12

Page 357: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

タイトル(タイトル(タイトル(タイトル(title))))

レポートの各ページの上端または下端に表示される複数の行。TTITLEおよび BTITLEコマンドを使用し、タイトルの設定および書式設定を行う。

タイマー(タイマー(タイマー(タイマー(timer))))

TIMINGコマンドが作成する内部記憶域。

置換変数(置換変数(置換変数(置換変数(substitution variable))))

SQL*Plusで、前に 1つまたは 2つのアンパサンド(&)が付いた変数名または数字。置換変数をコマンド・ファイル内で使用して、コマンド・ファイルを実行するときに提供される値を表す。

注釈(注釈(注釈(注釈(remark))))

SQL*Plusで、REMARKコマンドを使用してコマンド・ファイルに挿入できるコメント。

データ型(データ型(データ型(データ型(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文がそれにあたる。

用語集用語集用語集用語集 -13

Page 358: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データ・ディクショナリ(データ・ディクショナリ(データ・ディクショナリ(データ・ディクショナリ(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のカーネルが動作するコンピュータおよびデータベースを含む。

データベース指定(データベース指定(データベース指定(データベース指定(database specification))))

データベースを識別する英数字コード。Net8操作でデータベースを指定したり、データベース・リンクを定義するために使用する。SQL*Plusでは、COPY、CONNECTまたはSQLPLUSコマンドにデータベース指定を設定できる。

用語集用語集用語集用語集 -14

Page 359: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

データベース文字列(データベース文字列(データベース文字列(データベース文字列(database string))))

Net8パラメータの文字列の 1つ。ネットワーク接頭辞および接続するホスト・システムおよびホスト・システム上のデータベースのシステム IDを示すために使用される。

データベース・リンク(データベース・リンク(データベース・リンク(データベース・リンク(database link))))

ローカル・データベースに格納されているオブジェクト。リモート・データベース、リモート・データベースへの通信パス、および、場合によっては、リモート・データベースに対するユーザー名およびパスワードを識別する。データベース・リンクを定義しておくと、そのリンクを使用し、リモート・データベースの表に問合せを実行できる。DBリンクとも呼ばれる。SQL*Plusでは、DESCRIBEコマンドまたは COPYコマンドにデータベース・リンクを設定できる。

ディスマウント・データベース(ディスマウント・データベース(ディスマウント・データベース(ディスマウント・データベース(dismounted database))))

インスタンスによってマウントされていないデータベース。そのため、ディスマウント・データベースは、オープンできず、使用することができない。

ディレクトリ(ディレクトリ(ディレクトリ(ディレクトリ(directory))))

いくつかのオペレーティング・システムで、ファイル・グループ用の名前付きの記憶領域。実際のディレクトリは、特定のデバイス上にある一連のファイルをリストにした 1つのファイル。

テキスト・エディタ(テキスト・エディタ(テキスト・エディタ(テキスト・エディタ(text editor))))

ホスト・コンピュータのオペレーティング・システムで実行されるプログラムの 1つ。ホスト・システム・ファイル、SQLコマンドおよび SQL*Plusコマンドまたは PL/SQLブロックを含む SQL*Plusコマンド・ファイルの作成および編集に使用される。

デフォルト(デフォルト(デフォルト(デフォルト(default))))

ユーザーが指定しなかった場合に SQLが使用する句またはオプションの値。

デフォルト・データベース(デフォルト・データベース(デフォルト・データベース(デフォルト・データベース(default database))))

「ローカル・データベース(local database)」を参照。

問合せ(問合せ(問合せ(問合せ(query))))

任意の組合せ、式または順序でデータを取り出す SQL SELECT文。問合せは、データを変更しないで、データを取り出すのみの読取り専用操作。多くの場合、問合せは、DML文とみなされる。

問合せ結果(問合せ結果(問合せ結果(問合せ結果(query results))))

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

用語集用語集用語集用語集 -15

Page 360: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

トランザクション(トランザクション(トランザクション(トランザクション(transaction))))

単一のユーザーが実行する複数の SQL文を導出する論理作業単位。Oracleと互換性のあるANSI/ISOの SQL規格によると、トランザクションは、ユーザーの最初の実行可能な SQL文で開始される。ユーザーが明示的にコミットまたはロールバックすると、トランザクションは終了する。

ネットワーク(ネットワーク(ネットワーク(ネットワーク(network))))

データまたは周辺機器を共有できるようにするために、ハードウェアおよびソフトウェアを介して互いにリンクされた複数のコンピュータのグループ。

バイト(バイト(バイト(バイト(byte))))

8つの連続したビットで構成されるグループ。英字、数値または記号(文字)を表す。コンピュータによってデータの単位として扱われる。

配列処理(配列処理(配列処理(配列処理(array processing))))

一度に 1行ではなく複数のデータ行に対して実行される処理。SQL*Plus、エクスポート /インポート、プリコンパイラなどの Oracleユーティリティでは、ユーザーが配列のサイズを設定できる。配列のサイズを大きくすると、パフォーマンスが向上する場合がある。

バインド参照(バインド参照(バインド参照(バインド参照(bind reference))))

PL/SQL構造体または SQL SELECT内の単一のリテラル値(たとえば、文字列、数値、日付など)を変換するために使用されるパラメータへの参照。バインド参照では、パラメータ名の前にコロン(:)を付ける必要がある。

バインド変数(バインド変数(バインド変数(バインド変数(bind variable))))

SQL文の中の変数。SQL文を正常に実行するには、バインド変数を有効な値または値のアドレスに置換する必要がある。

パスワード(パスワード(パスワード(パスワード(password))))

ユーザー名に対応付けられた 2次的な識別単語(または英数字の文字列)。パスワードは、データ・セキュリティのために使用され、所有者のみが知っている。パスワードは、オペレーティング・システムまたはソフトウェア・アプリケーション(Oracleデータベースなど)に接続するために、オペレーティング・システムのログイン ID、ユーザー名またはアカウント名を使用して入力される。ユーザー名または IDがパブリックなものであるのに対して、秘密パスワードは、ユーザー名の所有者のみがその名前を使用し、データにアクセスできることを保証する。

バックグラウンド・プロセス(バックグラウンド・プロセス(バックグラウンド・プロセス(バックグラウンド・プロセス(background process))))

オペレーティング・システム環境で起動し、サービスまたはアクションを実行する非対話型処理。Oracleデータベース・サーバー製品によっては、データベース処理を異なるタスクに使用する場合がある。たとえば、データベースの同時ユーザーにかわって行うタスクの実行および調整、電子メッセージの処理および配信、印刷サービスのなどがそれにあたる。

用語集用語集用語集用語集 -16

Page 361: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

パッケージ(パッケージ(パッケージ(パッケージ(package))))

データベース内で 1つの単位として、関連するプロシージャ、ファンクションおよび他のパッケージ構造体をまとめてカプセル化または格納する方法。パッケージを使用すると、データベース管理者またはアプリケーション開発者用に機能がまとめられているため便利なだけではなく、機能性およびデータベースのパフォーマンスが向上する。

バッファ(バッファ(バッファ(バッファ(buffer))))

ユーザーの SQL文または PL/SQLブロックが一時的に格納される領域。SQLバッファが、デフォルト・バッファ。複数のバッファからコマンドを編集および実行できる。ただし、SQL*Plusでは、複数のバッファを使用する必要はない。

幅(幅(幅(幅(width))))

列、パラメータまたはレイアウトのオブジェクトの幅。幅は文字で測定される。空白も 1文字として扱われる。

パラメータ(パラメータ(パラメータ(パラメータ(parameter))))

アンパサンドの後に 1つの数字を続けて構成した置換変数(&1、&2など)。コマンド・ファイル内でパラメータを使用する。STARTコマンドの引数を介してパラメータに値を渡す。

パラメータ・ファイル(パラメータ・ファイル(パラメータ・ファイル(パラメータ・ファイル(parameter file))))

データベースの起動時に使用する特定の値および構成の設定を指定するために、Oracle8i Serverが使用するファイル。パラメータ・ファイルの機能の詳細は、『Oracle8i管理者ガイド』を参照。

引数(引数(引数(引数(argument))))

STARTコマンド内でコマンド・ファイル名に続くデータ項目。引数は、コマンド・ファイル内のパラメータに値を提供する。

ビット(ビット(ビット(ビット(bit))))

データの最小単位。ビットに使用される値は、0と 1の 2つのみ。ビットは、8つずつ結合してバイトというグループにまとめられる。詳細は、「バイト(byte)」を参照。

表(表(表(表(table))))

RDBMS(リレーショナル・データベース管理システム)の記憶領域の基本単位。表は、エントリおよび関係を表し、同じ種類の値(列)を含む複数の情報単位(行)で構成される。それぞれの列は、列名、データ型(CHAR、NCHAR、VARCHAR2、NVARCHAR2、DATE、NUMBERなど)および幅(DATEなどのデータ型によって事前に定義されている場合がある)を備えている。表を作成した後、有効なデータ行を挿入することができる。その後、表の情報を問い合せたり、削除したり、更新することができる。定義済のビジネス・ルールを表データに対して施行するために、表に整合性制約およびトリガーを定義することができる。

用語集用語集用語集用語集 -17

Page 362: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

表示書式(表示書式(表示書式(表示書式(display format))))

「書式(format)」を参照。

表示幅(表示幅(表示幅(表示幅(display width))))

出力フィールドの値を表示するために許容される文字または空白の数。

表の別名(表の別名(表の別名(表の別名(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 group))))

複数のブレーク列を含むグループ。

用語集用語集用語集用語集 -18

Page 363: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ブレーク順序(ブレーク順序(ブレーク順序(ブレーク順序(break order))))

ブレーク列のデータを表示する順序。有効なオプションは、昇順および降順。

ブレーク列(ブレーク列(ブレーク列(ブレーク列(break column))))

ユーザーがブレーク操作を定義したレポート内の列。その列の値を変更すると、ブレークが発生する。

ブレーク・レポート(ブレーク・レポート(ブレーク・レポート(ブレーク・レポート(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枚分のデータ。

用語集用語集用語集用語集 -19

Page 364: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ヘッダー(ヘッダー(ヘッダー(ヘッダー(heading))))

SQL*Plusで、列の上に表示される出力列の名前になるテキスト。詳細は、「列ヘッダー(column heading)」を参照。

別名(別名(別名(別名(alias))))

SQLでは、表、列または SQL文内の値に割り当てられた一時的な名前。同じ文または対応する SQL*Plusコマンドの中で、その項目を参照するために使用される。

変数(変数(変数(変数(variable))))

単一の値を保持する名前付きのオブジェクト。SQL*Plusは、バインド変数、置換変数、システム変数およびユーザー変数を使用する。

ホスト・コンピュータ(ホスト・コンピュータ(ホスト・コンピュータ(ホスト・コンピュータ(host computer))))

SQL*Plusの実行元となるコンピュータ。

マウント・データベース(マウント・データベース(マウント・データベース(マウント・データベース(mounted database))))

Oracleインスタンスに関連付けられたデータベース。データベースは、オープンまたはクローズされる。データベースは、マウントおよびオープンしてユーザーが接続する必要がある。マウントされていてもオープンされないデータベースは、メンテナンスするためにDBAによって接続される場合がある。

マルチスレッド・サーバー(マルチスレッド・サーバー(マルチスレッド・サーバー(マルチスレッド・サーバー(multi-threaded server))))

マルチスレッド・サーバーを使用すると、サーバー・プロセスの数を最小化し、使用可能なシステム・リソースの使用率を最大化して、多くのユーザー・プロセスがいくつかのサーバー・プロセスを共有できる。

無名ブロック(無名ブロック(無名ブロック(無名ブロック(anonymous block))))

名前がない PL/SQLプログラム・ユニット。実行可能文を囲む BEGINキーワードおよびENDキーワードを明示的に指定する必要はない。

文字(文字(文字(文字(character))))

コンピュータ・システム上で 1つのアルファベット文字または数字を保持できる 1つの位置。複数の文字がフィールド内に保持される。複数のフィールドが 1つのレコードを形成する。また、複数のレコードはファイルまたはデータベース表内に保持される。

文字位置(文字位置(文字位置(文字位置(justification))))

「位置合せ(alignment)」を参照。

文字列(文字列(文字列(文字列(character string))))

連続した文字、数値または記号で構成されるグループ。通常は、単語、名前またはその一部で構成される。

用語集用語集用語集用語集 -20

Page 365: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

文字列(文字列(文字列(文字列(string))))

行の中の単語または文字の並び。

ユーザー変数(ユーザー変数(ユーザー変数(ユーザー変数(user variable))))

明示的に DEFINEコマンドを使用して、または暗黙的に STARTコマンドへの引数を使用して、ユーザーが定義し設定した変数。

ユーザー名(ユーザー名(ユーザー名(ユーザー名(username))))

Oracleデータベース・サーバーおよび他のユーザーがユーザーを識別するための名前。すべてのユーザー名は、プライベート・パスワードに対応付けられる。ユーザー名およびプライベート・パスワードを入力して、Oracleデータベースに接続する必要がある。詳細は、「アカウント(account)」を参照。

ユリウス暦日付(ユリウス暦日付(ユリウス暦日付(ユリウス暦日付(Julian date))))

SQL関数 JDATEを使用して整数形式で日付を表すアルゴリズム。ユリウス暦日付を使用すると、日付に対して他の算術関数を実行できる。

予約語(予約語(予約語(予約語(reserved word))))

(1)特定のソフトウェアまたはオペレーティング・システムで特殊な意味を持つ用語。

(2)SQLでは、SQL文で使用するために予約される一連のワード。データベース・オブジェクトの名前として予約語を使用することはできない。

ラベル(ラベル(ラベル(ラベル(label))))

COMPUTEコマンド内で計算された値に対して出力するラベルを定義する。COMPUTEラベルの最大長は、500文字。

リカバリ(リカバリ(リカバリ(リカバリ(recover))))

指定した REDOログ・ファイルからデータベースの全部または一部をリストアする Oracleプロセス。

リモート・コンピュータ(リモート・コンピュータ(リモート・コンピュータ(リモート・コンピュータ(remote computer))))

ローカル・コンピュータ以外のネットワーク上にあるコンピュータ。

リモート・データベース(リモート・データベース(リモート・データベース(リモート・データベース(remote database))))

デフォルト・データベース以外のデータベース。リモート・コンピュータ上に置き、CONNECT、COPYおよび SQLPLUSコマンドで指定できる。

用語集用語集用語集用語集 -21

Page 366: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

リレーショナル・データベース管理システム(リレーショナル・データベース管理システム(リレーショナル・データベース管理システム(リレーショナル・データベース管理システム(Relational Database Management System: RDBMS))))

Oracle7以前の用語。共有データの格納および取出しを行うために設計されたコンピュータ・プログラム。リレーショナル・システムでは、データは、同じ列のセットを含む複数行で構成される表内に格納される。Oracleは、リレーショナル・データベース管理システム。他のタイプのデータベース・システムは、階層的システムまたはネットワーク・データベース・システムと呼ばれる。

レコード(レコード(レコード(レコード(record))))

複数の列に対する値を持つデータベース表内の 1行になっているデータ。

列(列(列(列(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コマンドを使用して、現行のトランザクションでデータへ加えた保留中の変更を破棄すること。セーブポイントを指定して、トランザクションの一部をロールバックできる。

用語集用語集用語集用語集 -22

Page 367: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ログイン(ログイン(ログイン(ログイン(log in))))

オペレーティング・システムに通信を確立し、ユーザーの端末セッションのデフォルトの特性を設定するための一連のアクションを端末で実行すること。

ログイン文字列(ログイン文字列(ログイン文字列(ログイン文字列(logon string))))

ローカル・データベースまたはリモート・データベースに接続するアプリケーションを実行するために使用するユーザー指定のコマンドライン。ログイン文字列は、明示的に接続識別子を含むか、暗黙的にデフォルトの接続識別子を使用する。

ログオフ(ログアウト)ログオフ(ログアウト)ログオフ(ログアウト)ログオフ(ログアウト)

オペレーティング・システムとの双方向通信および端末セッションを終了すること。

ログ・ライター(ログ・ライター(ログ・ライター(ログ・ライター(LGWR))))

Oracleインスタンスが使用するバックグランド・プロセス。LGWRは、ディスクに REDOログ・エントリを書き込む。REDOログ・データは、システム・グローバル領域の REDOログ・バッファ内に生成される。トランザクションがコミットし、ログ・バッファが一杯になるため、LGWRは、オンライン REDOログ・ファイルに REDOログ・エントリを書き込む。

用語集用語集用語集用語集 -23

Page 368: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

用語集用語集用語集用語集 -24

Page 369: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

索引索引索引索引

記号記号記号記号#(シャープ記号),8-34$(数値書式),4-5&(アンパサンド)置換変数,3-22

*(アスタリスク)DELコマンド,3-2,8-54LISTコマンド,3-2,8-75

--(コメント・デリミタ),3-12-~(負の無限大記号),8-34-MARKUP,4-38,4-42,7-3

SPOOL句,7-4SQLPLUSコマンド句,7-4

-SILENTオプション,4-46,7-8-(ハイフン)句,7-2長い SQL*Plusコマンドの継続,2-12,8-1

.(ピリオド),2-10/*...*/(コメント・デリミタ),3-12/NOLOGオプション,7-10/(スラッシュ)コマンド

RUNとの類似,2-10,8-9,8-93現行の PL/SQLブロックの実行,2-10現行の SQLコマンドの実行,2-10コマンド・プロンプトでの入力,2-10,8-9使用方法,8-9デフォルト・ログイン,7-9,8-47バッファ行番号プロンプトでの入力,8-9,2-8

:BindVariable句EXITコマンド,8-67

:(コロン)バインド変数,3-31

;(セミコロン),2-6@@(二重アットマーク)コマンド,3-20,8-7

STARTとの類似,8-7,8-130コマンド・ファイル,8-7

@(アットマーク)CONNECTコマンド,6-3,8-47COPYコマンド,6-5,8-49SQLPLUSコマンド,3-17,6-4,7-2STARTとの類似,3-16,8-6,8-130コマンド,3-16,3-20,8-5コマンド引数,8-5コマンド・ファイル,3-16,8-5コマンド・ファイルへのパラメータの受渡し,8-5

[Backspace]キー,2-2[Cancel]キー,2-2,2-15[Interrupt]キー,2-2[Pause]キー,2-2,2-18[Resume]キー,2-2[Return]キー,2-2_EDITOR、EDITコマンド,3-8,8-64~(無限大記号),8-34

数字数字数字数字0、数値書式,4-59、数値書式,4-5

AACCEPTコマンド,3-28,8-10

CHAR句,8-10DATE句,8-10DEFAULT句,8-11DEFINEコマンド,8-52FORMAT句,8-10HIDE句,8-11NOPROMPT句,8-11

索引索引索引索引 -1

Page 370: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

NUMBER句,3-30PROMPT句,3-29,8-11値の入力を求めるプロンプトのカスタマイズ,3-30

ALIAS句,8-31ATTRIBUTEコマンド,8-17

ALL句,8-121ALTERコマンド使用禁止,E-5

ANALYZEコマンド使用禁止,E-5

APPEND句COPYコマンド,6-7,8-50SAVEコマンド,3-18,8-94

APPENDコマンド,3-2,3-6,8-12APPINFO句,8-97ARCHIVE LOGコマンド,5-4,8-13モード,5-4

ARCHIVELOG,用語集 -1ARCHバックグラウンド・プロセス,8-14ARRAYSIZE変数,8-98

COPYコマンドとの関連,6-8,8-51ASCII,用語集 -1ATTRIBUTEコマンド,8-17

ALIAS句,8-17CLEAR COLUMNコマンド,8-18CLEAR句,8-18FORMAT句,8-18LIKE句,8-18OFF句,8-18ON句,8-18すべての属性の表示特性のリスト表示,8-17属性の表示特性のリスト表示,8-17表示特性の制御,8-18複数入力,8-18列の消去,8-28,8-31列の表示属性の復元,8-18列の表示属性の抑止,8-18

AUDITコマンド使用禁止,E-5

AUTOCOMMIT変数,2-14,8-99AUTOMATIC句,8-81AUTOPRINT変数,8-99AUTORECOVERY変数,8-99AUTOTRACE変数,3-37,8-99AVG関数,4-16

BBEGINコマンド,2-10使用禁止,E-6

BLOCKTERMINATOR,8-100,8-108,8-109body,用語集 -1BODYオプション,7-4BODY句,7-4BOLD句,8-91,8-139BREAKS句,4-15,8-28BREAKコマンド,4-11,8-19

BREAKSの消去,4-15COMPUTEとの併用,4-16,8-19,8-21,8-43DUPLICATES句,8-22ON column句,4-12,8-19ON expr句,8-20ON REPORT句,4-19,8-21ON ROW句,4-14,8-21REFCURSOR変数の書式設定に使用,8-145SET COLSEPとの併用,8-101SKIP PAGE句,4-13,4-14,8-22SKIP句,4-14,8-21SQLの ORDER BY句,4-11,4-12,4-14,8-20値の重複の抑止,4-12各行の後に空白を挿入,4-14現在のブレーク定義のリスト表示,4-15,8-22総合計および小計の出力,4-20タイトルの変数に現在の日付を格納,4-31タイトルへの列値の表示,4-29定義の取消し,8-28複数のブレーク列の指定,4-14,8-19ブレーク列が変更されたときの空白の挿入,4-13レポートの終わりでのサマリー行の出力,4-19

BTITLE句,8-122BTITLEコマンド,4-22,8-24,用語集 -13

BOLD句,8-139CENTER句,8-139COL句,8-139FORMAT句,8-140LEFT句,8-139OFF句,8-139RIGHT句,8-139SKIP句,8-139TAB句,8-139TTITLEコマンド,8-24下部タイトルの前に空白行を出力,4-26旧形式,F-3

索引索引索引索引 -2

Page 371: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

現在の定義の抑止,8-139タイトルのインデント,8-139タイトル要素の整列,8-139列値変数の参照,8-36

BUFFER句,3-2,3-10,8-28BUFFER変数,F-4

CCANCEL句,8-83CENTER句,4-25,8-91,8-139CGI,用語集 -1CGIスクリプト,4-42,用語集 -1CHANGEコマンド,3-2,3-3,8-25CHAR句,8-10

VARIABLEコマンド,8-143CHARデータ型,用語集 -1CHAR列書式の変更,4-6,8-32デフォルトの書式,4-6,8-32

CLEAR句,4-9,8-31ATTRIBUTEコマンド,8-18

CLEARコマンド,8-28BREAKS句,4-15,8-28BUFFER句,3-2,3-10,8-28COLUMNS句,4-9,8-28COMPUTES句,8-28SCREEN句,3-31,8-28SQL句,8-29TIMING句,8-29

CLOB句VARIABLEコマンド,8-144

CLOBデータ型,用語集 -2CLOB列最大幅の設定,8-105書式の変更,4-6,8-32デフォルトの書式,8-32取出し位置の設定,8-105取出しサイズの設定,8-105

CLOSECURSOR変数,F-2,F-5CMDSEP変数,8-100COLSEP変数,8-100COLUMNS句,4-9,8-28COLUMNコマンド,4-2,8-30

ALIAS句,8-31BREAKコマンド,8-21CLEAR句,4-9,8-31

DEFAULT句,F-3DEFINEコマンド,8-52ENTMAP句,8-31FOLD_AFTER句,8-31,8-32FOLD_BEFORE句,8-32FORMAT句,4-5,4-6,8-32HEADING句,4-2,8-35HEADSEP文字,8-35JUSTIFY句,8-35LIKE句,4-8,8-35NEW_VALUE句,4-29,4-31,8-35NEWLINE句,8-35NOPRINT句,4-29,8-36NULL句,8-36NUMBER列の書式設定,4-4,8-33OFF句,4-9,8-37OLD_VALUE句,4-30,8-36ON句,4-9,8-37PRINT句,8-36REFCURSOR変数の書式設定に使用,8-145TRUNCATED句,4-7,8-37WORD_WRAPPED句,4-7,4-10,8-37WRAPPED句,4-7,8-37下部タイトルへの列値の表示,4-30,8-36上部タイトルへの列値の表示,4-29,8-35タイトルの変数に現在の日付を格納,4-31,8-38複数入力,8-37列の書式設定,4-6列の表示属性の復元,4-9,8-37列の表示属性の抑止,4-9,8-37列の表示属性のリスト表示,4-9,8-30列の表示をデフォルトにリセット,4-9,8-31,F-2

COL句,4-26,8-91,8-139COMMIT句,8-67

WHENEVER OSERROR,8-149WHENEVER SQLERROR,8-151

COMMITコマンド,2-14COMPATIBILITY句

LOGIN.SQL,3-19COMPATIBILITY変数,8-101COMPUTES句,8-28COMPUTEコマンド,4-11,8-41

AVG関数,4-16COUNT関数,4-16LABEL句,4-17,4-19,8-42MAXIMUM関数,4-16MINIMUM関数,4-16

索引索引索引索引 -3

Page 372: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

NUMBER関数,4-16OF句,4-16OFでの SELECT式の参照,8-42ON column句,4-16,8-42ON expr句,8-42ON REPORT句,4-19,8-42ON ROW句,8-42ONでの SELECT式の参照,8-42REFCURSOR変数の書式設定に使用,8-145STD関数,4-16SUM関数,4-16VARIANCE関数,4-16同じ列についての複数のサマリーの出力,4-21異なる列についてのサマリーの計算,4-20最大 LABEL長,8-42すべての定義のリスト表示,4-22,8-42総合計および小計の出力,4-20定義の取消し,4-22,8-28ブレークでのサマリー行の出力,4-16レポートの終わりでのサマリー行の出力,4-19

CONCAT変数,3-26,8-101CONNECTコマンド,6-2,6-3,8-47

@(アットマーク),6-3,8-47INTERNAL,8-47SYSDBA句,7-9,8-48SYSOPER句,7-9,8-48サービス名,6-3接続識別子,6-3パスワードの変更,8-47,8-48,8-77ユーザー名 /パスワード,6-2,6-3,6-4,8-47

CONNECTコマンド(SQL)使用禁止,E-5

CONTINUE句WHENEVER OSERROR,8-149WHENEVER SQLERROR,8-151

COPYCOMMIT変数,8-101COPYコマンドとの関連,6-8,8-51

COPYTYPECHECK変数,8-101COPYコマンド,6-4,8-49

@(アットマーク),6-5,8-491つのデータベース上にある表の間でのデータのコ

ピー,6-9APPEND句,6-7,8-50ARRAYSIZE変数,6-8,8-51COPYCOMMIT変数,6-8,8-51CREATE句,6-6,8-50FROM句,6-5,8-49

INSERT句,6-7,8-50LONG変数,6-8,8-51REPLACE句,6-6,8-50SELECTによるソース表の命名,6-6,8-51TO句,6-5,8-49USING句,6-6,8-51アクションの決定,6-5宛先の表,6-5,8-50宛先の列名の指定,6-5,8-50コピーするデータの指定,6-6,8-51コミットが行われる場合,8-51サービス名,6-5,6-7,6-9サンプル・コマンド,6-5,6-6使用禁止,E-5ソースの行および列の決定,6-6,8-51データベース間のデータのコピー,6-4問合せ,6-6,8-51必須の接続識別子,8-50表内のデータの置換,6-6,8-50表の作成,6-6,8-50表へのデータの挿入,6-7,8-50別のユーザーの表を参照,6-8メッセージの解釈,6-8ユーザー名 /パスワード,6-5,6-7,6-9,8-49

COUNT関数,4-16CREATE句

COPYコマンド,6-6,8-50CREATEコマンド

PL/SQLの入力,2-8使用禁止,E-5

DDATABASE句,8-82DATAFILE句,8-83DATEデータ型,用語集 -2

DATE句,8-10DATE列書式の変更,4-6,8-32,8-39デフォルトの書式,4-6

DB2,8-101DBA,5-2,用語集 -14DBA権限,8-131DBAモード,8-131DBMS_APPLICATION_INFOパッケージ,8-97DCL,用語集 -13

索引索引索引索引 -4

Page 373: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

DDL,用語集 -13DECLAREコマンド使用禁止,E-6

DECLAREコマンド(PL/SQL),2-10DEFAULT句,8-11DEFINEコマンド,3-21,8-52,用語集 -21

CHAR値,8-52置換変数,3-24,8-53ホスト・システム・エディタ,3-8,8-53

DEFINE変数,3-26,8-102DELETEコマンド使用禁止,E-5

DELコマンド,3-2,3-7,8-54*の使用,3-2アスタリスクの使用,8-54

DEMOBLD,1-7DEMODROP,1-7DEPT表,1-5DESCRIBEコマンド(SQL*Plus),2-17,8-56接続識別子,8-56リスト表示できる PL/SQLプロパティ,8-57リスト表示できる表プロパティ,8-56

DISABLEDキーワード、使用禁止コマンド,E-4DISCONNECTコマンド,6-2,8-63DML,用語集 -13DOCUMENTコマンド新しいバージョンの REMARK,F-4廃止されたコマンド

DOCUMENT,F-2,F-3DOCUMENT変数,F-2,F-5DROPコマンド使用禁止,E-5

DUAL表,用語集 -2DUPLICATES句,8-22

EECHO変数,3-16,8-102EDITFILE変数,8-102EDITコマンド,3-7,8-64

_EDITORの定義,3-8,8-64コマンド・ファイルの作成,3-11コマンド・ファイルの変更,3-18,8-64使用禁止,E-5デフォルトのファイル名の設定,8-102

EMBEDDED変数,8-102EMP表,1-5

ENTMAP,7-5ENTMAP句,4-47,7-5,8-31ESCAPE変数,3-26,8-102EXCLUSIVE句,8-131EXECUTEコマンド,8-66使用禁止,E-5

EXIT句WHENEVER OSERROR,8-149WHENEVER SQLERROR,8-151

EXITコマンド,2-4,8-67:BindVariable句,8-67COMMIT句,8-67FAILURE句,8-67ROLLBACK句,8-67SET MARKUPとともに使用,4-39WARNING句,8-67コマンド・ファイル内,8-130使用禁止,E-5

FFAILURE句,8-67FEEDBACK変数,8-103FLAGGER変数,8-103FLUSH変数,8-103FOLD_AFTER句,8-32FORCE句,8-131FOLD_BEFORE句,8-32FORMAT句,8-10,8-32

ATTRIBUTEコマンド,8-18COLUMNコマンド,4-5,4-6REPHEADERおよび REPFOOTERコマンド,8-91TTITLEおよび BTITLEコマンド,4-28,8-140

FROM句,8-82FROM句(SQL*Plus),6-5,8-49

GGETコマンド,3-15,8-69

LIST句,8-69NOLIST句,8-69コマンド・ファイルの取出し,3-15,8-69コマンド・ファイルの変更,3-18使用禁止,E-5

GLOGIN.SQL,3-19,3-38,3-41,7-10「LOGIN.SQL」を参照

GRANTコマンド,E-2

索引索引索引索引 -5

Page 374: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

使用禁止,E-5

HHEADING句,4-2,8-35HEADING変数,8-103HEADSEP変数,8-104

COLUMNコマンドでの使用,4-3,8-35HEADオプション,7-4HEAD句,7-4HELPコマンド,8-70HIDE句,8-11HOSTコマンド,2-16,8-71コマンド・ファイル名のリスト表示,3-9使用禁止,E-5

HTML,4-38,4-42,用語集 -2エンティティ,4-47オプション,7-4句,7-4タグ,4-38ファイルへのスプール,7-6

IIMMEDIATEモード,8-126INIT.ORAファイルパラメータ・ファイル,8-131

INPUTコマンド,3-2,3-5,8-73SAVEを使用したコマンド・ファイルの作成,3-9複数行の入力,8-73

INSERT句,6-7,8-50INSERTコマンド使用禁止,E-6

INSTANCE変数,8-104INTERNAL「CONNECT」を参照

JJUSTIFY句,8-35

LLABEL変数

SHOWコマンド,F-2,F-7LEFT句,4-25,8-91,8-139LGWR,用語集 -23

LIKE句,4-8,8-18,8-35LINESIZE変数,4-24,4-32,8-104LIST句,8-13,8-69LISTコマンド,3-2,8-75

*の使用,3-2アスタリスクの使用,8-75カレント行の判断,3-3,8-75最終行をカレント行にする,3-3,8-75

LNO句,8-122LOBOFFSET変数,8-105LOCK TABLEコマンド使用禁止,E-6

LOG_ARCHIVE_DESTパラメータ,8-13LOGFILE句,8-83LOGIN.SQL,3-19,7-10「GLOGIN.SQL」を参照

SETコマンドの挿入,3-19タイトルの変数に現在の日付を格納,4-30入力するサンプル・コマンド,3-19

LONGCHUNKSIZE変数,4-7,8-32,8-105LONGデータ型,用語集 -2LONG変数,8-105

COPYコマンドへの影響,6-8,8-51LONG列最大幅の設定,8-105書式の変更,4-6,8-32デフォルトの書式,8-32取出しサイズの設定,8-105

MMARKUP,4-38,7-3,8-105,用語集 -3

BODY句,7-4ENTMAP句,7-5HEAD句,7-4PREFORMAT句,7-7SPOOL句,7-4TABLE句,7-5例,8-115

MAXDATA変数,F-2,F-6MAXIMUM関数,4-16MINIMUM関数,4-16MOUNT句,8-132

索引索引索引索引 -6

Page 375: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

NNCHAR句

VARIABLEコマンド,8-143NCHARデータ型,用語集 -3NCHAR列書式の変更,4-6,8-32デフォルトの書式,4-6,8-32

NCLOB句VARIABLEコマンド,8-144

NCLOBデータ型,用語集 -3NCLOB列最大幅の設定,8-105書式の変更,4-6,8-32デフォルトの書式,8-32取出し位置の設定,8-105取出しサイズの設定,8-105

Net8,用語集 -3,用語集 -5接続識別子,8-47プロトコル,6-3

NEW_VALUE句,4-29,8-35タイトルの変数に現在の日付を格納,4-31,8-35,

8-38NEWLINE句,8-35NEWPAGEコマンド,F-2,F-4NEWPAGE変数,4-31,8-105NEXT句,8-14NLS_DATE_FORMAT,8-10,8-39NOAUDITコマンド使用禁止,E-6

NOLIST句,8-69NOLOG,7-10NOMOUNT句,8-132NONE句

WHENEVER OSERROR,8-149WHENEVER SQLERROR,8-151

NOPARALLEL句,8-84NOPRINT句,4-17,4-29,8-36NOPROMPT句,8-11NORMALモード,8-126NULL句,8-36NULL値,用語集 -3表示するテキストの設定,8-36,8-105

NULL変数,8-105NUMBER関数,4-16NUMBER句,3-30,8-10

VARIABLEコマンド,8-143

NUMBERデータ型,用語集 -3NUMBER列書式の変更,4-4,8-33デフォルトの書式,4-4,8-34

NUMFORMAT句LOGIN.SQL,3-19

NUMFORMAT変数,8-106NUMWIDTH変数,8-106

NUMBER列の書式への影響,4-4,8-34NVARCHAR2データ型,用語集 -3NVARCHAR2列書式の変更,4-6,8-32デフォルトの書式,4-6,8-32

OOFF句,8-37

ATTRIBUTEコマンド,8-18COLUMNコマンド,4-9,8-37REPFOOTERコマンド,8-91REPHEADERコマンド,8-91SPOOLコマンド,4-34,8-128TTITLEおよび BTITLEコマンド,4-28,8-139

OF句,4-16OLD_VALUE句,4-30,8-36ON column句

BREAKコマンド,4-12,8-19COMPUTEコマンド,4-16,8-42

ON expr句BREAKコマンド,8-20COMPUTEコマンド,8-42

ON REPORT句BREAKコマンド,4-19,8-21COMPUTEコマンド,4-19,8-42

ON ROW句BREAKコマンド,4-14,8-21COMPUTEコマンド,8-42

ON句ATTRIBUTEコマンド,8-18COLUMNコマンド,4-9,8-37TTITLEおよび BTITLEコマンド,4-29

OPEN句,8-132Oracle

USERID,用語集 -6Oracle Server,用語集 -3ORDER BY句出力で値を同時に表示,4-11

索引索引索引索引 -7

Page 376: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

タイトルへの列値の表示,4-29OUT句,4-35,8-128

PPAGESIZE句

LOGIN.SQL,3-19PAGESIZE変数,2-7,4-32,8-106PAGE句,8-90Parallel Server,用語集 -4PARALLEL句,8-132PARAMETERS句,8-122PASSWORDコマンド,8-47,8-77使用禁止,E-5

PAUSEコマンド,3-31,8-78LOGIN.SQL,3-19

PAUSE変数,2-18,8-106PL/SQL,2-10,用語集 -4

SQL*Plusでのモード,2-8SQLコマンド,2-8実行,8-66定義のリスト表示,2-17ブロック、PL/SQL,2-10

PLAN_TABLE表,3-37PL/SQL,1-2

SQL*Plusでの出力を書式設定,8-144PLUSTRACEロール,3-37PNO句,8-123PREFORMAT,7-7PREFORMAT句,7-7PRINT句,8-36PRINTコマンド,8-79PRODUCT_USER_PROFILE表,E-2PRODUCT_USER_PROFILE表の作成,E-2PROMPT句,3-29,8-11PROMPTコマンド,3-28,8-80値の入力を求めるプロンプトのカスタマイズ,3-30

PUPBLD.SQL,E-2

QQUITコマンド,8-67「EXIT」を参照

RRAWデータ型,用語集 -4RDBMS,用語集 -4,用語集 -22RECOVER句,8-132

RECOVERコマンド,8-81AUTOMATIC句,8-81CANCEL句,8-83CONTINUE句,8-83DATABASE句,8-82DATAFILE句,8-83FROM句,8-82LOGFILE句,8-83NOPARALLEL句,8-84STANDBY DATABASE句,8-82STANDBY DATAFILE句,8-83STANDBY TABLESPACE句,8-83TABLESPACE句,8-83UNTIL CANCEL句,8-82UNTIL CHANGE句,8-82UNTIL CONTROLFILE句,8-83UNTIL TIME句,8-82USING BACKUP CONTROL FILE句,8-83データベースのリカバリ,5-5

RECSEPCHAR変数,4-9,8-106RECSEP変数,4-9,8-106REDOログ,用語集 -4,用語集 -8ファイル,用語集 -4

REDOログ・ファイルARCHIVE LOGコマンド,8-13

REFCURSOR句VARIABLEコマンド,8-144

REFCURSORバインド変数,3-33ストアド・ファンクション,3-33

RELEASE句,8-123REMARKコマンド,3-12,8-87,用語集 -13RENAMEコマンド使用禁止,E-6

REPFOOTER句,8-123REPFOOTERコマンド,4-22,8-88

BOLD句,8-91CENTER句,8-91COL句,8-91FORMAT句,8-91LEFT句,8-91OFF句,8-91

索引索引索引索引 -8

Page 377: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

RIGHT句,8-91SKIP句,8-91TAB句,8-91現在の定義の抑止,8-91フッター要素の整列,8-91レポート・フッターをインデント,8-91

REPHEADER句,8-123REPHEADERコマンド,4-22,8-90

BOLD句,8-91CENTER句,8-91COL句,8-91FORMAT句,8-91LEFT句,8-91OFF句,8-91PAGE句,8-90RIGHT句,8-91SKIP句,8-91TAB句,8-91現在の定義の抑止,8-91ヘッダーのインデント,8-91ヘッダー要素の整列,4-25,8-91

REPLACE句COPYコマンド,6-6,8-50SAVEコマンド,3-18,8-94

RESTRICT,7-8,8-131,E-8RETRY句,8-132REVOKEコマンド,E-2使用禁止,E-6

RIGHT句,4-25,8-91,8-139ROLLBACK句,8-67

WHENEVER OSERROR,8-149WHENEVER SQLERROR,8-151

RUNコマンド,2-10,8-93/(スラッシュ)コマンドとの類似,2-10,8-93現行の PL/SQLブロックの実行,2-10現行の SQLコマンドまたは PL/SQLブロックの実

行,2-10最終行をカレント行にする,3-3使用禁止,E-5

SSAVEコマンド,3-8,8-94

APPEND句,3-18,8-94CREATE句,8-94INPUTを使用したコマンド・ファイルの作成,3-10REPLACE句,3-18,8-94

コマンド・ファイルの変更,3-18コマンド・ファイルへのコマンドの格納,3-8,8-94使用禁止,E-5

SCAN変数,F-2,F-6SCREEN句,3-31,8-28SELECT構文のリスト,用語集 -4SELECTコマンド

BREAKコマンド,4-11,8-20,8-21COLUMNコマンド,8-31COMPUTEコマンド,4-11COPYコマンド,6-6,8-51DEFINEコマンド,8-52ORDER BY句,4-11使用禁止,E-6タイトルの変数に現在の日付を格納,4-31

SELECT文,用語集 -5結果の書式設定,3-33

SERVEROUTPUT変数,8-107SET AUTOTRACE,3-37SET MARKUP

BODY句,7-4ENTMAP句,4-47,7-5HEAD句,7-4HTML,7-4PREFORMAT句,7-7SPOOL句,7-4「SPOOLコマンド」を参照TABLE句,7-5埋め込まれた CGIの例,4-42対話型 HTMLの例,4-39,4-41

SET ROLEコマンド使用禁止,E-6

SET TRANSACTIONコマンド使用禁止,E-6

SET句,8-135SETコマンド,2-13,3-20,4-38,8-96,用語集 -11

APPINFO変数,8-97ARRAYSIZE変数,6-8,8-98AUTOCOMMIT変数,2-14,8-99AUTOPRINT変数,8-99,8-144AUTORECOVERY変数,8-99AUTOTRACE変数,8-99BLOCKTERMINATOR変数,8-100BUFFER変数,F-4CLOSECURSOR変数,F-2,F-5CMDSEP変数,8-100COLSEP変数,4-34,8-100

索引索引索引索引 -9

Page 378: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

COMPATIBILITY句,3-19COMPATIBILITY変数,8-101CONCAT変数,3-26,8-101COPYCOMMIT変数,6-8,8-101COPYTYPECHECK変数,8-101DEFINE句,3-26DEFINE変数,8-102DESCRIBE変数,8-102DOCUMENT変数,F-2,F-5ECHO変数,3-16,8-102EDITFILE変数,8-102EMBEDDED変数,8-102ESCAPE変数,3-26,8-102FEEDBACK変数,8-103FLAGGER変数,8-103FLUSH変数,8-103HEADING変数,8-103HEADSEP変数,4-3,8-104INSTANCE変数,8-104LINESIZE変数,4-24,4-32,8-104LOBOFFSET変数,8-105LOGSOURCE変数,8-105LONGCHUNKSIZE変数,8-105LONG変数,6-8,8-105MARKUP句,8-105MAXDATA変数,F-2,F-6NEWPAGE変数,4-31,8-105NULL変数,8-105NUMFORMAT句,3-19NUMFORMAT変数,8-106NUMWIDTH変数,4-4,8-34,8-106PAGESIZE句,3-19PAGESIZE変数,2-7,4-32,8-106PAUSE句,3-19PAUSE変数,2-18,8-106RECSEPCHAR変数,4-9,8-106RECSEP変数,4-9,8-106REFCURSOR変数の書式設定に使用,8-145SCAN変数,F-2,F-6SERVEROUTPUT変数,8-107SHIFTINOUT句,3-19SHIFTINOUT変数,8-107SPACE変数,F-2,F-6SQLBLANKLINES変数,8-108SQLCASE変数,8-108SQLCONTINUE変数,8-108SQLNUMBER変数,8-108

SQLPREFIX変数,8-108SQLPROMPT変数,8-108SQLTERMINATOR変数,8-109SUFFIX変数,8-109TAB変数,8-109TERMOUT変数,4-31,8-109TIME句,3-19TIME変数,8-109TIMING変数,8-109TRIMOUT変数,8-109TRIMSPOOL変数,8-110TRUNCATE変数,F-2,F-7UNDERLINE変数,4-3,8-110VERIFY句,3-23VERIFY変数,3-26,8-110WRAP変数,4-7,8-110使用禁止,E-5

SETコマンド変数システム変数,2-13

SGA,用語集 -11SGA句,8-123SHIFTINOUT句

LOGIN.SQL,3-19SHIFTINOUT変数,8-107SHOWMODE変数,8-107SHOW句,8-136SHOWコマンド,2-13,8-121,用語集 -11

ALL句,8-121BTITLE句,8-122ERRORS句,8-122LABEL変数,F-2,F-7LNO句,8-122PNO句,8-123RELEASE句,8-123REPFOOTER句,8-123REPHEADER句,8-123SPOOL句,8-123SQLCODE句,8-123TTITLE句,8-123USER句,8-123現在のページ・サイズのリスト表示,4-33

SHUTDOWNコマンド,8-126ABORT,8-126IMMEDIATE,8-126NORMAL,8-126

SKIP PAGE句,4-13,4-14,8-22

索引索引索引索引 -10

Page 379: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SKIP句BREAKコマンド,4-13,4-14,8-21REPHEADERおよび REPFOOTERコマンド,8-91TTITLEおよび BTITLEコマンド,4-25,8-139下部タイトルの前に空白行を配置するための使用方

法,4-26SPACE変数,F-2,F-6SPOOL句,7-4,7-6,8-123SPOOLコマンド,4-33,8-128,用語集 -12

HTMLファイル,7-6OFF句,4-34,8-128OUT句,4-35,8-128SET MARKUPとともに使用,4-39使用禁止,E-5スプールを OFFにする,4-34,8-128ファイル名,4-35,8-128

SQL,用語集 -5コマンド,用語集 -6,用語集 -19スクリプト,用語集 -5選択,用語集 -4,用語集 -5,用語集 -12問合せ,用語集 -15問合せ結果,用語集 -15トランザクション,用語集 -16バッファ,用語集 -5文,用語集 -19レポート,用語集 -22ロールバック,用語集 -22文,用語集 -6

SQL DML文レポート,8-99

SQL*Loader,用語集 -5SQL*Net,用語集 -3,用語集 -5SQL*Plus,用語集 -5

LOGIN.SQL,3-19概要,1-2環境の設定,3-19起動,2-3,7-2起動のショートカット,2-4基本概念,1-2コマンド一覧,8-2コマンド・プロンプト,2-4実行に必要なもの,1-6終了,2-4,8-67条件付き終了,8-149,8-151制限,C-1対象ユーザー,1-2置換変数,用語集 -13

データベース管理,5-2廃止されたコマンドのかわりに使用,F-2バッチ・モードでのコマンドの実行,3-18,8-68変数,用語集 -20

SQL*Plusの起動,2-3ショートカット,2-4

SQL.PNO、レポート・タイトル内での参照,4-27SQL.SQLCODE

EXITコマンドの使用,8-67SQLBLANKLINES変数,8-108SQLCASE変数,8-108SQLCODE句,8-123

SHOWコマンド,8-123SQLCONTINUE変数,8-108SQLNUMBER変数,8-108SQLPLUSコマンド,2-3,4-42,7-2

-?句,7-2-MARKUP SPOOL句,7-4-MARKUPオプション,7-3-MARKUP句,7-4-SILENTオプション,4-46,7-8-SILENT句,7-8-句,7-2/NOLOG句,7-10@(アットマーク),3-17,6-4,7-2BODYオプション,7-4ENTMAPオプション,7-5EXIT FAILURE,7-10HEADオプション,7-4HTMLオプション,7-4PREFORMATオプション,7-7RESTRICT,7-8,E-8SPOOL句,7-6SYSDBA句,7-9TABLEオプション,7-5構文,7-2コマンド・ファイルの実行,3-17サービス名,6-4,7-9失敗した接続,7-10接続識別子,7-9表示構文,7-2ユーザー名 /パスワード,2-3,7-9リモート・データベースへの接続,6-4

SQLPREFIX変数,8-108SQLPROMPT変数,8-108SQLTERMINATOR,8-108SQLTERMINATOR変数,8-72,8-109

索引索引索引索引 -11

Page 380: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

SQL句,8-29SQL(構造化問合せ言語),用語集 -5SQLコマンド、主要なリスト,D-1SQLデータベース言語,1-2SQLバッファ,2-9STANDBY DATAFILE句,8-83STANDBY TABLESPACE句,8-83STARTUPコマンド,8-131

EXCLUSIVE句,8-131FORCE句,8-131MOUNT句,8-132NOMOUNT句,8-132OPEN句,8-132PARALLEL句,8-132PFILE句,8-131RECOVER句,8-132RESTRICT句,8-131RETRY句,8-132SHARED句,8-132データベースの指定,8-132

START句,8-14,8-136STARTコマンド,3-16,8-129,用語集 -21

@@(二重アットマーク)コマンドとの類似,8-7,8-130

@(アットマーク)コマンドとの類似,3-16,8-6,8-130

コマンド・ファイル,3-16,8-129コマンド・ファイルへのパラメータの受渡し,

3-27,8-129使用禁止,E-5引数,3-27,8-129

STD関数,4-16STOP句,8-14,8-136STOREコマンド,3-20,8-135

SET句,8-135SUFFIX変数,8-109

@(アットマーク)コマンドとの併用,8-5EDITコマンドとの併用,8-64GETコマンドとの併用,8-69SAVEコマンドとの併用,8-94STARTコマンドとの併用,8-129

SUM関数,4-16SYSDATE,4-31SYSDBA,用語集 -6SYSOPER,用語集 -6SYSDBA句,8-48SYSOPER句,7-9,8-48

SYSTEMユーザー名,用語集 -6

TTABLESPACE句,8-83TABLEオプション,7-5TABLE句,7-5TAB句,8-91,8-139TAB変数,8-109TERMOUT変数,8-109

SPOOLコマンドでの使用,8-128タイトルの変数に現在の日付を格納,4-31

TIME句LOGIN.SQL,3-19

TIME変数,8-109TIMING句,8-29TIMINGコマンド,2-15,8-136

SHOW句,8-136START句,8-136STOP句,8-136現行の領域を削除,8-136作成されたすべての領域の削除,8-29

TIMING変数,8-109TO句,6-5,8-49TRIMOUT変数,8-109TRIMSPOOL変数,8-110TRUNCATED句,4-7,8-37TRUNCATEコマンド使用禁止,E-6

TRUNCATE変数,F-2,F-7TTITLE句,8-123TTITLEコマンド,4-22,8-138,用語集 -13

BOLD句,8-139CENTER句,4-25,8-139COL句,4-26,8-139FORMAT句,4-28,8-140LEFT句,4-25,8-139OFF句,4-28,8-139ON句,4-29RIGHT句,4-25,8-139SKIP句,4-25,8-139TAB句,8-139旧形式,F-7現在の定義の復元,4-29現在の定義の抑止,4-28,8-139現在の定義のリスト表示,4-28,8-140タイトルのインデント,4-26,8-139

索引索引索引索引 -12

Page 381: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

タイトル要素の整列,4-24,8-139列値変数の参照,4-29,8-35

UUNDEFINEコマンド,3-22,8-142

DEFINEコマンド,8-52UNDERLINE変数,4-3,8-110UNTIL CANCEL句,8-82UNTIL CHANGE句,8-82UNTIL CONTROLFILE句,8-83UNTIL TIME句,8-82UPDATEコマンド使用禁止,E-6

USERID,用語集 -6USER句,8-123USING BACKUP CONTROL FILE句,8-83USING句,6-6,8-51

VV$SESSION仮想表,8-97V$SQLAREA仮想表,8-97VARCHAR2句

VARIABLEコマンド,8-143VARCHAR2データ型,用語集 -6VARCHAR2列書式の変更,4-6,8-32デフォルトの書式,4-6

VARCHARデータ型,用語集 -6VARCHAR列書式の変更,4-6デフォルトの書式,4-6,8-32

VARIABLEコマンド,8-143CHAR句,8-143CLOB句,8-144NCHAR句,8-143NCLOB句,8-144NUMBER句,8-143REFCURSOR句,8-144VARCHAR2句,8-143variable句,8-143

VARIANCE関数,4-16VERIFY句,3-23VERIFY変数,3-26,8-110

WWARNING句,8-67Webレポートの出力,4-38

Webブラウザ,4-38WHENEVER OSERRORコマンド,8-149

COMMIT句,8-149CONTINUE句,8-149EXIT句,8-149NONE句,8-149ROLLBACK句,8-149

WHENEVER SQLERRORコマンド,3-18,8-151COMMIT句,8-151CONTINUE句,8-151EXIT句,8-151NONE句,8-151ROLLBACK句,8-151

WORD_WRAPPED句,4-7,4-10,8-37WRAPPED句,4-7,8-37WRAP変数,4-7,8-110

ああああアーカイブ REDOログ,用語集 -6アカウント,用語集 -6,用語集 -21アクセス、取消しおよび付与,E-2値の入力を求めるプロンプト

ACCEPTの使用,3-28カスタマイズ,3-30置換変数の使用,3-22パラメータによるバイパス,3-27

アンパサンド(&)置換変数,3-22パラメータ,3-27,8-5,8-129

いいいい異常終了モード,8-126位置合せ,用語集 -7印刷

REFCURSOR変数,8-145SPOOLコマンド,8-128スプーリング,用語集 -12バインド変数の自動出力,8-99

インスタンス,用語集 -7起動,8-131

索引索引索引索引 -13

Page 382: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

障害,用語集 -14停止,8-126複数、データベースを共有,8-132リカバリ,用語集 -7

ええええエスケープ文字、定義,8-102エディタ,用語集 -7エラー・メッセージ,用語集 -7エラー・メッセージ、解釈,2-18エラー、含まれている行をカレント行にする,3-3エンティティ、HTML,4-47エンド・ユーザー,用語集 -7

おおおおオープン・データベース,用語集 -7オブジェクト,用語集 -7記述,8-102

オブジェクト型,用語集 -8オブジェクト・リレーショナル・モデル,用語集 -8オペレーティング・システム,用語集 -8折返し,用語集 -8オンライン REDOログ,用語集 -8オンライン・ヘルプ,2-5,7-12,8-70

かかかかカーソル変数,8-144改ページ,用語集 -8改ページ、新しいページの開始,4-32,8-105拡張機能のリスト、リリース 8.1,B-2,B-3,B-4拡張子,8-94,8-109,8-135,用語集 -8型列,用語集 -8

画面、消去,3-31,8-28カレント行,用語集 -9環境属性の保存,8-135カンマ、数値書式,4-5

ききききキー

[Backspace]キー,2-2[Cancel]キー,2-2[Interrupt]キー,2-2

[Pause]キー,2-2[Resume]キー,2-2[Return]キー,2-2

キーボード、キーの意味,2-2規則、コマンド構文,1-3起動時のデータベース名,8-131行,用語集 -9,用語集 -22

COPYでのコミット後に数を設定,8-101一度に取り出す数の設定,8-98終わりの空白を削除,8-109カレント行の後への新規行の追加,3-5,8-73カレント行の編集,3-3カレント行の判断,3-3計算の実行,4-16,8-41テキストの追加,3-6,8-12バッファからの削除,3-7,8-54バッファ内のすべての行の削除,8-54バッファ内のすべての行のリスト表示,3-2,8-75バッファの最後に追加,8-73バッファの最初に追加,8-73幅の変更,4-32,8-104

行折返し,用語集 -8行番号、SQLコマンド,2-6共有ディスク・システム共有のマウント,8-132

共有モードデータベース,8-132

切捨て,用語集 -9

くくくく句,用語集 -9空白行

PL/SQLブロック,2-10SQLコマンド,2-8SQLコマンドでの保存,8-108

空白行、表示,8-78クライアント,用語集 -9

けけけけ計算,用語集 -9計算結果列,用語集 -9計算式列,用語集 -9検索パス,8-51

索引索引索引索引 -14

Page 383: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ここここ構成,用語集 -9構成ファイル,用語集 -9構文,用語集 -10

COPYコマンド,6-5規則,1-3

構文規則SQL*Plusコマンド,2-12SQLコマンド,2-7

コマンド,1-2,用語集 -10SQL構文に従う,2-7実行,2-10,8-9,8-93実行せずに入力,2-8終了,2-7終了および実行のために使用する文字設定,

8-109主要なリスト,D-1次の行への継続,2-7入力および実行,2-6バッファ内の現行のコマンドのリスト表示,3-3バッファ内の編集,3-2ホスト・システム・エディタによる編集,3-7,

8-64保存,3-8,8-94

SQL*PlusSQLコマンドのエントリ中に入力,8-108コマンド一覧,8-2コマンド・プロンプトでの編集,3-2終了,2-13,8-1次の行への継続,2-12,8-1入力および実行,2-11廃止されたコマンドのかわりに使用,F-2略称,2-11

空白,2-5構文規則,1-3コマンド・ファイルへの格納,3-8実行中の停止,2-15実行に影響する変数,2-13種類,2-5使用禁止,E-4タイミング統計の収集,2-15,8-136対話形式での記述,3-21タブ,2-5バッファ内の現行のコマンドのリスト表示,8-75再び使用可能にする,E-5

ホスト、SQL*Plusからの実行,2-16,8-71コマンド・ファイル,3-8

@@(二重アットマーク)コマンド,8-7@(アットマーク)コマンド,3-16,8-5EDITコマンド,3-18,8-64GETおよび SAVEを使用した編集,3-18GETコマンド,3-15,8-69HOSTコマンドによる名前のリスト表示,3-9INPUTおよび SAVEでの作成,3-9SAVEコマンド,3-8,3-10,8-94SAVEでの作成,3-8,8-94SQL*Plusの起動時の実行,3-17,7-10SQLPLUSコマンド,3-17,7-10STARTコマンド,3-16,8-129異常終了およびリターン・コードを返す終了,

3-18,8-150,8-152一連のコマンド・ファイルの順次実行,3-17エンド・ユーザーによる入力,3-21コメントの挿入,3-11,8-87システム・エディタでの作成,3-11実行,3-16,8-5,8-129登録,8-97取出し,3-15,8-69ネスト,3-17ネストした実行,8-7バッチ・モードでの実行,3-18,8-68バッファ内容の保存,3-8,8-94パラメータの受渡し,3-27,8-5,8-129複数の PL/SQLブロックの挿入,3-11複数の SQLコマンドの挿入,3-10,3-11ホスト・システム・エディタによる編集,3-18,

8-64コマンド・ファイル拡張子,8-94,8-109,8-135コマンド・プロンプト,用語集 -10

SQL*Plus,2-4ホスト・オペレーティング・システム,2-3

コミット,用語集 -10コメント,用語集 -10,用語集 -13

--を使用した作成,3-12/*...*/を使用した作成,3-12REMARKを使用した作成,3-12,8-87,F-2コマンド・ファイルへの挿入,3-11,8-87,F-2

コロン(:)バインド変数,3-31

索引索引索引索引 -15

Page 384: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ささささサーバー,用語集 -3,用語集 -10サービス名

CONNECTコマンド,6-3COPYコマンド,6-5,6-7,6-9SQLPLUSコマンド,6-4

サイト・プロファイルGLOGIN.SQL,7-10LOGIN.SQL,7-10「ユーザー・プロファイル」を参照サマリー,用語集 -11サマリー行,用語集 -11同じブレーク列についての複数の出力,4-21計算および出力,4-16,8-41異なる列についての同じタイプの計算,4-20総合計および小計の出力,4-20レポートの終わりでの計算および出力,4-19

サンプル表,1-4DEMOBLD,1-7DEMODROP,1-7アクセス,1-7

しししし式,用語集 -11システム・エディタ,用語集 -11システム管理者,用語集 -11システム管理値タイトル内での書式設定,4-28タイトルの中に表示,4-27,8-138ヘッダーおよびフッターの中に表示,8-90

システム・グローバル領域,用語集 -11システム変数,2-13,8-110,用語集 -11格納および復元,3-20現在の設定の変更,8-96現在の設定のリスト表示,2-13,8-121新旧の値のリスト表示,8-107置換変数との併用,3-26

実行CREATEコマンド,2-8

実行統計レポートへの挿入,8-99

自動コミット,用語集 -11シャープ記号(#),8-34終了、条件付き,8-149,8-151出力,用語集 -11

空白の書式設定,8-109問合せ結果,1-2表示中の一時停止,2-18,8-106

出力ファイル,用語集 -11使用禁止

PL/SQLコマンド,E-6SQL*Plusコマンド,E-4SQLコマンド,E-4

小計,用語集 -12初期化パラメータ表示,8-122

書式,用語集 -12マスク,用語集 -12モデル,用語集 -12列,用語集 -8

書式モデル,用語集 -12書式モデル、数値,4-5,8-34

すすすす数値書式

$,4-50,4-59,4-5カンマ,4-5デフォルト設定,8-106

スキーマ,用語集 -12スクリプト,用語集 -5

CGI,4-42,用語集 -1ストアド・ファンクション,3-33ストアド・プロシージャ作成,2-8

スプーリング,用語集 -12スラッシュ(/)コマンド,8-9

GETコマンドによりロードされたファイルとの併用,8-69

せせせせ制限、SQL*Plus,C-1セキュリティ

PRODUCT_USER_PROFILE表,E-2RESTRICT,7-8,E-8埋込み型のWebレポート,4-43パスワードの変更,8-77

セキュリティ・レベル,用語集 -12セッション,用語集 -12

索引索引索引索引 -16

Page 385: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

接続,用語集 -12接続識別子,6-3,8-47,用語集 -12

CONNECTコマンド,8-47COPYコマンド,8-49DESCRIBEコマンド,8-56SQLPLUSコマンド,7-9

セミコロン(;)PL/SQLブロック,2-10SQL*Plusコマンド,2-13,8-1SQLコマンド,2-6,2-8コマンド・ファイル入力時には不要,3-10バッファに格納されない,3-3

選択,用語集 -12

そそそそ属性表示特性,8-17

たたたたタイトル,用語集 -13インデント,4-26,8-139現在の定義のリスト表示,4-28,8-24,8-140現在の日付の表示,4-30,8-35,8-38最終行から下部タイトルまでの間隔,4-25システム管理値の書式設定,4-28システム管理値の表示,4-27,8-138上部および下部の設定,4-22,8-24,8-138,F-2上部タイトルからページの終わりまでの行の設定,

8-106定義の復元,4-29定義の抑止,4-28,8-139ページ下部への表示,4-22,8-24,F-2ページ最上部から上部タイトルまでの行数の設定,

4-31,8-105,F-2ページ上部への表示,4-22,8-138,F-2ページ番号の表示,4-27,8-141要素の書式設定,8-140要素の整列,4-24,8-139列値の表示,4-29,8-35,8-36レポートの始めまたは終わりに設定,4-22

タイマー,用語集 -13タグ、HTML,4-38

ちちちち置換変数,3-22,用語集 -13,用語集 -20

DEFINEコマンド,3-24,8-53値の入力を求める不要なプロンプトの回避,3-24システム変数との併用,3-26使用する位置および方法,3-22制限,3-26接頭辞,8-102,F-2単一および二重のアンパサンド,3-24直後に文字を追加,3-24未定義,3-22連結文字,8-101

注釈,用語集 -13チューニング,3-36

つつつつ通信,用語集 -3

ててててディスマウント・データベース,用語集 -15ディレクトリ,用語集 -15データ型,用語集 -13

LONG,用語集 -2NCHAR,用語集 -3NCLOB,用語集 -3NUMBER,用語集 -3NVARCHAR2,用語集 -3RAW,用語集 -4VARCHAR,用語集 -6VARCHAR2,用語集 -6

データ制御言語,用語集 -13データ・セキュリティ,用語集 -13データ操作言語,用語集 -13データ定義言語,用語集 -13データ・ディクショナリ,用語集 -14データベース,用語集 -14

1つのデータベース上にある表の間でのデータのコピー,6-9

RECOVERYコマンド,8-81SQL*Plusを終了せずに切断する,6-2,8-63USERID,用語集 -6オープン,5-3,8-132,用語集 -7オブジェクト,用語集 -14起動,5-2

索引索引索引索引 -17

Page 386: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

サーバー,用語集 -14指定,用語集 -14障害,用語集 -14スキーマ,用語集 -12接続識別子,8-47停止,5-2,5-3ディスマウント,用語集 -15データのコピー,6-4,8-49デフォルト・データベースへの接続,6-2,8-47トランザクション,用語集 -16マウント,5-3,8-132文字列,用語集 -15ユーザー名,用語集 -21リカバリ,5-5,8-81リモート・データベースへの接続,6-3,8-47リンク,用語集 -15ローカル,用語集 -22

データベース管理者,1-6,5-2,用語集 -14データベースのオープン,8-132データベースの変更、自動保存,2-14,8-99データベースのマウント,8-132データベース・ファイルリカバリ,8-81

テキスト,7-4,7-5APPENDによるカレント行への追加,3-6,8-12CHANGEによる旧から新への変更,3-3,8-25バッファからの消去,3-2,8-28

テキスト・エディタ,用語集 -15テキスト・エディタ、ホスト・オペレーティング・シ

ステム,3-7,8-64デフォルト,用語集 -15データベース,用語集 -15

とととと問合せ,1-2,用語集 -15

COPYコマンド,6-6,8-51結果,用語集 -15,用語集 -22取り出したレコード数の表示,2-7,8-103

問合せ結果,1-2画面に表示,2-6ファイルへの格納,4-35,8-128プリンタへの出力,4-35,8-128

問合せ実行パスレポートへの挿入,8-99

統計,3-38トランザクション,用語集 -16

トランザクション・ロールバック,用語集 -22

なななな長い SQL*Plusコマンドの継続,2-12,8-1

にににに入力

[Return]のアクセプト,3-31,8-78ユーザーからの値のアクセプト,3-28,8-10

ねねねねネットワーク,用語集 -3,用語集 -16

はははは廃止されたコマンド

BTITLE,F-3COLUMNコマンドの DEFAULT句,F-3NEWPAGE,F-2,F-4SETコマンドの BUFFER変数,F-4SETコマンドの CLOSECURSOR変数,F-2,F-5SETコマンドの DOCUMENT変数,F-2,F-5SETコマンドのMAXDATA変数,F-2,F-6SETコマンドの SCAN変数,F-2,F-6SETコマンドの SPACE変数,F-2,F-6SETコマンドの TRUNCATE変数,F-2,F-7SHOWコマンドの LABEL変数,F-2,F-7TTITLEコマンドの旧形式,F-7

バイト,用語集 -16ハイフン長い SQL*Plusコマンドの継続,2-12,8-1

配列処理,用語集 -16バインド参照,用語集 -16バインド変数,3-31,用語集 -16,用語集 -20

COPYコマンド,8-144PL/SQLブロック,8-144REFCURSOR,3-33SQL文,8-144作成,8-143自動表示,8-99,8-144表示,8-79

パスワード,1-6,用語集 -16CONNECTコマンド,6-2,6-3,8-47COPYコマンド,6-5,6-7,6-9

索引索引索引索引 -18

Page 387: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

PASSWORDコマンドで変更,8-77SQLPLUSコマンド,2-4,6-4,7-9

パス、作成,8-51バックグラウンド・プロセス,用語集 -16異常終了後の起動,8-126

パッケージ,用語集 -17バッチ・モード,3-18,8-68バッファ,2-9,用語集 -5,用語集 -17

1行の削除,8-54,3-21行のリスト表示,3-2,8-75ある範囲の行の削除,8-54,3-2ある範囲の行のリスト表示,3-2,8-75カレント行の削除,8-54,3-2カレント行のリスト表示,3-2,8-75行の削除,3-7,8-54行へのテキストの追加,3-6,8-12最終行の削除,8-54,3-2最終行のリスト表示,3-2,8-75新規行の挿入,3-5,8-73すべての行の削除,8-28,8-54,3-2すべての行のリスト表示,3-2,8-75内容の実行,2-10,8-9,8-93内容の保存,3-8,8-94内容のリスト表示,3-3,8-75ホスト・システム・エディタへのロード,3-8,8-64

幅,用語集 -17パフォーマンス

SQL文,3-36パフォーマンス、ダイヤルアップ回線の場合,8-109パラメータ,3-27,8-5,8-129,用語集 -17幅,用語集 -17

パラメータ・ファイル,用語集 -17パラメータ・ファイル(INIT.ORAファイル)代替を指定,8-131

ひひひひ引数,用語集 -17

STARTコマンド,3-27,8-129日付ユリウス暦,用語集 -21

日付、タイトルの変数に現在の日付を格納,4-30,8-35,8-38

ビット,用語集 -17表,1-2,用語集 -17

DEPT,1-4EMP,1-4

値のコピー,6-4,6-9,8-49コピー時に別のユーザーの表を参照,6-8コピー時の宛先の制御,6-6,8-50サンプル,1-4サンプルへのアクセス,1-7別名,用語集 -18列定義のリスト表示,2-17,8-56

表示書式,用語集 -18幅,用語集 -18

表領域リカバリ,8-81

ピリオド(.)PL/SQLブロックの終了,2-10,8-100

ふふふふファイル,用語集 -18コマンド・ファイル,3-8フラット,4-34

ファイル拡張子,3-20,8-94,8-109,8-135ファイル・タイプ,用語集 -18ファイル名,用語集 -18

@@(二重アットマーク)コマンド,8-7@(アットマーク)コマンド,8-5EDITコマンド,8-64GETコマンド,8-69SAVEコマンド,3-8,8-94SPOOLコマンド,4-35,8-128SQLPLUSコマンド,7-10STARTコマンド,8-129

ファンクション,用語集 -18フッター現在の定義のリスト表示,8-88システム管理値の表示,8-90定義の抑止,8-91ページ下部への表示,8-88レポートの終わりに設定,4-22インデント,8-91要素の書式設定,8-91要素の整列,8-91

負の無限大記号(-~),8-34ブラウザ、Web,4-38フラット・ファイル,4-34フラット・ファイルの作成,4-34ブレーク,用語集 -18ブレーク階層,用語集 -18

索引索引索引索引 -19

Page 388: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

ブレーク・グループ,用語集 -18ブレーク順序,用語集 -19ブレーク定義現在の定義の取消し,4-15,8-28現在の定義のリスト表示,4-15,8-22

ブレーク列,4-11,8-19,用語集 -19値が変更されたときの空白の挿入,4-13値の重複の抑止,4-12複数の指定,4-14

ブレーク・レポート,用語集 -19プロシージャ,用語集 -19プロセス,用語集 -19ブロック,用語集 -19ブロック、PL/SQL,1-2

SQLコマンド,2-8SQLバッファからの実行,2-10SQLバッファに格納,2-10継続,2-10コマンド・ファイルへの格納,3-8終了のために使用する文字設定,8-100タイミング統計,8-109入力および実行,2-10バッファ内の現行のコマンドのリスト表示,3-3バッファ内の編集,3-2ホスト・システム・エディタによる編集,3-7,8-64保存,3-8,8-94

プロンプト,用語集 -19文

SQL,用語集 -19文のトレース,3-36データベース・リンクの使用,3-40問合せ実行パス用,3-38パフォーマンス統計用,3-38パラレル問合せオプション,3-41

へへへへ並行性インスタンス、複数,8-132

ページ,用語集 -19サイズの設定,4-31サイズを画面または用紙のサイズに合わせる,4-31デフォルトのサイズ,4-31長さの変更,4-31,8-106

ページ番号、タイトルへの挿入,4-14,4-27ヘッダー,用語集 -20インデント,8-91

現在の定義のリスト表示,8-92システム管理値の表示,8-90定義の抑止,8-91ページ上部への表示,8-90要素の書式設定,8-91要素の整列,4-24,8-91抑止,4-24列ヘッダー,8-103レポートの始めに設定,4-22

別名,用語集 -18,用語集 -20ヘルプ、オンライン,2-5,7-12,8-70変数,用語集 -11,用語集 -13,用語集 -20システム変数,2-13置換変数,3-22バインド変数,3-31ユーザー変数,8-52

ほほほほホスト・オペレーティング・システム

SQL*Plusからのコマンド実行,2-16,8-71エディタ,3-7,8-64コマンド・プロンプト,2-3ファイル、バッファへのロード,8-69

ホスト・コンピュータ,用語集 -20

ままままマウント,用語集 -20共有データベース,8-132

マスク書式,用語集 -12マルチスレッド・サーバー,用語集 -20

むむむむ無限大記号(~),8-34無名ブロック,用語集 -20

めめめめメッセージ、画面への送信,3-28,8-80メディア・リカバリ,8-132

もももも文字,用語集 -20文字位置,用語集 -20

索引索引索引索引 -20

Page 389: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

文字列,用語集 -20,用語集 -21

ゆゆゆゆユーザー・プロファイル,3-19

GLOGIN.SQL,7-10LOGIN.SQL,7-10「サイト・プロファイル」を参照ユーザー変数,3-21,用語集 -21

1つの定義のリスト表示,3-21,8-52ACCEPTコマンド,3-28,8-10削除,3-22,8-142すべての定義のリスト表示,3-22,8-52タイトルの中に表示,8-138定義,3-21,8-52ヘッダーおよびフッターの中に表示,8-90

ユーザー名,1-6,用語集 -6,用語集 -21CONNECTコマンド,6-2,6-3,8-47COPYコマンド,6-5,6-7,6-9SQLPLUSコマンド,2-3,6-4,7-9異なるユーザー名での接続,6-2,8-47

ユリウス暦日付,用語集 -21

よよよよ予約語,用語集 -21

ららららラベル,用語集 -21

COMPUTEコマンド,4-17,8-42

りりりりリカバリ,用語集 -21

RECOVERコマンド,8-81リターン・コード、指定,3-18,8-68,8-152リモート・コンピュータ,用語集 -21リモート・データベース,用語集 -21リレーショナル・データベース管理システム,

用語集 -4,用語集 -22

れれれれ例埋め込まれた CGIレポート,4-42対話型 HTMLレポート,4-39,4-41

レイアウト・オブジェクト幅,用語集 -17

レコード,用語集 -9,用語集 -22レコード・セパレータ、出力,4-9,8-106列,用語集 -22

1つの列の表示属性のリスト表示,4-9,8-30CHAR、VARCHAR、LONGおよび DATEの書式

設定,8-32MLSLABEL、RAW MLSLABEL、ROWLABELの書

式設定,8-32NUMBERの書式設定,4-4,8-33値がオーバーフローした場合の全列値の折返し表

示,4-7,8-110値がオーバーフローした場合の全列値の切捨て表

示,4-7,8-110値がオーバーフローした場合の列値の折返し表示,

4-7,8-37値がオーバーフローした場合の列値の切捨て表示,

4-7,8-37新しい行の開始,8-35オーバーフローする値の後の行の出力,4-9,8-106下部タイトルへの値の表示,4-30,8-36コピー時の宛先の表での名前,6-5,8-50サマリー行の計算,4-16,8-41出力を OFFまたは ONに設定,4-29,8-36上部タイトルへの値の表示,4-29,8-35書式,用語集 -8すべての単語を 1列に折返し,4-10すべての列の表示属性のリスト表示,4-9,8-30すべての列の表示をデフォルトにリセット,4-9,

8-28幅,用語集 -17表間での値のコピー,6-4,6-9,8-49表示属性のコピー,4-8,8-18,8-35表示属性の復元,4-9,8-18,8-37表示属性の抑止,4-9,8-18,8-37別名の割当て,8-31変数への値の格納,4-29,8-35列の表示をデフォルトにリセット,4-9,8-31,F-2レポート内での書式設定,4-2,8-30

列セパレータ,8-100,F-2列の式,用語集 -22列ヘッダー

CHARおよび LONG列で切り捨てられる場合,4-7DATE列で切り捨てられる場合,4-7NUMBER列で切り捨てられる場合,4-4下線に使用する文字の変更,4-3,8-110

索引索引索引索引 -21

Page 390: Oracle8i SQL*Plus...Oracle8i SQL*Plus ユーザーズ・ガイドおよびリファレンス, リリース8.1 部品番号: J02318-01 原本名:SQL*Plus User’s Guide and Reference,

切り捨てられる場合,8-32整列,8-35複数行への表示,4-3,8-35複数の単語に変更,4-3,8-35変更,4-2,8-35レポートへの出力の抑止,8-103

レポート,1-2,用語集 -22CGIスクリプト,4-42SET MARKUP HTMLを使用した対話型,4-38SILENTモード,4-46SQLPLUS -MARKUPを使用して埋め込まれた,

4-42Web上,4-38,4-42新しいページでの開始,8-102埋め込まれた CGIの例,4-42下部タイトルの作成,4-22,8-24,F-2間隔の設定およびサマリー行による明確化,4-11行折返し,用語集 -8サマリー,用語集 -11サマリー行,用語集 -11小計,用語集 -12上部タイトルの作成,4-22,8-138,F-2タイトル,8-138,F-2,用語集 -13対話型 HTMLの例,4-39,4-41表示,8-99フッターの作成,8-88ブレーク,8-19ヘッダーおよびフッターの作成,4-22ヘッダーの作成,8-90マスター /詳細の作成,4-29,8-36列,8-31列の書式設定,4-4,4-6,8-30列ヘッダーの書式設定,4-2,8-30

ろろろろローカル・データベース,用語集 -22ロール,E-7,用語集 -22使用禁止,E-7再び使用可能にする,E-7

ロールバック,用語集 -22ログアウト,用語集 -23ログイン,用語集 -23

Oracle,6-2,6-3,8-47SQL*Plus,2-4

ログイン文字列,用語集 -23ログオフ,用語集 -23

Oracle,6-2,8-63SQL*Plus,2-4,8-67条件付き,8-149,8-151

ログ・ライター,用語集 -23

索引索引索引索引 -22