SQL スクリプト・ファイルには、SQL ステートメントおよび SQL ステートメントの実行時に使用されるオプションのカーソル属性情報が含まれます。GeneratePureQueryXml ユーティリティーまたはワークベンチを使用して、SQL スクリプト・ファイルから pureQueryXML ファイルを作成できます。
SQL スクリプト・ファイルでは、コメント行および SQL ステートメントの終了文字に以下がデフォルトとして使用されます。これは GeneratePureQueryXml ユーティリティーを使用して変更できます。
- コメント行の先頭には 2 つのダッシュ (--) が使用されます。
- SQL ステートメントの終了文字には、セミコロンが使用されます。
コメントには、そのコメントより後にある最初の SQL ステートメントのカーソル属性を指定するキー値の組を含めることができます。
コメントは /* および */ で囲むこともできます。/* および */ で囲まれたコメント・テキスト内で指定されたカーソル属性は無視されます。
カーソル属性のパラメーター
SQL スクリプト・ファイルで使用できる、サポートされているカーソル属性のパラメーターおよび値は、次のとおりです。
- resultSetHoldability
- オプション。
ResultSet の保持機能を指定します。
resultSetHoldability には、次のいずれかの値を指定できます。
- CLOSE_CURSORS_AT_COMMIT を指定すると、コミット時にカーソルを閉じるように結果セットの保持機能が設定されます。
- HOLD_CURSORS_OVER_COMMIT を指定すると、コミット後もカーソルを保持するように結果セットの保持機能が設定されます。
デフォルト値は HOLD_CURSORS_OVER_COMMIT です。
- resultSetConcurrency
- オプション。
ResultSet の並行性を指定します。
resultSetConcurrency には、次のいずれかの値を指定できます。
- CONCUR_READ_ONLY を指定すると、カーソルの並行性が読み取り専用に設定されます。
- CONCUR_UPDATABLE を指定すると、カーソルの並行性が更新可能に設定されます。
デフォルト値は CONCUR_READ_ONLY です。
- resultSetType
- オプション。
ResultSet のタイプを指定します。
resultSetType には、次のいずれかの値を指定できます。
- TYPE_FORWARD_ONLY を指定すると、結果セットのタイプが順方向のみに設定されます。
- TYPE_SCROLL_SENSITIVE を指定すると、結果セットのタイプがスクロール・センシティブに設定されます。
- TYPE_SCROLL_INSENSITIVE を指定すると、結果セットのタイプがスクロール・インセンシティブに設定されます。
デフォルト値は TYPE_FORWARD_ONLY です。
例
以下の例では、SQL select ステートメントに
resultSetHoldability、
resultSetConcurrency、および
resultSetType 属性を設定します。
-- resultSetHoldability= CLOSE_CURSORS_AT_COMMIT, resultSetConcurrency=CONCUR_UPDATABLE, resultSetType=TYPE_SCROLL_SENSITIVE
SELECT ID, NAME FROM EMP WHERE REGION=?;
以下の例では、コメント行を 3 行使用して SQL select ステートメントに属性を設定します。
-- resultSetHoldability= CLOSE_CURSORS_AT_COMMIT
-- resultSetConcurrency=CONCUR_UPDATABLE
-- resultSetType=TYPE_SCROLL_SENSITIVE
SELECT * FROM PRODUCTS WHERE PRICE > ? ;
以下の例では、コメント・マーカー /* および */ で囲まれた属性が無視されます。
/*
resultSetHoldability= CLOSE_CURSORS_AT_COMMIT
resultSetConcurrency=CONCUR_UPDATABLE
resultSetType=TYPE_SCROLL_SENSITIVE
*/
SELECT * FROM PRODUCTS WHERE PRICE > ? ;
以下の例では、属性が最初の SELECT ステートメントに適用されます。2 番目の SELECT ステートメントでは、デフォルト値が使用されます。
-- resultSetHoldability= CLOSE_CURSORS_AT_COMMIT
-- resultSetConcurrency=CONCUR_UPDATABLE
-- resultSetType=TYPE_SCROLL_SENSITIVE
SELECT * FROM PRODUCTS WHERE PRICE > ?
AND COLOR = ? ;
SELECT PRICE FROM PRODUCTS WHERE PRODID = ? ;