Page History
...
|
|---|
USINGパラメータで指定したSQLコマンドの結果を受け取るフィールドを指定します。
...
SELECT_SQLコマンドでは、タイプBLOBおよびCLOBのフィールドはサポートされません。これらのフィールドを指定すると、コマンドのコンパイル時に致命的エラーが発生します。
|
|---|
SQL_SELECTのUSINGパラメータには、有効な任意の「拡張可能な式」を指定できます。文字列を区切る際は一重引用符を使用することをお勧めします。これにより、二重引用符を、SQL識別子を囲むために使用できるようになります。すなわち、文字列リテラルを囲む一重引用符を倍にする必要があります。最初および2番目の例は、SQLリテラルを終了するための最後の一重引用符が異なる方法(''''と"'")で指定されていることを除き、同じ結果になります。4番目の例では、値と引用符を1つの作業フィールド内で指定しています。これが最もわかりやすく保守しやすい方法でしょう。
...
CHANGE FIELDS(#TABLE) TO('SELECT "CUSTNUM" FROM "XDEMOLIB"."CUSTOMERS" ')
CHANGE FIELDS(#SELECTION) TO('WHERE STATE LIKE ''B!_%'' ESCAPE ''!''')
SELECT_SQL FIELDS(#CUSTNUM") USING(#TABLE + #SELECTION)
DISPLAY FIELDS(#CUSTNUM)
ENDSELECT| Infonote |
|---|
注:注意:この例では、エスケープ文字として感嘆符記号を指定していますが、ASCIIテーブルの127以下の任意の「標準」文字を使用できます(文字%、_、[は、すべてのDBMSシステムで使用できるわけではないため、これらの記号の使用はお勧めしません)。 これは、ASA、DB2400、SQL Server、およびOracleで検査済みです。MS Accessのみが例外で、代わりにエスケープする文字を[]で囲む必要があります。例えば、WHERE "STATE" LIKE 'B[_]%' と指定します。 |
...
- リテラルをUnicode (UX'ssss') リテラルとして渡します。例えば、以下の指定があるとします。
'WHERE "UNIFLD" LIKE ''C%'''
これを以下のように指定します。
'WHERE "UNIFLD" LIKE UX''00430025'''). - SQLファンクションを使用してリテラルまたは列を変換します。これにより、Unicode式になります。例えば、CHARFLD がCharタイプの列の場合、以下の指定があるとします。
'WHERE "UNIFLD" = "CHARFLD"')
これを以下のように指定します。
'WHERE "UNIFLD" = CAST "CHARFLD" AS GRAPHIC(6) CCSID 13488)')
詳細については、IBMマニュアル『DB2 UDB for iSeries SQL Reference』を参照してください。
|
|---|
「I/Oコマンドでのファイル名の指定」を参照してください。
...
. . . FROM_FILES(ORDLIN)
. . . USING('SELECT * FROM "MYLIB"."ORDLIN", "MYLIB"."ORDDTL"
. . . . . . WHERE "MYLIB"."ORDLIN"."CUSTNO" = "MYLIB"."ORDDTL"."CUSTNO"')
|
|---|
I/O操作の結果の「戻りコード」を受け取るフィールドの名前を指定します。
...
値については、「I/O コマンド戻りコード表」を参照してください。
|
|---|
コマンドの実行時にI/Oエラーが発生した場合に実行するアクションを指定します。
...