ストアード・プロシージャーおよびユーザー定義関数用のパラメーターの引き渡し規則
CALL ステートメントおよび関数の呼び出しでは、 サポートされるすべてのホスト言語で書かれたプログラムおよび REXX プロシージャーに引数を渡すことができます。
次の表で示されているように、各言語はそれに合わせて調整されたさまざまなデータ・タイプを サポートします。 SQL データ・タイプは、各表の左端の列に入っています。 その行の他の欄には、そのデータ・タイプが特定の言語のパラメーター・タイプとしてサポートされるかどうかを示す標識が入っています。列がブランクの場合、そのデータ・タイプは、その言語のパラメーター・タイプとしてサポートされません。 ホスト変数宣言は、Db2® for i が、このデータ・タイプをこの言語のパラメーターとしてサポートすることを示します。 この宣言では、ホスト変数がプロシージャーまたは関数によって正しく受け取られ、 設定されるために必要な宣言を行います。 SQL プロシージャーまたは関数の呼び出し時には、すべての SQL データ・タイプがサポートされるため、表の中には欄が設けられていません。
| SQL データ・タイプ | C および C++ | CL | COBOL および ILE COBOL |
|---|---|---|---|
| SMALLINT | short | PIC S9(4) BINARY | |
| INTEGER | long | PIC S9(9) BINARY | |
| BIGINT | long long | PIC S9(18) BINARY 注: ILE COBOL でのみサポートされます。
|
|
| DECIMAL (p,s) | decimal(p,s) | TYPE(*DEC) LEN(p s) | PIC S9(p-s)V9(s) PACKED-DECIMAL 注: 精度が 18 を超えてはなりません。
|
| NUMERIC(p,s) | PIC S9(p-s)V9(s) DISPLAY SIGN LEADING SEPARATE 注: 精度が 18 を超えてはなりません。
|
||
| DECFLOAT | _Decimal32, _Decimal64, _Decimal128 注: C でのみサポートされます。
|
||
| REAL または FLOAT(p) | float | COMP-1 注: ILE COBOL でのみサポートされます。
|
|
| DOUBLE PRECISION または FLOAT または FLOAT(p) | double | COMP-2 注: ILE COBOL でのみサポートされます。
|
|
| CHARACTER(n) | char ... [n+1] | TYPE(*CHAR) LEN(n) | PIC X(n) |
| VARCHAR(n) | char ... [n+1] | 可変長文字ストリング | |
| VARCHAR(n) FOR BIT DATA | VARCHAR 構造化フォーム | 可変長文字ストリング | |
| CLOB | CLOB 構造化フォーム | CLOB 構造化フォーム 注: ILE COBOL でのみサポートされます。
|
|
| GRAPHIC(n) | wchar_t ... [n+1] | PIC G(n) DISPLAY-1 または PIC N(n) 注: ILE COBOL でのみサポートされます。
|
|
| VARGRAPHIC(n) | VARGRAPHIC 構造化フォーム | 可変長グラフィック・ストリング 注: ILE COBOL でのみサポートされます。
|
|
| DBCLOB | DBCLOB 構造化フォーム | DBCLOB 構造化フォーム 注: ILE COBOL でのみサポートされます。
|
|
| BINARY | BINARY 構造化フォーム | BINARY 構造化フォーム | |
| VARBINARY | VARBINARY 構造化フォーム | VARBINARY 構造化フォーム | |
| BLOB | BLOB 構造化フォーム | BLOB 構造化フォーム 注: ILE COBOL でのみサポートされます。
|
|
| DATE | char ... [11] | TYPE(*CHAR) LEN(10) | PIC X(10)
注: ILE COBOL
の場合のみ、FORMAT DATE。
|
| XML | XML 構造化フォーム | XML 構造化フォーム | |
| TIME | char ... [9] | TYPE(*CHAR) LEN(8) | PIC X(8)
注: ILE COBOL
の場合のみ、FORMAT TIME。
|
| TIMESTAMP(n) | char ... [20] |
TYPE(*CHAR) LEN(19) |
PIC X(19) (n = 0 の場合) 注: ILE COBOL
の場合のみ、FORMAT TIMESTAMP。
|
| ROWID | ROWID 構造化フォーム | ROWID 構造化フォーム | |
| データ・リンク | |||
| アレイ | |||
| 標識変数 | short | PIC S9(4) BINARY |
| SQL データ・タイプ | Java™ パラメーター・スタイル JAVA | Java パラメーター・スタイル DB2GENERAL | PL/I |
|---|---|---|---|
| SMALLINT | short | short | FIXED BIN(15) |
| INTEGER | int | int | FIXED BIN(31) |
| BIGINT | long | long | |
| DECIMAL (p,s) | BigDecimal | BigDecimal | FIXED DEC(p,s) |
| NUMERIC(p,s) | BigDecimal | BigDecimal | |
| DECFLOAT | BigDecimal | BigDecimal | |
| REAL または FLOAT(p) | float | float | FLOAT BIN(p) |
| DOUBLE PRECISION または FLOAT または FLOAT(p) | double | double | FLOAT BIN(p) |
| CHARACTER(n) | 文字列 | 文字列 | CHAR(n) |
| VARCHAR(n) | 文字列 | 文字列 | CHAR(n) VAR |
| VARCHAR(n) FOR BIT DATA | バイト[ ] | com.ibm.db2.app.Blob | CHAR(n) VAR |
| CLOB | java.sql.Clob | com.ibm.db2.app.Clob | CLOB 構造化フォーム |
| GRAPHIC(n) | 文字列 | 文字列 | |
| VARGRAPHIC(n) | 文字列 | 文字列 | |
| DBCLOB | java.sql.Clob | com.ibm.db2.app.Clob | DBCLOB 構造化フォーム |
| BINARY | バイト[ ] | com.ibm.db2.app.Blob | BINARY 構造化フォーム |
| VARBINARY | バイト[ ] | com.ibm.db2.app.Blob | VARBINARY 構造化フォーム |
| BLOB | java.sql.Blob | com.ibm.db2.app.Blob | BLOB 構造化フォーム |
| XML AS CLOB | java.sql.CLOB | ||
| XML AS BLOB | java.sql.BLOB | ||
| DATE | 日付 | 文字列 | CHAR(10) |
| TIME | 時間 | 文字列 | CHAR(8) |
| TIMESTAMP(n) | タイム・スタンプ | 文字列 | CHAR(19) (n = 0 の場合) |
| ROWID | バイト[] | com.ibm.db2.app.Blob | ROWID 構造化フォーム |
| データ・リンク | |||
| アレイ | java.sql.Array | ||
| 標識変数 | FIXED BIN(15) |
| SQL データ・タイプ | REXX | RPG | ILE RPG |
|---|---|---|---|
| SMALLINT | 1 つのサブフィールドを含むデータ構造。 サブフィールド指定の 43 桁目は B、長さは 2、52 桁目は 0 とする。 | データ指定。サブフィールド指定の 40 桁目は B、長さ <= 4、41 から 42 桁目は 00 とする。 あるいは データ指定。サブフィールド指定の 40 桁目は I、長さ 5、41 から 42 桁目は 00 とする。 |
|
| INTEGER | 小数部 (およびオプションの先行符号) を伴わない数値ストリング | 1 つのサブフィールドを含むデータ構造。 サブフィールド指定の 43 桁目は B、長さは 52 桁目は 0 とする。 | データ指定。サブフィールド指定の 40 桁目は B、長さ <=09 かつ >=05、41 から 42 桁目は 00 とする。 あるいは データ指定。サブフィールド指定の 40 桁目は I、長さ 10、41 から 42 桁目は 00 とする。 |
| BIGINT | データ指定。サブフィールド指定の 40 桁目は I、長さ 20、41 から 42 桁目は 00 とする。 | ||
| DECIMAL (p,s) | 小数部 (およびオプションの先行符号) を伴う数値ストリング | 1 つのサブフィールドを含むデータ構造。 サブフィールド指定の 43 桁目は P、52 桁目は 0 から 9 とする。あるいは、数値入力フィールドまたは計算結果フィールド。 | データ指定。サブフィールド指定の 40 桁目は P、41 から 42 桁目は 00 から 31 とする。 |
| NUMERIC(p,s) | 1 つのサブフィールドを含むデータ構造。 サブフィールド指定の 43 桁目は ブランク、52 桁目は 0 から 9 とする。 | データ指定。サブフィールド指定の 40 桁目は S とする。あるいは、40 桁目をブランク、41 から 42 桁目を 00 から 31 とする。 | |
| DECFLOAT | |||
| REAL または FLOAT(p) | 数字の次に E が入り、(次にオプションの先行符号)、次に数字が入ったストリング | データ指定。40 桁目は F、長さは 4 とする。 | |
| DOUBLE PRECISION または FLOAT または FLOAT(p) | 数字の次に E が入り、(次にオプションの先行符号)、次に数字が入ったストリング | データ指定。40 桁目は F、長さは 8 とする。 | |
| CHARACTER(n) | 2 つのアポストロフィの間に n 個の文字が入ったストリング | サブフィールドを含まないデータ構造または 1 つのサブフィールドを含むデータ構造。サブフィールド指定の 43 桁目と 52 桁目は ブランク とする。あるいは、文字入力フィールドまたは計算結果フィールド。 | データ指定。サブフィールド指定の 40 桁目は A とする。あるいは、40 桁目と 41 から 42 桁目をブランク とする。 |
| VARCHAR(n) | 2 つのアポストロフィの間に n 個の文字が入ったストリング | データ指定。サブフィールド指定の 40 桁目は A とする。あるいは、40 桁目と 41 から 42 桁目をブランク とし、44 から 80 桁目にキーワード VARYING を置く。 | |
| VARCHAR(n) FOR BIT DATA | 2 つのアポストロフィの間に n 個の文字が入ったストリング | データ指定。サブフィールド指定の 40 桁目は A とする。あるいは、40 桁目と 41 から 42 桁目をブランク とし、44 から 80 桁目にキーワード VARYING を置く。 | |
| CLOB | CLOB 構造化フォーム | ||
| GRAPHIC(n) | G' で始まり、n 個の 2 バイト文字の後に ' が入ったストリング | データ指定。サブフィールド指定の 40 桁目は G とする。 | |
| VARGRAPHIC(n) | G' で始まり、n 個の 2 バイト文字の後に ' が入ったストリング | データ指定。サブフィールド指定の 40 桁目は G とし、44 から 80 桁目にキーワード VARYING を置く。 | |
| DBCLOB | DBCLOB 構造化フォーム | ||
| BINARY | BINARY 構造化フォーム | ||
| VARBINARY | VARBINARY 構造化フォーム | ||
| BLOB | BLOB 構造化フォーム | ||
| XML | XML 構造化フォーム | ||
| DATE | 2 つのアポストロフィの間に 10 文字が入ったストリング | サブフィールドを含まないデータ構造または 1 つのサブフィールドを含むデータ構造。サブフィールド指定の 43 桁目と 52 桁目は ブランク とする。長さは 10 とする。あるいは、文字入力フィールドまたは計算結果フィールド。 | データ指定。サブフィールド指定の 40 桁目は D とする。44 から 80 桁目は DATFMT(*ISO) とする。 |
| TIME | 2 つのアポストロフィの間に 8 文字が入ったストリング | サブフィールドを含まないデータ構造または 1 つのサブフィールドを含むデータ構造。サブフィールド指定の 43 桁目と 52 桁目は ブランク とする。長さは 8 とする。あるいは、文字入力フィールドまたは計算結果フィールド。 | データ指定。サブフィールド指定の 40 桁目は T とする。44 から 80 桁目は TIMFMT(*ISO) とする。 |
| TIMESTAMP(n) | 2 つのアポストロフィの間に 26 文字が入ったストリング | サブフィールドを含まないデータ構造または 1 つのサブフィールドを含むデータ構造。サブフィールド指定の 43 桁目と 52 桁目は ブランク とする。n = 0 の場合、長さは 19。n > 0 の場合、長さは n+20。 | n = 0 の場合は長さ 19、n > 0 の場合は長さ n+20 のタイム・スタンプ・データ・タイプ。 |
| ROWID | ROWID 構造化フォーム | ||
| データ・リンク | |||
| アレイ | |||
| 標識変数 | 小数部 (およびオプションの先行符号) を伴わない数値ストリング | 1 つのサブフィールドを含むデータ構造。 サブフィールド指定の 43 桁目は B、長さは 2、52 桁目は 0 とする。 | データ指定。サブフィールド指定の 40 桁目は B、長さ <= 4、41 から 42 桁目は 00 とする。 |