SQL対話式セッションの開始 (STRSQL)

SQL開始(STRSQL)コマンドは対話式SQLプログラムを開始します。このプログラムは,SQLステートメント入力画面をただちに表示する対話式SQLプログラムのステートメント入力を開始します。この画面によって,SQLステートメントを対話式環境で作成,編集,入力,および実行することができます。プログラム実行中のメッセージはすべてこの画面に表示されます。

パラメーター

キーワード 記述 選択項目 ノーツ
COMMIT コミットメント制御 *NONE, *CHG, *CS, *ALL, *RR, *NC, *UR, *RS オプショナル, 定位置 1
NAMING 命名規則 *SYS, *SQL オプショナル, 定位置 2
PROCESS ステートメント処理 *RUN, *VLD, *SYN オプショナル, 定位置 3
LIBOPT ライブラリー・オプション 名前, *LIBL, *USRLIBL, *ALLUSR, *ALL, *CURLIB オプショナル, 定位置 4
LISTTYPE リスト・タイプ *ALL, *SQL オプショナル, 定位置 5
REFRESH データの最新表示 *ALWAYS, *FORWARD オプショナル, 定位置 6
ALWCPYDTA データのコピー可能 *YES, *OPTIMIZE, *NO オプショナル
DATFMT 日付形式 *JOB, *USA, *ISO, *EUR, *JIS, *MDY, *DMY, *YMD, *JUL オプショナル
DATSEP 日付区切り文字 *JOB, '/', '.', ',', '-', ' ', *BLANK オプショナル
TIMFMT 時刻形式 *HMS, *USA, *ISO, *EUR, *JIS オプショナル
TIMSEP 時刻区切り文字 *JOB, ':', '.', ',', ' ', *BLANK オプショナル
DECPNT 小数点 *JOB, *PERIOD, *COMMA, *SYSVAL オプショナル
SRTSEQ ソート順序 単一値: *HEX, *JOB, *JOBRUN, *LANGIDUNQ, *LANGIDSHR
その他の値: 修飾オブジェクト名
オプショナル
修飾子 1: ソート順序 名前
修飾子 2: ライブラリー 名前, *LIBL, *CURLIB
LANGID 言語ID 文字値, *JOB, *JOBRUN オプショナル
PGMLNG プログラム言語 *NONE, *C, *CBL, *PLI, *RPG, *FTN オプショナル
SQLSTRDLM SQLストリング区切り文字 *QUOTESQL, *APOSTSQL オプショナル

コミットメント制御 (COMMIT)

SQLステートメントがコミットメント制御によって実行されるかどうかを指定します。

*NONE または *NC
コミットメント制御は使用されないことを指定します。他のジョブのコミットされていない変更は表示することができます。プログラム中にSQL DROP SCHEMAステートメントが組み込まれている場合には,*NONEまたは*NCを使用しなければなりません。
*CHG または *UR
SQL ALTER, CALL, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME,およびREVOKEステートメント中で参照されたオブジェクトと,更新,削除,および挿入された行が,作業単位(トランザクション)の終わりまでロックされることを指定します。他のジョブのコミットされていない変更は表示することができます。
*CS
SQL ALTER, CALL, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME,およびREVOKEステートメント中で参照されたオブジェクトと,更新,削除,および挿入された行が,作業単位(トランザクション)の終わりまでロックされることを指定します。選択されたが更新されていない行は,次の行が選択されるまでロックされます。他のジョブのコミットされていない変更を表示することはできません。
*ALL または *RS
SQL ALTER, CALL, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME,およびREVOKEステートメント中で参照されたオブジェクトと,選択,更新,削除,および挿入された行が,作業単位(トランザクション)の終わりまでロックされることを指定します。他のジョブのコミットされていない変更を表示することはできません。
*RR
SQL ALTER, CALL, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME,およびREVOKEステートメント中で参照されたオブジェクトと,選択,更新,削除,および挿入された行が,作業単位(トランザクション)の終わりまでロックされることを指定します。他のジョブのコミットされていない変更を表示することはできません。SELECT, UPDATE, DELETE, およびINSERTステートメント中で参照されたすべてのテーブルは,作業単位(トランザクション)の終わりまで排他的にロックされます。

命名規則 (NAMING)

SQLステートメントでオブジェクトに使用する命名規則を指定します。

*SYS
システムの命名規則(ライブラリー名/ファイル名)が使用されます。
*SQL
SQL命名規則(スキーマ名.テーブル名)が使用されます。

ステートメント処理 (PROCESS)

ステートメントの処理に使用する値を指定します。

*RUN
ステートメントは,構文検査とデータ検査を行ってから,実行されます。
*VLD
ステートメントは,構文検査とデータ検査を行いますが,実行されません。
*SYN
ステートメントの構文検査だけが行われます。

ライブラリー・オプション (LIBOPT)

SQLステートメント入力画面からリスト・サポートを要求(F4, F16, F17, F18)した時に表示されるライブラリーのリストを指定します。指定したライブラリーに対する*EXECUTE権限がない場合には,そのライブラリーは表示されません。

*LIBL
最初の一致が見つかるまで,ジョブのライブラリー・リスト中のすべてのライブラリーが検索されます。
*CURLIB
ジョブの現行ライブラリーが表示されます。
*USRLIBL
ジョブのライブラリー・リストのユーザー部分にあるライブラリーだけが表示されます。
*ALL
QSYSを含むシステム上のすべてのライブラリーが表示されます。
*ALLUSR
すべてのユーザー・ライブラリーが検索されます。その名前が英字Qで始まっていないすべてのライブラリー(ただし,次のライブラリーを除く)が検索されます。

#CGULIB     #DSULIB     #SEULIB
#COBLIB     #RPGLIB
#DFULIB     #SDALIB

以下のQXXXライブラリーはIBM提供のライブラリーですが,通常これらのライブラリーには頻繁に変更されるユーザー・データが入っています。したがって,これらのライブラリーは「ユーザー・ライブラリー」と見なされ,検索されます。

QDSNX        QRCL         QUSRSYS
QGPL         QS36F        QUSRVXRXMX
QGPL38       QUSER38
QPFRDATA     QUSRINFSKR

注: ユーザーは,各リリースごとにQUSRVXRXMXの形式をもった異なるライブラリー名を作成することができます。VXRXMXは,そのライブラリーのバージョン,リリース,およびモディフィケーション・レベルです。

名前
表示するライブラリーの名前を指定してください。

リスト・タイプ (LISTTYPE)

「SQLステートメントの入力」画面(F16, F17,およびF18)またはプロンプト(F4)画面からリスト・サポートを要求した時に表示されるオブジェクトのタイプを指定します。

*ALL
すべてのオブジェクトが表示されます。
*SQL
SQLで作成されたオブジェクトだけが表示されます。

データの最新表示 (REFRESH)

画面選択出力データの最新表示の時期を指定します。このパラメーターは,一時的な結果の作成を要求するSQL SELECTステートメントには適用されません。

*ALWAYS
データは常に最新表示されます。このパラメーターに*ALWAYSを指定し,データのコピー可能 (ALWCPYDTA)パラメーターに*OPTIMIZEを指定することはできません。
*FORWARD
データが最新表示されるのは,ユーザーが最初にデータの終わりへ順方向にページ送りした時だけです。その後では,データは最新表示されません。

データのコピー可能 (ALWCPYDTA)

SELECTステートメントの実行時にデータのコピーを使用できるかどうかを指定します。

*YES
SELECTステートメントを実行するために必要な場合にのみ,データのコピーを使用することができます。
*OPTIMIZE
システムは,データベースから取り出されたデータを直接使用するか,あるいはデータのコピーを使用するかを選択します。どちらを選択した方がパフォーマンスが良いかによって,選択が決定されます。

この値によって,全体のQUERYに必要な時間が減少します。データのコピーは,結果のテーブルの最初の行を戻す前に作成されていなければならないので,最初の行を取り出すための時間が増える場合があります。

*NO
データのコピーを使用することはできません。SELECTステートメント中の文節にデータのコピーが必要な場合には,エラー・メッセージが戻されます。SELECTステートメントが正常に実行された場合には,それは現行データが使用されたためです。

日付形式 (DATFMT)

結果の日付のカラムにアクセスする時に使用する形式を指定します。すべての出力日付フィールドは指定した形式で戻されます。この値の指定によって,入力日付ストリングに対して,日付が有効な形式であるかどうかを判別します。

注: *USA, *ISO, *EUR,または*JISの形式を使用する入力日付ストリングは常に有効です。

IBM I以外のシステム上にあるリレーショナル・データベースと接続する場合には,この形式は*USA, *ISO, *EUR,または*JISでなければなりません。

*JOB
プリコンパイル時,または新しい対話式SQLセッションの確立時にジョブに対して指定された形式が使用されます。

ジョブの現行日付形式を判別するためには,ジョブ表示(DSPJOB)コマンドを使用してください。

*USA
米国日付形式MM/DD/YYYYが使用されます。
*ISO
国際標準化機構(ISO)日付形式YYYY-MM-DDが使用されます。
*EUR
欧州日付形式DD.MM.YYYYが使用されます。
*JIS
日本工業規格日付形式YYYY-MM-DDが使用されます。
*MDY
日付形式MM/DD/YYが使用されます。
*DMY
日付形式DD/MM/YYが使用されます。
*YMD
日付形式YY/MM/DDが使用されます。
*JUL
年間通算日形式YY/DDDが使用されます。

日付区切り文字 (DATSEP)

日付の結果のカラムにアクセスする時に使用する区切り記号を指定します。

注: このパラメーターが適用されるのは,*JOB, *MDY, *DMY, *YMD,または*JULが日付形式 (DATFMT)パラメーターに指定された時だけです。

*JOB
プリコンパイル時,新しい対話式SQLセッションの作成時,またはSQLステートメント実行(RUNSQLSTM)コマンドの実行時にジョブに対して指定された日付区切り記号。

ジョブの現行日付の区切り記号の値を判別するためには,ジョブ表示(DSPJOB)コマンドを使用してください。

'/'
スラッシュが日付区切り記号として使用されます。
'.'
ピリオドが日付区切り記号として使用されます。
'-'
ダッシュが日付区切り記号として使用されます。
','
コンマが日付区切り記号として使用されます。
' ' または *BLANK
ブランクが日付区切り記号として使用されます。

時刻形式 (TIMFMT)

時刻の結果のカラムにアクセスする時に使用する形式を指定します。すべての出力時刻フィールドはユーザー指定の形式で戻されます。この値の指定によって,入力時刻ストリングに対して,時刻が有効な形式で指定されたかどうかを判別します。

注: *USA, *ISO, *EUR,または*JISの形式を使用する入力時刻ストリングが常に使用されます。

別のIBM Iではないシステム上にあるリレーショナル・データベースに接続する場合には,時刻形式はコロンまたはピリオドの時刻区切り記号を使用する*USA, *ISO, *EUR, *JIS,または*HMSでなければなりません。

*HMS
HH:MM:SSの形式が使用されます。
*USA
米国の時刻形式HH:MMXXが使用されます。ここでXXはAMまたはPMです。
*ISO
国際標準化機構(ISO)時刻形式HH.MM.SSが使用されます。
*EUR
欧州時刻形式HH.MM.SSが使用されます。
*JIS
日本工業規格時刻形式HH:MM:SSが使用されます。

時刻区切り文字 (TIMSEP)

時刻の結果のカラムにアクセスする時に使用される区切り記号を指定します。

注: このパラメーターが適用されるのは,*HMSが時刻形式 (TIMFMT)パラメーターに指定された時だけです。

*JOB
プリコンパイル時,新しい対話式SQLセッションの作成時,またはRUNSQLSTMの実行時にジョブに対して指定された時刻区切り記号が使用されます。

ジョブの現在の時刻区切り記号値を判別するためには,ジョブ表示(DSPJOB)コマンドを使用してください。

':'
コロンが時刻区切り記号として使用されます。
'.'
ピリオドが時刻区切り記号として使用されます。
','
コンマが時刻区切り記号として使用されます。
' ' または *BLANK
ブランクが時刻区切り記号として使用されます。

小数点 (DECMPT)

SQLステートメントの数字定数に使用される小数点文字を指定します。この値は,文字と数値との間のキャストの時にも小数点文字として使用されます。

*JOB
小数点の表現は,ステートメントを実行中のジョブによって使用された値です。
*SYSVAL
QDECFMTシステム値が小数点文字として使用されます。
*PERIOD
ピリオドによって小数点を表します。
*COMMA
コンマによって小数点を表します。

ソート順序 (SRTSEQ)

SQLステートメント入力画面でSQLステートメントのストリングの比較で使用される分類順序テーブルを指定します。

単一値

*JOB
ユーザーが対話式SQLを開始する時に,SRTSEQ値が検索されます。
*JOBRUN
ユーザーが対話式SQLを開始する度に,ジョブのSRTSEQ値が検索されます。
*LANGIDUNQ
固有の重み分類テーブルが使用されます。
*LANGIDSHR
共用重み分類テーブルが使用されます。
*HEX
分類順序テーブルを使用しないで,文字の16進数値を使用して分類順序を判別します。

修飾子1: ソート順序

名前
対話式SQLセッションで使用される分類順序テーブルの名前を指定します。

修飾子2: ライブラリー

*LIBL
最初の一致が見つかるまで,ジョブのライブラリー・リスト中のすべてのライブラリーが検索されます。
*CURLIB
ジョブの現行ライブラリーが検索されます。ジョブの現行ライブラリーとしてライブラリーが指定されていない場合には,QGPLライブラリーが使用されます。
名前
検索するライブラリーの名前を指定してください。

言語ID (LANGID)

SRTSEQ(*LANGIDUNQ)またはSRTSEQ(*LANGIDSHR)が指定された時に使用される言語識別コードを指定します。

*JOB
ユーザーが新しい対話式SQLを開始する時に,ジョブに指定されたLANGID値が使用されます。
*JOBRUN
ユーザーが対話式SQLを開始する度に,ジョブのLANGID値が検索されます。
言語ID
使用される言語識別コードを指定します。

プログラム言語 (PGMLNG)

使用するプログラム言語構文規則を指定します。このパラメーターを使用するためには,ステートメント処理 (PROCESS)パラメーターに*SYNを指定しなければなりません。

*NONE
特定言語の構文検査規則を使用しないことを指定します。
*C
C言語の構文規則を使用して構文検査を行うことを指定します。
*CBL
COBOL言語の構文規則を使用して構文検査を行うことを指定します。
*PLI
PL/I言語の構文規則を使用して構文検査を行うことを指定します。
*RPG
RPG言語の構文規則を使用して構文検査を行うことを指定します。
*FTN
FORTRAN言語の構文規則を使用して構文検査を行うことを指定します。

SQLストリング区切り文字 (SQLSTRDLM)

プログラム言語 (PGMLNG)パラメーターに*CBLを指定した場合には,SQLストリング区切り文字を指定します。

*QUOTESQL
SQLストリング区切り文字は引用符(")で表現されます。
*APOSTSQL
SQLストリング区切り文字はアポストロフィ(')で表現されます。

STRSQL

このコマンドは,対話式SQLプログラムを開始します。このプログラムは,SQLステートメント入力画面をただちに表示する対話式SQLプログラムのステートメント入力を開始します。この画面によって,SQLステートメントを対話式環境で作成,編集,入力,および実行することができます。

エラー・メッセージ

*ESCAPE メッセージ

CPF9801
ライブラリー&3にオブジェクト&2が見つからない。
CPF9802
&3のオブジェクト&2は認可されていない。
CPF9810
ライブラリー&1が見つかりません。
CPF9820
ライブラリー&1の使用は認可されていない。
CPF9822
ライブラリー&2のファイル&1は認可されていない。
CPF9830
ライブラリー&1を割り当てることができない。
SQL0113
名前&1を使用することはできない。
SQL6141
現在対話式SQLを使用することはできない。
SQL6145
対話式SQLセッションがシステムの限界を超えた。
SQL6332
権限リスト&1が存在していない。
SQL6342
ソート順序&1が正しくない。
SQL6343
言語識別コード&1が正しくない。
SQL9006
DB2 Query Manager and SQL Development Kitのインストール・レベルがオペレーティング・システムと同じでない。
SQL9012
IBM DB2 Query Manager and SQL Development Kit for iが使用可能ではありません。