DESCRIBE 文は、データベースから取り出したデータを格納するために必要なホスト変数、またはデータベースにデータを渡すために必要なホスト変数に関する情報を取得します。
次の表は、データベースのさまざまな型に対して DESCRIBE 文 (SELECT LIST 文と BIND VARIABLE 文の両方) が返す sqllen と sqltype 構造体のメンバーの値を示します。ユーザー定義のデータベースデータ型の場合、ベースタイプが記述されます。
プログラムでは DESCRIBE の返す型と長さを使用できます。別の型も使用できます。データベースサーバーはどの型でも型変換を行います。sqldata フィールドの指すメモリは sqltype と sqllen フィールドに合致させてください。Embedded SQL の型は、sqltype でビット処理 AND と DT_TYPES を指定して (sqltype & DT_TYPES) 取得します。
データベースのフィールドの型 | 返される Embedded SQL の型 | describe で返される長さ (バイト単位) |
---|---|---|
BIGINT | DT_BIGINT | 8 |
BINARY(n) | DT_BINARY | n |
BIT | DT_BIT | 1 |
CHAR(n) | DT_FIXCHAR1 | データベースの文字セットからクライアントの CHAR 文字セットへの変換時の最大データ拡張に n を掛けた値。この長さが 32767 バイトを超える場合、返される Embedded SQL の型は、32767 バイト長の DT_LONGVARCHAR になります。 |
CHAR(n CHAR) | DT_FIXCHAR1 | クライアントの CHAR 文字セット内の文字の最大長に n を掛けた値。この長さが 32767 バイトを超える場合、返される Embedded SQL の型は、32767 バイト長の DT_LONGVARCHAR になります。 |
DATE | DT_DATE | フォーマットされた文字列の最大長 |
DECIMAL(p,s) | DT_DECIMAL | SQLDA の長さフィールドの高位バイトが p に、低位バイトが s に設定される |
DOUBLE | DT_DOUBLE | 8 |
FLOAT | DT_FLOAT | 4 |
INT | DT_INT | 4 |
LONG BINARY | DT_LONGBINARY | 32767 |
LONG NVARCHAR | DT_LONGVARCHAR / DT_LONGNVARCHAR2 | 32767 |
LONG VARCHAR | DT_LONGVARCHAR | 32767 |
NCHAR(n) | DT_FIXCHAR / DT_NFIXCHAR2 | クライアントの NCHAR 文字セット内の文字の最大長に n を掛けた値。この長さが 32767 バイトを超える場合、返される Embedded SQL の型は、32767 バイト長の DT_LONGNVARCHAR になります。 |
NVARCHAR(n) | DT_VARCHAR / DT_NVARCHAR2 | クライアントの NCHAR 文字セット内の文字の最大長に n を掛けた値。この長さが 32767 バイトを超える場合、返される Embedded SQL の型は、32767 バイト長の DT_LONGNVARCHAR になります。 |
REAL | DT_FLOAT | 4 |
SMALLINT | DT_SMALLINT | 2 |
TIME | DT_TIME | フォーマットされた文字列の最大長 |
TIMESTAMP | DT_TIMESTAMP | フォーマットされた文字列の最大長 |
TINYINT | DT_TINYINT | 1 |
UNSIGNED BIGINT | DT_UNSBIGINT | 8 |
UNSIGNED INT | DT_UNSINT | 4 |
UNSIGNED SMALLINT | DT_UNSSMALLINT | 2 |
VARCHAR(n) | DT_VARCHAR1 | データベースの文字セットからクライアントの CHAR 文字セットへの変換時の最大データ拡張に n を掛けた値。この長さが 32767 バイトを超える場合、返される Embedded SQL の型は、32767 バイト長の DT_LONGVARCHAR になります。 |
VARCHAR(n CHAR) | DT_VARCHAR1 | クライアントの CHAR 文字セット内の文字の最大長に n を掛けた値。この長さが 32767 バイトを超える場合、返される Embedded SQL の型は、32767 バイト長の DT_LONGVARCHAR になります。 |
1 クライアントの CHAR 文字セットの最大バイト長が 32767 バイトを超える場合、CHAR および VARCHAR について返される型は DT_LONGVARCHAR になります。
2 クライアントの NCHAR 文字セットの最大バイト長が 32767 バイトを超える場合、NCHAR および NVARCHAR について返される型は DT_LONGNVARCHAR になります。NCHAR、NVARCHAR、LONG NVARCHAR はそれぞれデフォルトで DT_FIXCHAR、DT_VARCHAR、DT_LONGVARCHAR と記述されます。db_change_nchar_charset 関数が呼び出された場合、これらの型はそれぞれ DT_NFIXCHAR、DT_NVARCHAR、DT_LONGNVARCHAR と記述されます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |