ユーザーに対し、追加情報のプロンプトが表示されます。この情報は対話型SQL変数に格納され、その後DMLおよび一部のSET文によって使用されます。
ACCEPT文は、対話型SQLで使用できます。
DEFAULT default-value
ユーザーが[Enter]キーを押した場合に、使用されるデフォルト値を指定します。デフォルト値は変数のデータ型に変換が可能な、正しく書式設定された文字列である必要があります。HIDE
入力テキストのエコーを無効にします。デフォルトではすべての入力文字がエコーされます。PROMPT string-literal
入力を受け入れる前に表示されるプロンプト文字列を指定します。NOPROMPT
文字列によるプロンプトを無効にします。TIMEOUT numeric-literal
ユーザーがこの秒数内にレスポンスしない場合、エラーが返されます。負の値またはゼロの数式リテラルは無視されます。デフォルトでは待機時間制限はありません。UPPER
すべての小文字は、変数に割り当てられる前に大文字に変換されます。デフォルトでは小文字は変更されないままです。variable-ref
DECLARE変数文を使用して定義された対話型SQL変数です。
- 変数は、DECLARE構文を使用して対話型SQL内で宣言される必要があります。ACCEPTでは、この変数は自動的に作成されません。多くの変数参照で必要となる先行コロン(:)は、ACCEPTコマンドではオプションです。
変数参照には、NULL値の割当ての検出に使用できる標識変数が含まれる場合があります。- PROMPTが指定されている場合は、ユーザーに入力を求める文字列リテラル(最大80オクテット)が使用されます。
NOPROMPTが指定されている場合は、ユーザーに対してプロンプト文字列が表示されません。
PROMPTまたはNOPROMPTのどちらも指定しない場合は、SQLによって変数名を含むプロンプトが作成されます。次に例を示します。
SQL> ACCEPT :NAME; Enter a value for NAME: Jeff
プロンプト文字列は、SET OUTPUT文で作成された出力には表示されません。このような場合に入力を検証するには、PRINTコマンドを使用します。- この文は、Oracle SQL*PlusのACCEPT文に基づいています。SQL*Plus句であるNUMBER、CHAR、DATEおよびFORMATは、現在Oracle Rdb SQLでは使用できません。
- ユーザーがデータを入力せずに[Enter]キーを押した場合は、DEFAULT値がレスポンスのかわりに使用されます。DEFAULTが指定されていない場合は、ゼロ長の文字列値が使用されます。これにより数値変数(ゼロ)および文字列変数(空白または空の文字列)に対して値が有効になりますが、DATE変数、TIME変数、TIMESTAMP変数およびINTERVAL変数に対してはエラーが発生します。
- ユーザーがEXIT([Ctrl]キーを押しながら[Z]キーを押す)を入力した場合、エラーが発生するか、標識変数が提供されている場合には、その変数の値が-1(NULLを表す)に設定されます。この変数の値は未定義となります。
SQL> ACCEPT :id INDICATOR :id_ind PROMPT 'Id? '; Id? <exit> SQL> PRINT :id, :id_ind; ID ID_IND 0 -1
- 標識変数が提供されている場合にタイムアウトが発生すると、コマンドが成功し、その標識は-1(NULLを表す)に設定されます。この変数の値は未定義となります。
SQL> declare :row_out, :row_out_ind integer; SQL> accept :row_out timeout 5; Enter value for ROW_OUT: %SQL-F-UNDEFVAR, Variable ROW_OUT is not defined -SYSTEM-F-TIMEOUT, device timeout SQL> accept :row_out indicator :row_out_ind timeout 5; Enter value for ROW_OUT: SQL> print :row_out indicator :row_out_ind; ROW_OUT NULL
- 非互換性データまたは正しく書式設定されていないデータが入力されると、エラーが表示され変数の内容は変更されません。
SQL> DECLARE :age INTEGER; SQL> ACCEPT :age; Enter value for AGE: thirty %RDB-E-ARITH_EXCEPT, truncation of a numeric value at runtime -COSI-F-INPCONERR, input conversion error
- データ型DATE VMS、DATE ANSI、TIME、TIMESTAMPおよびINTERVALに対する値には、必要な記号がすべて含まれる必要があります。
SQL> DECLARE :end_time TIME(2); SQL> ACCEPT :end_time; Enter value for END_TIME: 10:30 %SQL-F-DATCONERR, Data conversion error for string '10:30' -COSI-F-IVTIME, invalid date or time
この例では、必要な値の秒および小数秒フィールドが省略されています。- ACCEPTはSYS$COMMANDから読み取ります。これは、SYS$INPUTと同じ入力ソースにデフォルト設定されます。ただし、別のソースからSQLの読取りが可能です。この例では、SQLによってSUMMARY_REPORT.SQLからSQL文が読み取られ、ファイルANSWERS.DATからの回答を受け入れます。
$ define/user sys$command answers.dat $ sql$ @summary_report
入力ソースが相互作用デバイスでない場合は、PROMPT句が無視され、出力にプロンプトが表示されません。- コマンド・リコールには、以前の入力を最大20まで使用できます。
例1: PROMPT句およびNOPROMPT句に基づくプロンプト
SQL> DECLARE :x INTEGER; SQL> DECLARE :y INTEGER; SQL> SQL> ACCEPT :x indicator :y PROMPT 'what value? '; what value? 10 SQL> PRINT :x, :y; X Y 10 0 SQL> SQL> ACCEPT :x INDICATOR :y NOPROMPT; 11 SQL> PRINT :x, :y; X Y 11 0 SQL> SQL> ACCEPT :x; Enter value for X: 12 SQL> PRINT :x; X 12 SQL>
例2: SET FLAGS文字列のプロンプトに対するACCEPTの使用
このシーケンスはスクリプトに含まれます。
SQL> DECLARE :debug_flags CHAR(20); SQL> ACCEPT :debug_flags; Enter value for DEBUG_FLAGS: trace SQL> PRINT :debug_flags; DEBUG_FLAGS trace SQL> SET FLAGS :debug_flags; SQL> SHOW FLAGS Alias RDB$DBHANDLE: Flags currently set for Oracle Rdb: PREFIX,TRACE,MAX_RECURSION(100)
データベース・オブジェクトが変更されます。
次の注意事項は、ALTER DATABASEを除くすべてのALTER文に適用されます。
- LIST、DEFAULTまたはRDB$SYSTEMのいずれかの記憶域が読取り専用に設定されている場合、ALTER文を実行できません。最初にこれらの記憶域を読取り/書込みに設定する必要があります。一部のデータベースではRDB$SYSTEMもデフォルトになり、記憶域をリストする場合があります。
- ALTER文は、次の状況がどちらも該当する場合に失敗します。
- 適用されるデータベースがDICTIONARY IS REQUIRED引数を使用して作成された場合。
- データベースがFILENAME引数を使用して宣言された場合。
このような場合、文を発行すると次のエラーが発生します。
%RDB-E-NO_META_UPDATE, metadata update failed -RDMS-F-CDDISREQ, CDD required for metadata updates is not being maintained
- ALTER文は読取り/書込みトランザクションで実行する必要があります。アクティブなトランザクションがない場合にこの文を発行すると、SQLでは、直近のDECLARE TRANSACTION文で指定された特性を持つトランザクションが開始されます。
制約が変更されます。
ALTER CONSTRAINT文は次の環境で使用できます。
- 対話型SQL内
- ホスト言語プログラムに埋め込まれる場合
- SQLモジュールまたはその他の複合文のプロシージャの一部として
- 動的SQLで動的に実行される文として
COMMENT IS 'string'
制約に関するコメントを追加します。SQLでは、SHOW CONSTRAINTS文の実行時にコメントのテキストが表示されます。コメントは一重引用符(')で囲み、コメント内の複数の行はスラッシュ(/)で区切ります。constraint-attributes
「ALTER TABLE文」を参照してください。constraint-name
定義を変更するテーブルの名前です。RENAME TO
変更する制約の名前を変更します。詳細は、「RENAME文」を参照してください。新規名がシノニム名である場合は、エラーが発生します。RENAME TO句には、このデータベースに対して有効なシノニムが必要です。「ALTER DATABASE文」のSYNONYMS ARE ENABLED句に関する説明を参照してください。これらのシノニムがデータベース定義またはアプリケーションによって使用されていない場合は、削除される可能性があります。
- 制約属性が変更される場合は、この制約を含む表を変更後に参照する場合にのみ、変更が有効になります。つまり、制約がすでに有効な場合は、以前に定義された属性が使用されます。
- 制約名には、接頭辞として別名を付けることができます。次に例を示します。
SQL> alter constraint db1.ALL_UNIQUE cont> deferrable initially deferred;
この例では、制約属性を変更して制約にコメントを追加するためにALTER CONSTRAINTを使用する方法を示します。
SQL> set dialect 'sql99'; SQL> attach 'file db$:mf_personnel'; SQL> SQL> create table PERSON cont> (last_name char(20) cont> constraint MUST_HAVE_LAST_NAME cont> not null cont> deferrable, cont> first_name char(20), cont> birthday date cont> constraint MUST_BE_IN_PAST cont> check (birthday < current_date) cont> not deferrable, cont> constraint ALL_UNIQUE cont> unique (last_name, first_name, birthday) cont> deferrable initially immediate cont> ); SQL> SQL> show table (constraint) PERSON Information for table PERSON Table constraints for PERSON: ALL_UNIQUE Unique constraint Null values are considered distinct Table constraint for PERSON Evaluated on each VERB Source: UNIQUE (last_name, first_name, birthday) MUST_BE_IN_PAST Check constraint Column constraint for PERSON.BIRTHDAY Evaluated on UPDATE, NOT DEFERRABLE Source: CHECK (birthday < current_date) MUST_HAVE_LAST_NAME Not Null constraint Column constraint for PERSON.LAST_NAME Evaluated on COMMIT Source: PERSON.LAST_NAME NOT null Constraints referencing table PERSON: No constraints found SQL> SQL> alter constraint ALL_UNIQUE cont> deferrable initially deferred; SQL> SQL> alter constraint MUST_HAVE_LAST_NAME cont> comment is 'We must assume all persons have a name' cont> not deferrable; SQL> SQL> alter constraint MUST_BE_IN_PAST cont> deferrable initially immediate; SQL> SQL> show table (constraint) PERSON Information for table PERSON Table constraints for PERSON: ALL_UNIQUE Unique constraint Null values are considered distinct Table constraint for PERSON Evaluated on COMMIT Source: UNIQUE (last_name, first_name, birthday) MUST_BE_IN_PAST Check constraint Column constraint for PERSON.BIRTHDAY Evaluated on each VERB Source: CHECK (birthday < current_date) MUST_HAVE_LAST_NAME Not Null constraint Column constraint for PERSON.LAST_NAME Evaluated on UPDATE, NOT DEFERRABLE Comment: We must assume all persons have a name Source: PERSON.LAST_NAME NOT null Constraints referencing table PERSON: No constraints found SQL> SQL> commit;
次のいずれかの方法でデータベースが変更されます。
- 単一ファイルのデータベースおよび複数ファイルのデータベースに対して、ALTER DATABASE文でデータベース・ルート・ファイルの特性を変更します。
ALTER DATABASE文により、スナップショット・ファイルを無効にするかどうかなど、CREATE DATABASE文のデータベース・ルート・ファイル・パラメータで指定された一定の特性がオーバーライドされます。また、ALTER DATABASE文により、アフター・イメージ・ジャーナルを有効にするかどうかなど、CREATE DATABASE文のデータベース・ルート・ファイル・パラメータで指定できないその他の特性が制御されます。- 単一ファイルのデータベースおよび複数ファイルのデータベースに対して、ALTER DATABASE文で記憶域パラメータを変更します。
- 複数ファイルのデータベースに対してのみ、ALTER DATABASE文で記憶域を追加、変更または削除します。
ALTER DATABASE文は次の環境で使用できます。
- 対話型SQL内
- プリコンパイル対象のホスト言語プログラムに埋め込まれる場合
- SQLモジュールのプロシージャの一部として
- 動的SQLで動的に実行される文として
ADD CACHE row-cache-name
新規の行キャッシュを追加します。row-cache-params-1およびrow-cache-params-2の詳細は、CREATE CACHE句の説明を参照してください。ADD JOURNAL journal-name
新規のジャーナル・ファイルを作成します。ADD STORAGE AREA area-name FILENAME file-spec
データベースに追加する記憶域の名前およびファイル仕様を指定します。ADD STORAGE AREA句は複数ファイルのデータベースのみで使用できます。記憶域名はデータベースの他の記憶域名と同じものにはできません。ADD STORAGE AREA句では、ファイル拡張子.rdaの記憶域ファイル、ファイル拡張子.snpのスナップショット・ファイルの2つのファイルを作成します。FILENAME引数を省略すると、ファイル仕様のデフォルトは次のようになります。
- デバイス: プロセスの現行デバイス
- ディレクトリ: プロセスの現行ディレクトリ
- ファイル名: 記憶域に指定した名前
ファイル仕様は、記憶域ファイルおよび(SNAPSHOT FILENAME引数を使用してスナップショット・ファイルの別のファイルを指定していなければ)記憶域ファイルを構成するスナップショット・ファイルを使用します。この場合、指定には複数ファイルのデータベースのみが使用できます)。ADD STORAGE AREA句では、異なる拡張子のファイルを2つ作成できるため、ファイル仕様ではファイル拡張子を指定しないでください。
ALTER DATABASE文を使用して記憶域を追加する場合、その変更はジャーナリングされますが、変更する前にデータベースをバックアップしてください。
ジャーナリングされない変更の重要情報は「使用方法」を参照してください。
ADJUSTABLE LOCK GRANULARITY IS ENABLED
ADJUSTABLE LOCK GRANULARITY IS DISABLED
データベース・システムが自動的に保持するデータベース・リソースでのロック数をできるかぎり最小化する機能を有効にまたは無効にします。デフォルトはENABLEDで、データベースに対するロックはより少なくなります。ただし、データベース・リソースの競合が大きい場合、ロックの自動調整はCPU排出になります。調節可能なロック粒度を無効にすることによって、このようなデータベースでのCPU使用量を抑えるため、より制約の強いロックにできます。ALERT OPERATOR
データベース・システム・イベントの発生をどの演算子に通知するか指定します。次の演算子クラスを指定できます。
演算子クラス 意味 ALL ALL演算子クラスでは、システムまたはクラスタにアタッチした演算子として有効なすべての端末にメッセージがブロードキャストされる。これらの端末は電源が入っていて、ブロードキャスト・メッセージの受信が有効である必要がある。 NONE NONE演算子クラスでは、システム全体またはクラスタにメッセージが表示されない。 [NO] CENTRAL CENTRAL演算子クラスでは、集中システム・オペレータに送信するメッセージがブロードキャストされる。NO CENTRAL演算子クラスでは、集中システム・オペレータに送信するメッセージが表示されない。 [NO] DISKS DISKS演算子クラスでは、ディスク・ボリュームのマウントとディスマウントに関するメッセージがブロードキャストされる。NO DISKS演算子クラスでは、ディスク・ボリュームのマウントとディスマウントに関するメッセージが表示されない。 [NO] CLUSTER CLUSTER演算子クラスでは、クラスタのステータス変更に関するコネクション・マネージャからのメッセージがブロードキャストされる。NO CLUSTER演算子クラスでは、クラスタのステータス変更に関するコネクション・マネージャからのメッセージが表示されない。 [NO] CONSOLE CONSOLEクラスでは、Oracle Enterprise Manager(OEM)へのメッセージがブロードキャストされる。NO CONSOLEではOEMにブロードキャストされない。 [NO] SECURITY SECURITY演算子クラスでは、セキュリティ・イベントに関するメッセージが表示される。NO SECURITY演算子クラスでは、セキュリティ・イベントに関するメッセージが表示されない。 [NO] OPER1〜[NO] OPER12 OPER1〜OPER12演算子クラスでは、OPER1〜OPER12と識別される演算子へのメッセージが表示される。NO OPER1〜NO OPER12演算子クラスでは、指定した演算子へのメッセージが表示されない。
ALLOCATION IS n BLOCKS
.aijファイルに割り当てられるブロック数を指定します。デフォルトおよび最小は512ブロックです。512ブロックより少ない値を指定した場合も、.aijファイルに512ブロックが割り当てられます。割当て値の指定の詳細は、『Oracle Rdb7 Guide to Database Design and Definition』を参照してください。
ALLOCATION IS number-pages PAGES
記憶域に割り当てられるデータベース・ページの数を指定します。初期割当てが変更されることはなく、ハッシュ・アルゴリズムに対して使用されます。新規の割当てが現在の割当てになります。RMU Dump/Headerコマンドを実行する場合は、初期割当ておよび現在の割当てが表示されます。SQLによって自動的に割当てが拡張され、記憶域要件が処理されます。ページは3グループ(クランプと呼ばれる)に割り当てられます。25ページのALLOCATIONには、実際は27ページのデータと後続の拡張が提供されます。デフォルトは700ページです。
変更された領域は、指定した値が現在の領域割当てを超えた場合に拡張されます。そうでない場合、指定した値は無視されます。
ALTER CACHE row-cache-name
既存の行キャッシュを変更します。ALTER JOURNAL journal-name
既存のジャーナル・ファイルを変更します。名前を指定しない場合は、RDB$JOURNALがデフォルトのジャーナル名になります。alter-root-file-params1
alter-root-file-params2
alter-root-file-params3
データベースに関連付けられているデータベース・ルート・ファイルの特性またはデータベース全体に適用される特性を制御するパラメータです。これらのパラメータは、個別のパラメータ説明で記述された場合を除き、単一ファイルのデータベースまたは複数ファイルのデータベースに指定できます。データベース・パラメータおよびパラメータによるパフォーマンスへの影響の詳細は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。ALTER DATABASE文では、CREATE DATABASE文で指定できるすべてのデータベース・ルート・ファイル・パラメータを変更できません。記憶域パラメータの数を変更するには、EXPORT文およびIMPORT文を使用する必要があります。記憶域パラメータの変更の詳細は、「IMPORT文」を参照してください。
alter-storage-area-params
データベース記憶域ファイルの特性を変更するパラメータです。同じ記憶域パラメータを単一ファイルのデータベースまたは複数ファイルのデータベースに指定できますが、ALTER DATABASE文のこの部分における句の影響は異なります。
- 単一ファイルのデータベースでは、記憶域パラメータによってデータベースの単一の記憶域の特性が変更されます。
- 複数ファイルのデータベースでは、記憶域パラメータによってRDB$SYSTEM記憶域の特性が変更されます。
ALTER STORAGE AREA句を使用してRDB$SYSTEM記憶域の特性の一部も変更できます。ただし、ALTER DATABASE文のこの部分では、読取り専用パラメータおよび読取り/書込みパラメータのみを変更できます。変更できるRDB$SYSTEM特性の詳細は、この引数リストで後述するALTER STORAGE AREA句を参照してください。
ALTER DATABASE文では、CREATE DATABASE文で指定できるすべての記憶域パラメータを変更できません。次のデータベース・ルート・ファイル・パラメータを変更するには、EXPORT文およびIMPORT文を使用する必要があります。
ALTER STORAGE AREA area-name
変更するデータベースの既存の記憶域名を指定します。ALTER STORAGE AREA句は複数ファイルのデータベースのみで使用できます。次の句を変更する場合は、領域名にRDB$SYSTEMを指定できます。
- ALLOCATION IS number-pages PAGES
- extent-params
- CACHE USING row-cache-name
- NO ROW CACHE
- SNAPSHOT ALLOCATION IS snp-pages PAGES
- SHAPSHOT EXTENT
- CHECKSUM CALCULTION
- SNAPSHOT CHECKSUM CALCULATION
次の句を変更する場合に領域名としてRDB$SYSTEMまたはDEFAULT記憶域を指定すると、Oracle Rdbではエラーが発生します。
- LOCKING IS PAGE LEVEL
- READ WRITE
- READ ONLY
ALTER DATABASE文を使用してRDB$SYSTEM記憶域の読取り専用パラメータおよび読取り/書込みパラメータを変更する場合は、ALTER STORAGE AREA句の外部でこれらのパラメータを指定する必要があります。
ALTER TRANSACTION MODES
事前に定義したモードまたはデフォルト・モードを有効なまま残し、指定したモードを有効または無効にします。これはオフライン操作で、排他的なデータベース・アクセスが必要です。現在のトランザクション・モードがSHAREDモードおよびREAD ONLYモードで、EXCLUSIVEモードを追加する場合には、次の文を使用します。
SQL> ALTER DATABASE FILENAME mf_personnel cont> ALTER TRANSACTION MODES (EXCLUSIVE);
ASYNC BATCH WRITES ARE ENABLED
ASYNC BATCH WRITES ARE DISABLED
非同期バッチ書込みを有効にするか無効にするかを指定します。非同期バッチ書込みによって、変更されたデータ・ページのバッチをディスクに非同期で書き込むプロセスが許可されます(バッチ書込み操作の完了を待つ間、プロセスは停止しません)。非同期バッチ書込みによって、データ整合性が失われることなく更新アプリケーションのパフォーマンスが向上します。
デフォルトでは、バッチ書込みが有効です。
非同期バッチ書込みを使用する場合の詳細は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。
論理名RDM$BIND_ABW_ENABLEDを定義すると、非同期バッチ書込みを有効にできます。
ASYNC PREFETCH IS ENABLED
ASYNC PREFETCH IS DISABLED
Oracle Rdbによって、プロセスが実際にページをリクエストする前に、フェッチによるページのディスクからの読込みを待機する時間を短縮するかどうかを指定します。プリフェッチによってパフォーマンスが大幅に向上しますが、不適切に使用するとリソースを過度に使用する可能性があります。非同期プリフェッチはデフォルトで有効です。非同期プリフェッチの詳細は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。
論理名RDM$BIND_APF_ENABLEDを定義すると、非同期プリフェッチを有効にできます。
BACKUP FILENAME backup-file-spec
バックアップ・サーバーによって使用されるデフォルトのファイル仕様を指定します。実行中、バックアップ・サーバーおよびRMU Backup After_Journalコマンドによって、このファイル仕様がバックアップ・ファイルの名前として使用されます。RMU Backup After_Journalコマンドを使用して、ジャーナル・ファイルのファイル名を指定することにより、この値をオーバーライドできます。
backup-filename-options
バックアップ・ファイル名に編集文字列を含めるかどうかを指定します。EDIT STRING句を使用する場合は、次の表にリストされた編集文字列オプションの一部またはすべてを追加することによって、指定したバックアップ・ファイル名が編集されます。
編集文字列オプション 意味 SEQUENCE バックアップ操作における最初のジャーナル・ファイルのジャーナル順序番号。 YEAR 4桁の整数で表される、現在の年。 MONTH 2桁の整数(01〜12)で表される、現在の月。 DAY 2桁の整数(00〜31)で表される、現在の月の日。 HOUR 2桁の整数(00〜23)で表される、現在の日の時間。 MINUTE 2桁の整数(00〜59)で表される、現在の時間の分。 JULIAN 3桁の整数(001〜366)で表される、現在の年の日。 WEEKDAY 1桁の整数(1〜7)で表される、現在の週の日。1が日曜日、7が土曜日を表す。 literal 任意の文字列リテラル。この文字列リテラルは、ファイル仕様にコピーされる。文字列リテラルの詳細は第2.4.2.1項を参照。