区分化キーの更新がサポートされるようになりました。DB2_UPDATE_PART_KEY=ON の 場合にのみ、第 6 章の各種ステートメントから次のテキストが 削除されます。
規則
規則
脚注
レジストリー変数 DB2_INDEX_2BYTEVARLEN がオンであったときに定義された、 1 次および固有キーを含む索引の一部である可変長列の長さを 255 バイトを超える 長さに変更することができます。 実際、可変長列は外部キーに関係していますが、レジストリー値の設定にかかわらず、 列を 255 バイトを超える長さに変更することを妨げるわけではありません。 ただし、対応する 1 次キーの長さが 255 バイトを超えていないかぎり、長さが 255 を 超えるデータを表に挿入することはできません。 これが可能なのは、レジストリー変数 ON で 1 次キーが作成された場合だけです。
レジストリー変数 DB2_INDEX_2BYTEVARLEN が ON であれば、 長さが 255 バイトを超える可変長列に索引を定義できます。
レジストリー変数 DB2_INDEX_2BYTEVARLEN が ON になっていれば、 可変キー部分を持つ 1 次および固有キーのサイズを 255 より大きくすることができます。 長さが 255 バイトを超える可変長列に外部キーを定義できます。
ALTER SEQUENCE ステートメントは、以下の動作によってシーケンスの属性を変更します。
呼び出し
このステートメントはアプリケーション・プログラムに組み込むことができ、また 動的 SQL ステートメントの使用によって出すことができます。 動的に準備できる実行可能ステートメントです。ただし、バインド・オプション DYNAMICRULES BIND が適用されている場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。
権限
ステートメントの許可 ID によって保持されている特権には、 少なくとも以下のいずれかが含まれていなければなりません。
構文
>>-ALTER SEQUENCE--sequence-name--------------------------------> .-------------------------------------------. V | >-------+-RESTART--+-------------------------+-+--+------------>< | '-WITH--numeric-constant--' | +-INCREMENT BY--numeric-constant-------+ +-+-MINVALUE--numeric-constant--+------+ | '-NO MINVALUE-----------------' | +-+-MAXVALUE--numeric-constant--+------+ | '-NO MAXVALUE-----------------' | +-+-CYCLE----+-------------------------+ | '-NO CYCLE-' | +-+-CACHE--integer-constant--+---------+ | '-NO CACHE-----------------' | '-+-ORDER----+-------------------------' '-NO ORDER-'
説明
この値が負の場合、値のシーケンスは下降します。 正であれば、値のシーケンスは上昇します。 値がゼロ、または MINVALUE および MAXVALUE に定義されている範囲よりも大きい場合、 生成される値は 1 つだけですが、そうでなければシーケンスは昇順シーケンスとして 扱われます。
CYCLE が有効であれば、シーケンスについて重複する値が生成される場合があります。
システム障害が起こると、コミットされたステートメントで使用されていない キャッシュ済みシーケンス値はすべて失われます (使用されなくなります)。 CACHE オプションに指定する値は、システム障害の際に失われても構わないシーケンス値の 最大数です。
最小値は 2 です (SQLSTATE 42815)。 デフォルト値は CACHE 20 です。
シーケンスを再始動、または CYCLE に変更した後、前にシーケンスによって生成された 値と重複するシーケンス番号が可能になります。
版
例
例 1 : 数値なしで RESTART を指定する理由として考えられるのは、 シーケンスを START WITH 値にリセットすることです。 この例では、1 から表の行数までの数値を生成し、一時表を使用して表に追加した列に その数値を挿入することが目的です。 もう一度使用すると、すべての結果行に番号が付けられているという結果が返されます。
ALTER SEQUENCE org_seq RESTART SELECT NEXTVAL for org_seq, org.* FROM org
構文の一部の変更:
column-alteration |--column-name--------------------------------------------------> >-----+-SET--+-DATA TYPE--+-VARCHAR-----------+---(--整数--)--+----------+> | | +-CHARACTER VARYING-+ | | | | '-CHAR VARYING------' | | | '-EXPRESSION AS--(--generation-expression--)-----' | +-ADD SCOPE--+-typed-table-name-+----------------------------------+ | '-typed-view-name--' | '-+-| identity-alteration |--------------------------------------+-' '-SET GENERATED--+-ALWAYS-----+---+--------------------------+-' '-BY DEFAULT-' '-| identity-alteration |--' >---------------------------------------------------------------| identity-alteration |---+-RESTART--+--------------------------+-+-------------------| | '-WITH--numeric-constant---' | +-SET INCREMENT BY--numeric-constant----+ | (1) | +-SET--+-NO MINVALUE-----------------+--+ | '-MINVALUE--numeric-constant--' | +-SET--+-NO MAXVALUE-----------------+--+ | '-MAXVALUE--numeric-constant--' | +-SET--+-CYCLE----+---------------------+ | '-NO CYCLE-' | +-SET--+-NO CACHE-----------------+-----+ | '-CACHE--integer-constant--' | '-SET--+-NO ORDER-+---------------------' '-ORDER----'
注:
以下のパラメーターを追加します。
この値が負の場合、この識別列の値のシーケンスは下降します。 正であれば、この識別列の値のシーケンスは上昇します。 値がゼロ、または MINVALUE および MAXVALUE に定義されている範囲よりも大きい場合、 DB2 が生成する値は 1 つだけですが、そうでなければシーケンスは昇順シーケンスとして扱われます。
CYCLE が有効であれば、識別列について重複する値が生成される場合があります。 固有値が必要であれば (実際には必要ありません)、識別列を使用して 1 桁の固有索引を 定義することによって、固有性が確実になります。 このような識別列に固有索引が存在し、固有ではない値が生成される場合、 エラーが起こります (SQLSTATE 23505)。
識別列に新しい値が必要でも未使用の値がキャッシュにない場合、 値の割り振りはログへの入出力を待機しなければなりません。 ただし、識別列に新しい値が必要で、未使用の値がキャッシュにあれば、 その ID 値の割り振りが、ログへの入出力なしですばやく行われます。
データベース・マネージャーが停止 (たとえばデータベース非活動化、 システム障害、またはシャットダウン) すると、コミットされたステートメントで 使用されていないキャッシュ済みシーケンス値はすべて失われます (使用されなくなります)。 CACHE オプションに指定する値は、システム障害の際に失われても構わない識別列の値の最大数です。
最小値は 2 です (SQLSTATE 42615)。
このオプションが指定されると、識別列の値はキャッシュに保管されません。 この場合、新しい ID 値が要求されるたびに、ログに対して非同期入出力が行われます。
準備済み COMMIT ステートメントは、ATOMIC コンパウンド SQL ステートメントでは許可されていません。
複合ステートメントは、別のステートメントを実行可能ブロックにグループ化します。 動的準備済みアトミック複合ステートメントの内部で SQL 変数を宣言することができます。
呼び出し
このステートメントはトリガー、SQL 関数、または SQL メソッドに組み込むことができ、 また動的 SQL ステートメントの使用によって出すことができます。 動的に準備できる実行可能ステートメントです。
権限
動的複合ステートメントを呼び出すために、特権は必要ありません。 ただし、複合ステートメントの許可 ID に、複合ステートメントに組み込まれている SQL ステートメントを 呼び出すために必要な特権がなければなりません。
構文
dynamic-compound-statement >>-+--------------+--BEGIN ATOMIC-------------------------------> | (1) | '-label:-------' >-----+-----------------------------------------------+---------> | .-----------------------------------------. | | V | | '-----+-| SQL-variable-declaration |-+---;---+--' '-| condition-declaration |----' .-,-----------------------------. V | >--------SQL-procedure-statement--;---+---END--+--------+------>< '-label--' SQL-variable-declaration .-,--------------------. V | |---DECLARE-------SQL-variable-name---+--data-type--------------> .-DEFAULT NULL-------------. >-----+--------------------------+------------------------------| '-DEFAULT--default-values--' condition-declaration |---DECLARE--condition-name--CONDITION--FOR---------------------> .-VALUE-. .-SQLSTATE--+-------+---. >----+-----------------------+---string-constant----------------|
注:
説明
出すことができる SQL ステートメントは以下の通りです。
SQL 変数と同じ名前の ID、および列参照が SQL ステートメントに組み込まれている場合、 DB2 はその ID を列として解釈します。
版
構文図を以下のように変更します。
>>-CREATE FUNCTION--function-name-------------------------------> >----(--+------------------------------------------+---)---*----> | .-,----------------------------------. | | V | | '----+-----------------+---data-type1---+--' '-parameter-name--' >----RETURNS--data-type2---*----+--------------------------+----> '-SPECIFIC--specific-name--' >----*----------------------------------------------------------> >-----+-SOURCE--+-function-name--------------------------------+------------------+> | +-SPECIFIC--specific-name----------------------+ | | '-function-name--(--+-------------------+---)--' | | | .-,-----------. | | | | V | | | | '----data-type---+--' | | .-NOT DETERMINISTIC--. .-EXTERNAL ACTION----. | '-AS TEMPLATE--*----+--------------------+--*----+--------------------+--*--' '-DETERMINISTIC------' '-NO EXTERNAL ACTION-' >----*---------------------------------------------------------><
「説明」セクションに以下の記述を追加します。
関数の本体が特殊レジスターにアクセス、または別の非 deterministic 関数を 呼び出す場合、NOT DETERMINISTIC を明示的または暗黙的に指定する必要が あります (SQLSTATE 428C2)。
関数の本体が外部アクションを持つ別の関数を呼び出す場合、EXTERNAL ACTION を 明示的または暗黙的に指定する必要があります (SQLSTATE 428C2)。
構文図を以下のように変更します。
>>-CREATE FUNCTION--function-name-------------------------------> >----(--+------------------------------------+---)---*----------> | .-,----------------------------. | | V | | '----parameter-name--data-type1---+--' >----RETURNS--+-data-type2--------------------+--*--------------> '--+-ROW---+---| column-list |--' '-TABLE-' .-LANGUAGE SQL--. >-----+--------------------------+--*----+---------------+--*---> '-SPECIFIC--specific-name--' .-NOT DETERMINISTIC--. .-EXTERNAL ACTION----. >-----+--------------------+--*----+--------------------+--*----> '-DETERMINISTIC------' '-NO EXTERNAL ACTION-' .-READS SQL DATA--. .-STATIC DISPATCH--. >-----+-----------------+--*----+------------------+--*---------> '-CONTAINS SQL----' (1) .-CALLED ON NULL INPUT-------. >-----+----------------------------+--*-------------------------> >-----+-----------------------------------------------------+---> | (2) | '-PREDICATES--(--| predicate-specification |--)-------' >----| SQL-function-body |------------------------------------->< column-list .-,--------------------------. V | |---(-----column-name--data-type3---+---)-----------------------| SQL-function-body |---+-RETURN ステートメント------+------------------------------| '-dynamic-compound-statement-'
注:
以下のパラメーターを変更します。
このパラメーター・セクションで "RETURN expression、NULL、WITH common-table-expression、 fullselect" パラメーター・セクションが置き換えられます。
SQL-function-body が動的複合ステートメントであれば、 ここには少なくとも 1 つの RETURN ステートメントが組み込まれていなければならず、 また関数が呼び出されるときに RETURN ステートメントが実行されなければなりません (SQLSTATE 42632)。 関数が表または行関数であれば、動的複合ステートメントの最後の関数でなければ ならない RETURN ステートメントを 1 つだけ組み込むことができます (SQLSTATE 429BD)。
詳しくは 複合ステートメント (動的) および RETURN を参照してください。
構文図を以下のように変更します。
構文
>>-CREATE-------------------------------------------------------> >-----+-METHOD--+-method-name----------+---FOR--type-name--+----> | '-| method-signature |-' | '-SPECIFIC METHOD--specific-name---------------------' >-----+-*----EXTERNAL--+-----------------------+--*----+------------------------------+--*--+> | '-NAME--+-'string'---+--' '-TRANSFORM GROUP--group-name--' | | '-identifier-' | '-| SQL-method-body |-----------------------------------------------------------------' >-------------------------------------------------------------->< method-signature |---method-name--(--+---------------------------------------------------------+---)--> | .-,--------------------------------------------------. | | V | | '----+-----------------+---data-type1--+-------------+--+-' '-parameter-name--' '-AS LOCATOR--' >----+------------------------------------------------------------------+-> '-RETURNS--+-data-type2--+-------------+------------------------+--' | '-AS LOCATOR--' | '-data-type3--CAST FROM--data-type4--+-------------+-' '-AS LOCATOR--' >---------------------------------------------------------------| SQL-method-body |---+-RETURN ステートメント------+------------------------------| '-dynamic-compound-statement-'
以下のパラメーターで "RETURN scalar-expression または NULL" セクションが置き換えられます。
SQL-method-body は、以下のメソッド仕様のパーツにしたがっていなければなりません。
パラメーター名を SQL-method-body で参照することができます。 メソッドのサブジェクトは、暗黙的な最初のパラメーター SELF としてメソッド・インプリメンテーションに 渡されます。
詳しくは 複合ステートメント (動的) および RETURN を参照してください。
CREATE SEQUENCE ステートメントは、アプリケーション・サーバーでのシーケンスを作成します。
呼び出し
このステートメントはアプリケーション・プログラムに組み込むことができ、また 動的 SQL ステートメントの使用によって出すことができます。 動的に準備できる実行可能ステートメントです。 ただし、バインド・オプション DYNAMICRULES BIND が適用されている場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。
権限
ステートメントの許可 ID によって保持されている特権には、少なくとも以下のいずれかが 含まれていなければなりません。
構文
.-AS INTEGER-----. >>-CREATE SEQUENCE--sequence-name---*----+----------------+--*--> '-AS--data-type--' >-----+-------------------------------+--*----------------------> '-START WITH--numeric-constant--' .-INCREMENT BY 1------------------. >-----+---------------------------------+--*--------------------> '-INCREMENT BY--numeric-constant--' (1) .-NO MINVALUE-----------------. >-----+-----------------------------+--*------------------------> '-MINVALUE--numeric-constant--' .-NO MAXVALUE-----------------. .-NO CYCLE--. >-----+-----------------------------+--*----+-----------+--*----> '-MAXVALUE--numeric-constant--' '-CYCLE-----' .-CACHE 20-----------------. .-NO ORDER--. >-----+--------------------------+--*----+-----------+--*------>< +-CACHE--integer-constant--+ '-ORDER-----' '-NO CACHE-----------------'
注:
説明
sequence-name の非限定フォームは SQL ID です。 限定フォームは、ピリオドと SQL ID が後ろに続く修飾子です。 修飾子はスキーマ名です。
シーケンス名がスキーマ名で明示的に限定されている場合、 そのスキーマ名の先頭を 'SYS' にすると、エラーが起こります (SQLSTATE 42939)。
シーケンスの最大または最小値に達した後、そのシーケンスが循環する 値である必要はありません。 START WITH 文節を使用して、循環に使用される範囲外のシーケンスを開始することができます。 循環に使用される範囲は、MINVALUE および MAXVALUE によって定義されています。
この値が負の場合、値のシーケンスは下降します。 正であれば、値のシーケンスは上昇します。 値がゼロ、または MINVALUE および MAXVALUE に定義されている範囲よりも大きい場合、 生成される値は 1 つだけですが、そうでなければシーケンスは昇順シーケンスとして 扱われます。 デフォルトは 1 です。
CYCLE が有効であれば、シーケンスについて重複する値が生成される場合があります。
システム障害が起こると、コミットされたステートメントで使用されていない キャッシュ済みシーケンス値はすべて失われます (使用されなくなります)。 CACHE オプションに指定する値は、システム障害の際に失われても構わないシーケンス値の 最大数です。
最小値は 2 です (SQLSTATE 42815)。 デフォルト値は CACHE 20 です。
版
例
例 1 : シーケンス org_seq を作成
CREATE SEQUENCE org_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO CYCLE CACHE 24
構文
>>-CREATE TRIGGER--trigger-name----+-NO CASCADE BEFORE-+--------> '-AFTER-------------' >-----+-INSERT-----------------------------+--ON--table-name----> +-DELETE-----------------------------+ '-UPDATE--+------------------------+-' | .-,--------------. | | V | | '-OF----column-name---+--' >-----+----------------------------------------------------------------------+> | .----------------------------------------------------. | | V (1) (2) .-AS-. | | '-REFERENCING-------------------+-OLD--+----+--correlation-name--+--+--' | .-AS-. | +-NEW-+----+--correlation-name---+ | .-AS-. | +-OLD_TABLE-+----+--identifier---+ | .-AS-. | '-NEW_TABLE-+----+--identifier---' >-----+-FOR EACH ROW---------------+--MODE DB2SQL---------------> | (3) | '--------FOR EACH STATEMENT--' >-----| triggered-action |------------------------------------->< triggered-action |--+-------------------------------+--SQL-procedure-statement---| '-WHEN--(--search-condition--)--'
注:
以下の文章で "triggered-action" の説明を置き換えます。
関連するアクションは、指定された検索条件が真である場合のみ実行されます。 WHEN 文節が省略されると、関連する SQL-procedure statement が常に実行されます。
トリガーが BEFORE トリガーであれば、 SQL-procedure-statement に fullselect または SET 変数ステートメントを組み込むこともできます (SQLSTATE 42987)。
トリガーが AFTER トリガーであれば、SQL-procedure-statement に以下の いずれかを組み込むこともできます (SQLSTATE 42987)。
SQL-procedure-statement は、未定義の変換変数 (SQLSTATE 42703) または 宣言された一時表 (SQLSTATE 42995) を参照できません。
BEFORE トリガーの SQL-procedure-statement は、REFRESH IMMEDIATE で 定義された一時表を参照できません (SQLSTATE 42997)。
BEFORE トリガーの SQL-procedure-statement は、新しい変換変数で識別列以外の 生成済み列を参照できません (SQLSTATE 42989)。
「注」セクションを以下のように変更します。
実際、操作不能トリガーは、DROP または REVOKE ステートメントのカスケード規則の 結果、トリガー定義がドロップされたトリガーです。 たとえば、視点がドロップされると、その視点を使用して SQL-procedure-statement が 定義されているトリガーが操作不能になります。
トリガーが操作不能になると、そのトリガーを活動化していた操作を実行する ステートメントを持つパッケージはすべて無効とマークされます。 パッケージが (明示的または暗黙的に) 再バインドされると、操作不能トリガーは 完全に無視されます。 同様に、トリガーを活動化していた操作を実行する動的 SQL ステートメントを持つ アプリケーションも、操作不能トリガーを完全に無視します。
それでも、トリガー名を DROP TRIGGER および COMMENT ON TRIGGER ステートメントに 指定することができます。
操作不能トリガーは、その定義テキストを使用して CREATE TRIGGER ステートメントを 出すことによって再作成できます。 このトリガー定義テキストは、SYSCAT.TRIGGERS の TEXT 列に保管されています。 操作不能トリガーを再作成するため、そのトリガーを明示的にドロップする必要はありません。 操作不能トリガーとして同じ trigger-name で CREATE TRIGGER ステートメントを 出すと、警告とともに、その操作不能トリガーは置換されます (SQLSTATE 01595)。
SYSCAT.TRIGGERS カタログ視点で、操作不能トリガーは VALID 列の X で示されています。
SQL-procedure-statement には SIGNAL SQLSTATE ステートメント または RAISE_ERROR 関数が組み込まれていることがあります。 どちらの場合も、返される SQLSTATE は、SIGNAL SQLSTATE ステートメント または RAISE_ERROR 条件に指定されているものです。
Linux は、LIBDRDA.SO および LIBSQLNET.SO という ライブラリーを使用します。 LIBDRDA.A および LIBSQLNET.A は使用しません。
「注」セクションの終わり近くの "DECLARE CURSOR" ステートメント内の 次の文を変更します。 変更前の文:
BLOCKING バインド・オプションが ALL の場合、未確定カーソルは読み取り専用と 見なされます。それ以外の場合、未確定カーソルは削除可能と見なされます。
変更後の文:
BLOCKING バインド・オプションが ALL の場合、未確定カーソルは読み取り専用と 見なされます。それ以外の場合、未確定カーソルは更新可能と見なされます。
「"削除可能"」という語が「"更新可能"」という語に変更されています。
探索条件付き DELETE 構文図を以下のように変更します。
>>-DELETE FROM----+-table-name-------------------+--------------> +-view-name--------------------+ '-ONLY--(--+-table-name-+---)--' '-view-name--' >-----+---------------------------+-----------------------------> | .-AS-. | '-+----+--correlation-name--' >-----+--------------------------+---+---------------+--------->< '-WHERE--search-condition--' '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-'
位置指定 DELETE:
>>-DELETE FROM----+-table-name-------------------+--------------> +-view-name--------------------+ '-ONLY--(--+-table-name-+---)--' '-view-name--' >----WHERE CURRENT OF--cursor-name-----------------------------><
説明セクションに以下の記述を追加します。
ステートメントのデフォルト分離レベルは、ステートメントがバインドされている パッケージの分離レベルです。
以下のオプションを追加します。
>>-SEQUENCE--sequence-name--RESTRICT---------------------------><
以下のパラメーターを追加します。
ドロップする特定のシーケンスを識別します。 暗黙的または明示的スキーマ名を含む sequence-name は、 現在のサーバーに存在するシーケンスを固有に識別していなければなりません。 この名前によるシーケンスが、明示的または暗黙的に指定されたスキーマに存在しない場合、 エラー (SQLSTATE 42704) が起こります。
RESTRICT キーワードは、表列の定義がシーケンスを (IDENTITY 列を経由して) 参照している場合、 そのシーケンスはドロップされないという規則を強制します。
オブジェクトが相互に持っている従属関係を示す表を、次のように更新しなければなりません。
新しい行: DROP SEQUENCE 新しい行 "DROP SEQUENCE" と列 "PACKAGE" の交点にある 項目は "A" になります。 この新しい行の残りの項目は "-" になります。
この GRANT ステートメントのフォームは、ユーザー定義シーケンスでの特権を付与します。
呼び出し
このステートメントはアプリケーション・プログラムに組み込むことができ、また 動的 SQL ステートメントの使用によって出すことができます。 動的に準備できる実行可能ステートメントです。 ただし、バインド・オプション DYNAMICRULES BIND が適用されている場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。
権限
ステートメントの許可 ID によって保持されている特権には、 少なくとも以下のいずれかが含まれていなければなりません。
構文
>>-GRANT--USAGE--ON SEQUENCE--sequence-name--TO PUBLIC---------><
説明
例
例 1: シーケンス MYNUM での特権をユーザーに付与
GRANT USAGE ON SEQUENCE MYNUM TO PUBLIC
構文図を以下のように変更します。
>>-INSERT INTO----+-table-name-+--------------------------------> '-view-name--' >-----+----------------------------+----------------------------> | .-,--------------. | | V | | '-(-----column-name---+---)--' .-,---------------------------------. V | >-----+-VALUES------+-+-式------+----------------+--+-----------+> | | +-NULL----+ | | | | '-DEFAULT-' | | | | .-,--------------. | | | | V | | | | '-(------+-式------+--+---)--' | | +-NULL----+ | | '-DEFAULT-' | '-+---------------------------------------+---fullselect--' | .-,--------------------------. | | V | | '-WITH-----common-table-expression---+--' >-----+---------------+---------------------------------------->< '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-'
説明セクションに以下の記述を追加します。
ステートメントのデフォルト分離レベルは、ステートメントがバインドされている パッケージの分離レベルです。
構文図を以下のように変更します。
.-,----------------. V | >>-select-clause--INTO-------host-variable---+--from-clause-----> >----+--------------+--+-----------------+--+---------------+---> '-where-clause-' '-group-by-clause-' '-having-clause-' >-----+---------------+---------------------------------------->< '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-'
説明セクションに以下の記述を追加します。
ステートメントのデフォルト分離レベルは、ステートメントがバインドされている パッケージの分離レベルです。
SET ENCRYPTION PASSWORD ステートメントは、暗号化および暗号化解除関数によって 使用されるパスワードを設定します。 このパスワードは DB2 認証には関連付けられず、データ暗号化にのみ使用されます。
このステートメントは、トランザクション制御のもとにはありません。
呼び出し
このステートメントはアプリケーション・プログラムに組み込むことができ、また 対話式に出すことができます。 動的に準備できる実行可能ステートメントです。
権限
このステートメントを実行するために、許可は必要ありません。
構文
.-=-. >>-SET--ENCRYPTION PASSWORD--+---+--+-host-variable---+-------->< '-string-constant-'
説明
ENCRYPTION PASSWORD は、パスワード・ベースの暗号化のための ENCRYPT、DECRYPT_BIN、 および DECRYPT_CHAR 組み込み関数で使用できます。 長さは 6 と 127 の間でなければなりません。 大文字変換は行われないため、文字はすべて大文字小文字を区別して指定しなければ なりません。
規則
版
例
例 1: 次のステートメントは ENCRYPTION PASSWORD を設定します。
SET ENCRYPTION PASSWORD = 'bubbalu'
このセクションを以下のように変更します。
SET 変数ステートメントは、ローカル変数または新しい変換変数に値を割り当てます。 これは、トランザクション制御のもとにあります。
呼び出し
このステートメントは、動的複合ステートメント、トリガー、SQL 関数または SQL メソッドの いずれかで SQL ステートメントとしてのみ使用できます。
権限
変換変数を参照するには、トリガー作成者の許可 ID によって保持されている特権には、 少なくとも以下のいずれかが含まれていなければなりません。
割り当ての右側として row-fullselect を持っている このステートメント実行するには、トリガー定義者または動的複合ステートメント所有者の いずれかの許可 ID によって保持されている特権には、参照されている表または視点 それぞれについて、少なくとも以下のいずれかも含まれていなければなりません。
構文
>>-SET----------------------------------------------------------> .-,----------------------------------------------------------------------------. V | >--------+-| target-variable |--=--+-式------+------------------------------------+--+> | +-NULL----+ | | '-DEFAULT-' | | .-,----------------------. .-,------------. | | V | V (1) | | '-(-----| target-variable |---+---)--=--(--+----+-式------+--+----+---)--' | +-NULL----+ | | '-DEFAULT-' | | (2) | '-row-fullselect-------' >-------------------------------------------------------------->< target-variable |---+-SQL-variable-name--------+---+--------------------------+-| '-transition-variable-name-' | .--------------------. | | V | | '----..attribute-name---+--'
注:
説明
target-variable が列であれば、挿入される値は、どのように列が 表に定義されているかによって異なります。
target-variable が SQL 変数であれば、挿入される値は、 変数宣言に指定または暗黙指定されているデフォルトになります。
規則
ステートメントが BEFORE UPDATE トリガーで使用され、 レジストリー変数が DB2_UPDATE_PART_KEY=OFF であれば、target-variable として 指定されている transition-variable を区分化キー列にすることは できません (SQLSTATE 42997)。
版
SET NEW.EMPNO = DEFAULTこの例では、NEW.EMPNO が識別列として定義され、この列を更新するために使用される 値が DB2 によって生成されます。
このステートメントの例に変更はありません。
探索条件付き UPDATE 構文図を以下のように変更します。
>>-UPDATE----+-table-name-------------------+-------------------> +-view-name--------------------+ '-ONLY--(--+-table-name-+---)--' '-view-name--' >-----+---------------------------+-----------------------------> | .-AS-. | '-+----+--correlation-name--' >-----SET--| assignment-clause |--------------------------------> >-----+--------------------------+---+---------------+--------->< '-WHERE--search-condition--' '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-'
説明セクションに以下の記述を追加します。
ステートメントのデフォルト分離レベルは、ステートメントがバインドされている パッケージの分離レベルです。