ヘッダーをスキップ
Oracle® Databaseユーザーズ・ガイド
11gリリース2 (11.2) for Fujitsu BS2000/OSD
E49829-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 SQL*Plus

SQL*Plusは、SQLコマンドおよびPL/SQLブロックの実行、データベース管理の実行などを行う汎用のユーティリティです。この章では、BS2000/OSDでSQL*Plusを使用する方法について説明します。これは、次の項の情報を含む、『SQL*Plusユーザーズ・ガイドおよびリファレンス』の補足です。

3.1 SQL*Plusの実行

次の項では、BS2000/OSDでSQL*Plusを実行する方法を説明します。

SQL*Plusの使用に関する制限については、『Oracle Databaseインストレーションおよび構成ガイドfor Fujitsu BS2000/OSD』の既知の問題、制限および対処方法に関する説明を参照してください。

3.1.1 SQL*Plusのユーザー・プロファイル

SQL*Plusには、2つの起動ファイルがあります。

  • グローバル起動ファイルであるGLOGIN.SQL

  • ローカルおよび個人で使用するよう設計されているLOGIN.SQL

どのユーザーがSQL*Plusを起動した場合でも、まずGLOGIN.SQLファイルが、次にユーザーのLOGIN.SQLファイルが読み込まれます。

3.1.1.1 GLOGIN.SQLグローバル起動ファイル

グローバル起動ファイルGLOGIN.SQLは、ユーザーがSQL*Plusを起動すると開始されます。このファイルには、SQL*Plusセッションの初めに実行されるSQL文またはSQL*Plusコマンドが含まれる場合があります。GLOGIN.SQLファイルは、$ORAC1120.SQLPLUS.ADMIN.GLOGIN.SQLという名前で、$ORAC1120ユーザーIDの下に配置されています。データベース管理者は、必要に応じてGLOGIN.SQLファイルをカスタマイズできます。GLOGIN.SQLファイルは、現在のユーザーIDにかかわらず実行されます。

3.1.1.2 LOGIN.SQLユーザー起動ファイル

LOGIN.SQL起動ファイルは、ユーザーがSQL*Plusを起動するたびにGLOGIN.SQLコマンド・ファイルの後にコールされます。GLOGIN.SQLと同様に、このファイルには、各SQL*Plusセッションの初めにユーザーが実行したい、SQL文またはSQL*Plusコマンドのいずれかが含まれている場合があります。

SQL*Plusでは、まず現在のBS2000ユーザーIDからLOGIN.SQLが検索されます。LOGIN.SQLファイルが見つからないにもかかわらず、SQLPATH環境変数によってパスが指定される場合、SQL*Plusではそのパスに沿って検索されます。SQL*PlusでLOGIN.SQLファイルが検索できた場合、見つけた最初のLOGIN.SQLファイルが実行されます。カスタマイズされているSQL*Plus環境では、各ユーザーIDは独自のLOGIN.SQLファイルを持つことができます。

SQLPATH環境変数の説明は、付録B「Oracle環境変数」を参照してください。LOGIN.SQLの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。

サンプルの起動ファイルを次に示します。

set echo off
set feedback 4
set pause on
set pause  PLEASE ACKNOWLEDGE TO CONTINUE
set echo on 

3.1.2 SQL*Plusの起動

SQL*Plusを起動するには、次を入力します。

/START-PROGRAM $ORAC1120.SQLPLUS
* userid/password

ユーザーIDまたはパスワードのいずれかを省略すると、それらの入力を求められます。

SQL*Plusにログオンすると、SQLプロンプトが表示されます。

SQL>

ユーザーIDまたはパスワードを求められたくない場合は、次を入力します。

/START-PROGRAM $ORAC1120.SQLPLUS
* /NOLOG
SQL> connect userid/password

このプロンプトに対し、任意のSQL文(SELECT... FROM、CREATE TABLEなど)、または任意のSQL*Plusコマンド(SET LINESIZECOLUMN x FORMAT...など)を入力します。

3.1.3 SQL*Plusの割込み

SQL*PlusのSQL文に割り込むには、INTERRUPTキー[K2]を使用します。たとえば、選択したくない長いレポートを受信した場合、SQL*Plusに割込みをすることができます。INTERRUPTキー[K2]を押した場合、Oracle Databaseでは行の取得を停止し、ユーザーはSQL*Plusコマンド・レベルまで戻されます。


注意:

入力が要求されているときに、INTERRUPTを発行した際には、処理に割り込む前にこの要求に回答する必要があります。ただし、この回答は無視されます。

3.1.4 SQL*PlusからのBS2000コマンドの発行

SQL*PlusのHOSTコマンドおよび$コマンドでは、SQL*Plusにログオン中、BS2000コマンドを入力できます。

次のBS2000コマンドをHOSTまたは$コマンドとともに使用した場合、実行が終了しても、ユーザーはSQL*Plusに戻されません。

  • START-PROGRAM

  • LOAD-PROGRAM

  • CALL-PROCEDURE

  • HELP-SDF

  • LOGOFF

HOSTコマンドの使用例をいくつか示します。

  • BS2000コマンドなしにHOSTコマンドを入力する場合、コマンド・レベルまで戻されます。

    SQL> HOST 
    

    SQL*Plusに戻るには、RESUMEコマンドを使用する必要があります。

  • BS2000コマンドとともにHOSTコマンドを入力した場合、コマンドは実行され、SQL*Plusに戻されます。

    SQL> HOST STA L
    

3.1.5 BS2000エディタの起動

SQL*PlusのEDITコマンドを使用すると、BS2000エディタを起動できます。

SQL> EDIT

このコマンドは、次を実行します。

  • (現在のSQL文を含む)SQLバッファをSQLEDT.BUFというファイルに書き込みます

  • エディタEDTを起動し、EDTは作業領域にファイルSQLEDT.BUFを読み取ります

その後、(@writeコマンドを使用し)このファイルに編集および書込みができます。@haltコマンドを使用すると、エディタは終了され、SQL*Plusに戻されます。その後、SQL*PlusはSQLEDT.BUFの現在のコンテンツを、SQL文を実行できるそのコマンドのバッファに読み戻します。


注意:

SQL*PlusのDEFINE _EDITORコマンドを使用してエディタの名前を定義した場合、BS2000ではそれが無視されます。常にEDTが起動されます。

また、EDITコマンドでSQLファイルを指定し、EDITコマンドを使用してSQLファイルを編集できます。たとえば、次のコマンドを入力すると、エディタEDTがコールされ、LOGIN.SQLファイルを編集できます。デフォルトのファイル名の拡張子.SQLは省略できることに注意してください。

SQL> EDIT login[.SQL]

SQL EDITコマンドの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。

3.1.6 SQL ASCII関数

ASCII関数では文字を取り(BS2000/OSDでは、これはEBCDIC文字となります)、特定のキャラクタ・セットで、その文字の数値表現を戻します。ASCII関数では、EBCDIC文字を同等なASCII文字には変換しません。たとえば、ASCII関数は文字Aに対し、値193を返します。逆関数は、CHRです(例: CHR(193)='A')。

3.1.7 SQL*Plusの出力のスプール

SQL*PlusでSPOOLコマンドを使用する際、SQL*Plusでは出力ファイルのデフォルトのサフィックス.LSTを使用します。


注意:

BS2000/OSDオペレーティング・コマンドによって生成される出力は、スプールされません。

SPOOL OUT要求を発行すると、プログラムではBS2000 /PRINTコマンドが発行されます。

/PRINT tempfile,ERASE 

ここでtempfileとは、スプール・ファイルの一時コピーになります。これはファイルを中央のプリンタにルートします。キャラクタ・セットやリモート・プリンタへのルートなど、任意の/PRINTコマンド・オプションを指定する必要がある場合、ORAENVファイルに次の行を追加して実行します。

PRINTPAR=options  

ここで、options/PRINTコマンド・オプションの任意の順序です(これらのオプションの詳細は、BS2000/OSDマニュアル、Benutzerkommandos (ISP形式)を参照してください)。このプログラムはその後、これらのオプションを含む/PRINTコマンドを発行します。

3.1.8 SQL*Plusの記号の使用

否定に使用するSQLの記号は感嘆符(!)です。感嘆符の使用は、特に異なる環境で実行されるアプリケーションで、等しくないことを指定するために使用することが推奨されます。

キーボードに感嘆符がない場合、等しくないには左および右山カッコ(<>)を使用できます。

結合に使用するSQL*Plusの記号は、垂直バー| (X'4F')です。ドイツ語のキーボードを使用している場合、(öなど)X'4F'を送信する任意のキーを使用できます。

3.2 SQL*Plusコマンド・ファイルの検索パスの指定

次のコマンドを使用した場合、SQL*Plusでは現在のBS2000のユーザーIDから、filename.SQLというファイル名が検索されます。

SQL> START filename

このファイルが見つからない場合、SQL*PlusではORAENV環境変数SQLPATHで指定したパスが検索されます。この変数は、コマンド・ファイルを検索するときに使用する、セミコロンで区切られた1つ以上のファイル名の接頭辞を指定するために使用します。

たとえば、SQLPATHが次のようにPRIVATEおよび$GLOBALに設定されているとします。

SQLPATH=PRIVATE;$GLOBAL 

その場合、次のコマンドを入力したとします。

@filename

SQL*Plusでは次の順で一致するファイル名が見つかるまで、コマンド・ファイルを探し続けます。

  1. filename.SQL

  2. PRIVATE.filename.SQL

  3. $GLOBAL.filename.SQL

デフォルトのファイル名の拡張子の詳細は、第1章「はじめに」を参照してください。

3.3 サンプル・スキーマおよびSQL*Plus

サンプル・スキーマにより、共通のプラットフォームが例として提供されます。サンプル・スキーマおよびSQL*Plusの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。

サンプル・スキーマのインストール方法の詳細は、『Oracle Databaseインストレーションおよび構成ガイドfor Fujitsu BS2000/OSD』のデータベースの作成およびアップグレードに関する章を参照してください。

3.4 SQL*Plusの制限

SQL*Plusの要素のいくつかの制限は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』で説明されています。BS2000/OSD固有の制限は、次の表のとおりです。

項目 制限
ファイル名の長さ 54(カタログIDおよびユーザーIDを含む)
LINESIZE 32767
MAXDATA 32767
ネストされたコマンド・ファイルの最大数 12

3.5 POSIX環境でのSQL*Plusの使用

Oracle Database 11gリリース2 on Fujitsu BS2000/OSD以降では、SQL*Plusは標準のBS2000環境だけでなくPOSIX環境でも実行できるようになりました。

この項の内容は次のとおりです。

3.5.1 SQL*Plusの起動

SQL*PlusはPOSIXシェルで起動できます。POSIXでSQL*Plusを実行する方法の詳細は、「POSIX環境でのOracleユーティリティの起動」を参照してください。

3.5.2 SQL*Plusからのシェル・コマンドの実行

SQL*PlusのHOSTコマンドでは、SQL*Plusにログオン中にPOSIXシェル・コマンドを入力できます。

HOSTコマンドの使用中は、次の点を考慮してください。

  • シェル・コマンドなしにHOSTコマンドを入力する場合、コマンド・レベルまで戻されます。SQL*Plusに戻るにはPOSIXサブシェルでexitコマンドを使用します。

  • シェル・コマンドとともにHOSTコマンドを使用する場合、コマンドは実行され、SQL*Plusに戻されます。

  • BS2000 SDFコマンドを実行するには、bs2cmd POSIXシェル・コマンドを使用します。

3.5.3 SQL*Plusでのエディタの使用

SQL文を編集するには、EDITコマンドを使用し、SQL*Plusでテキスト・エディタを起動します。

デフォルトのエディタは、POSIXセッションに接続されている端末によって異なります。POSIXシェルがブロックモード端末で起動されている場合、SQL*Plusでedtuがデフォルトのエディタとして設定されます。POSIXシェルがリモートのXクライアントからrloginまたはsshを介してxterm端末で起動されている場合、SQL*Plusではデフォルトのエディタはviに設定されます。

SQL*Plusでは、DEFINE _EDITORコマンドを使用しお好みのテキスト・エディタを定義できます。POSIX環境では、お好みのエディタを定義できます。たとえば、EDITコマンドで使用されるエディタをPOSIXエディタedtuに定義したい場合、SQL*Plusで次のコマンドを入力します。

DEFINE _EDITOR = edtu

注意:

  • エディタviは、ブロックモード端末では動作しません。

  • エディタedtuは、xterm端末では動作しません。