SQL*Plusは、SQLコマンドおよびPL/SQLブロックの実行、データベース管理の実行などを行う汎用のユーティリティです。この章では、BS2000/OSDでSQL*Plusを使用する方法について説明します。これは、次の項の情報を含む、『SQL*Plusユーザーズ・ガイドおよびリファレンス』の補足です。
次の項では、BS2000/OSDでSQL*Plusを実行する方法を説明します。
SQL*Plusの使用に関する制限については、『Oracle Databaseインストレーションおよび構成ガイドfor Fujitsu BS2000/OSD』の既知の問題、制限および対処方法に関する説明を参照してください。
SQL*Plusには、2つの起動ファイルがあります。
グローバル起動ファイルであるGLOGIN.SQL
ローカルおよび個人で使用するよう設計されているLOGIN.SQL
どのユーザーがSQL*Plusを起動した場合でも、まずGLOGIN.SQLファイルが、次にユーザーのLOGIN.SQLファイルが読み込まれます。
グローバル起動ファイルGLOGIN.SQLは、ユーザーがSQL*Plusを起動すると開始されます。このファイルには、SQL*Plusセッションの初めに実行されるSQL文またはSQL*Plusコマンドが含まれる場合があります。GLOGIN.SQLファイルは、$ORAC1120.SQLPLUS.ADMIN.GLOGIN.SQLという名前で、$ORAC1120ユーザーIDの下に配置されています。データベース管理者は、必要に応じてGLOGIN.SQLファイルをカスタマイズできます。GLOGIN.SQLファイルは、現在のユーザーIDにかかわらず実行されます。
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
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 LINESIZE、COLUMN x FORMAT...など)を入力します。
SQL*PlusのSQL文に割り込むには、INTERRUPTキー[K2]を使用します。たとえば、選択したくない長いレポートを受信した場合、SQL*Plusに割込みをすることができます。INTERRUPTキー[K2]を押した場合、Oracle Databaseでは行の取得を停止し、ユーザーはSQL*Plusコマンド・レベルまで戻されます。
|
注意: 入力が要求されているときに、INTERRUPTを発行した際には、処理に割り込む前にこの要求に回答する必要があります。ただし、この回答は無視されます。 |
SQL*PlusのHOSTコマンドおよび$コマンドでは、SQL*Plusにログオン中、BS2000コマンドを入力できます。
次のBS2000コマンドをHOSTまたは$コマンドとともに使用した場合、実行が終了しても、ユーザーはSQL*Plusに戻されません。
START-PROGRAM
LOAD-PROGRAM
CALL-PROCEDURE
HELP-SDF
LOGOFF
HOSTコマンドの使用例をいくつか示します。
SQL*PlusのEDITコマンドを使用すると、BS2000エディタを起動できます。
SQL> EDIT
このコマンドは、次を実行します。
その後、(@writeコマンドを使用し)このファイルに編集および書込みができます。@haltコマンドを使用すると、エディタは終了され、SQL*Plusに戻されます。その後、SQL*PlusはSQLEDT.BUFの現在のコンテンツを、SQL文を実行できるそのコマンドのバッファに読み戻します。
また、EDITコマンドでSQLファイルを指定し、EDITコマンドを使用してSQLファイルを編集できます。たとえば、次のコマンドを入力すると、エディタEDTがコールされ、LOGIN.SQLファイルを編集できます。デフォルトのファイル名の拡張子.SQLは省略できることに注意してください。
SQL> EDIT login[.SQL]
SQL EDITコマンドの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。
ASCII関数では文字を取り(BS2000/OSDでは、これはEBCDIC文字となります)、特定のキャラクタ・セットで、その文字の数値表現を戻します。ASCII関数では、EBCDIC文字を同等なASCII文字には変換しません。たとえば、ASCII関数は文字Aに対し、値193を返します。逆関数は、CHRです(例: CHR(193)='A')。
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コマンドを発行します。
否定に使用するSQLの記号は感嘆符(!)です。感嘆符の使用は、特に異なる環境で実行されるアプリケーションで、等しくないことを指定するために使用することが推奨されます。
キーボードに感嘆符がない場合、等しくないには左および右山カッコ(<>)を使用できます。
結合に使用するSQL*Plusの記号は、垂直バー| (X'4F')です。ドイツ語のキーボードを使用している場合、(öなど)X'4F'を送信する任意のキーを使用できます。
次のコマンドを使用した場合、SQL*Plusでは現在のBS2000のユーザーIDから、filename.SQLというファイル名が検索されます。
SQL> START filename
このファイルが見つからない場合、SQL*PlusではORAENV環境変数SQLPATHで指定したパスが検索されます。この変数は、コマンド・ファイルを検索するときに使用する、セミコロンで区切られた1つ以上のファイル名の接頭辞を指定するために使用します。
たとえば、SQLPATHが次のようにPRIVATEおよび$GLOBALに設定されているとします。
SQLPATH=PRIVATE;$GLOBAL
その場合、次のコマンドを入力したとします。
@filename
SQL*Plusでは次の順で一致するファイル名が見つかるまで、コマンド・ファイルを探し続けます。
filename.SQL
PRIVATE.filename.SQL
$GLOBAL.filename.SQL
デフォルトのファイル名の拡張子の詳細は、第1章「はじめに」を参照してください。
サンプル・スキーマにより、共通のプラットフォームが例として提供されます。サンプル・スキーマおよびSQL*Plusの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。
サンプル・スキーマのインストール方法の詳細は、『Oracle Databaseインストレーションおよび構成ガイドfor Fujitsu BS2000/OSD』のデータベースの作成およびアップグレードに関する章を参照してください。
SQL*Plusの要素のいくつかの制限は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』で説明されています。BS2000/OSD固有の制限は、次の表のとおりです。
| 項目 | 制限 |
|---|---|
| ファイル名の長さ | 54(カタログIDおよびユーザーIDを含む) |
| LINESIZE | 32767 |
| MAXDATA | 32767 |
| ネストされたコマンド・ファイルの最大数 | 12 |
Oracle Database 11gリリース2 on Fujitsu BS2000/OSD以降では、SQL*Plusは標準のBS2000環境だけでなくPOSIX環境でも実行できるようになりました。
この項の内容は次のとおりです。
SQL*PlusはPOSIXシェルで起動できます。POSIXでSQL*Plusを実行する方法の詳細は、「POSIX環境でのOracleユーティリティの起動」を参照してください。
SQL*PlusのHOSTコマンドでは、SQL*Plusにログオン中にPOSIXシェル・コマンドを入力できます。
HOSTコマンドの使用中は、次の点を考慮してください。
シェル・コマンドなしにHOSTコマンドを入力する場合、コマンド・レベルまで戻されます。SQL*Plusに戻るにはPOSIXサブシェルでexitコマンドを使用します。
シェル・コマンドとともにHOSTコマンドを使用する場合、コマンドは実行され、SQL*Plusに戻されます。
BS2000 SDFコマンドを実行するには、bs2cmd POSIXシェル・コマンドを使用します。
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
|
注意:
|