概要
ODBC Driver for Teradata 16.20では、以下の機能が追加されました。
LOBおよびスマートLOB(SLOB)のサポート
ODBC Driver for Teradata 16.20では、LOBデータでのデフォルトは遅延モードです。メモリにキャッシュしない場合は、その方が高速になるからです。地理空間データを扱う場合など、特定のケースではSLOBの方が適しています。
16.20以降、ODBC Driver for Teradataは、1行あたり最大2GBのすべてのSLOBをキャッシュする(またはキャッシュしようとする)ことができます。バージョン16.10以前のドライバでは、キャッシュできるのは最大32MBの2つの応答バッファのみでした。
- 1- Enable SLOB Random Access(SLOBランダム アクセスの有効化)
- 2- Max size of one SLOB(SLOBの最大サイズ)
- 3- Max size of all SLOBs in a Row(行内の全SLOBの最大サイズ)
パラメータ#1がTrueに設定されている場合、ODBC Driver for Teradataはパラメータ#3のサイズ(最大2GB)までSLOBをキャッシュします。
軽量構文解析プログラム
ドライバのバージョン16.20以降、ODBC Driver for TeradataではTeradataのLightWeightParser (LWP)に代わる独自の構文解析メカニズムを使用しています。このLWPの実装により、メンテナンスが効率化され、元のLWPに存在した簡単ではない問題が克服されています。
接続テスト
ドライバのバージョン16.20以降、ODBC Driver for Teradataでは接続をテストするためのメカニズムが提供されています。DSNの作成時に、データ ソースの新規作成ダイアログ ボックスにあるテストをクリックすると、ドライバはDSNを使用してデータ ストアへの接続を確認できます。
接続文字列の構文
バージョン16.10以前のドライバでは、接続文字列内の値が中括弧({})で囲まれていて、値自体に閉じ中括弧(})と直後にセミコロン(;)が含まれている場合に、ODBC Driver for Teradataは構文解析を行なうことができませんでした。バージョン16.20以降のドライバでは、ODBC Driver for Teradataはそのような値を正常に構文解析できますが、値に含まれている閉じ中括弧に閉じ中括弧をもう一つ追加してエスケープする必要があります。
例えば、接続文字列でUIDプロパティの値を{};に設定する場合、この値は次のように指定する必要があります。UID= {{}};}
Return Generated Keys(生成キーを返す)
Return Generated Keys(生成キーを返す)オプションまたはReturnGeneratedKeys接続プロパティにより、ドライバは、識別列にデータを挿入するリクエストからRowCountおよびResultSetを返すことができるようになります。バージョン16.10以前ドライバでは、ODBC Driver for TeradataはSQLExecuteでのみ、この機能をサポートしていました。バージョン16.20以降、ODBC Driver for TeradataはSQLExecuteとSQLExecDirectの両方で、この機能をサポートしています。
ASCII文字セッション セット
バージョン16.10以前のドライバでは、ODBC Driver for Teradataでクライアント文字セットをASCIIに指定することは、拡張ASCII文字セットを意味していました。
バージョン16.20以降、ODBC Driver for Teradataでクライアント文字セットをASCIIに指定することは、標準の7ビットUS ASCII文字セットを意味します。また、ドライバは、<Teradata Vantage™ - Advanced SQL Engine国際文字セット サポート, B035-1125>のドキュメントに従います。7ビットASCIIの範囲外の文字(値が0x80~0xffの範囲の文字)が使用されている場合は、言語固有のセッション文字セットを使用する必要があります。
CHARと数値間の変換
データをCHARから数値に変換する場合、CHARが標準の有効な数値表現ではない場合は変換が失敗します。バージョン16.10以前のドライバでは、ODBC Driver for Teradataは先頭と末尾の余分な空白文字だけでなく符号と数値の間の空白文字(例: "+ 789"、" - 504.E1"、" + .123E1 ")もサポートしていました。バージョン16.20以降、ODBC Driver for Teradataは先頭と末尾の余分な空白文字はサポートしますが、符号と数値の間の空白文字はサポートしません。
行数の結果
- Insert
- Update
- Delete
- Merge
ストアド プロシージャの作成
バージョン16.10以前のドライバでは、ストアド プロシージャの作成時に、ODBC Driver for Teradataは発生した警告を報告していました。16.20以降、ODBC Driver for Teradataは警告を報告しなくなっています。
ユーザー定義関数の作成
バージョン16.10以前のドライバでは、UDF(ユーザー定義関数)に対するCREATEリクエストを解決するときに、ODBC Driver for TeradataはSQL_SUCCESS_WITH_INFOを返していました。16.20以降、ODBC Driver for TeradataはSQL_NO_DATA_FOUNDを返します。
SQL_C_NUMERICの記述子の使用
バージョン16.10以前のドライバでは、SQL_C_NUMERICデータで使用される必要がある精度とスケールの取得に、ODBC Driver for Teradataは記述子を使用していませんでした。
バージョン16.20以降、ODBC Driver for Teradataは記述子を使用してその情報を取得するようになっています。また、それらの値が記述子で指定されていない場合、ドライバはデフォルト値(精度は39、スケールは0)を使用します。
詳細については、「方法: SQL_NUMERIC_STRUCTを使用して数値データを取得する」(https://docs.microsoft.com/en-us/sql/odbc/reference/appendixes/retrieve-numeric-data-sql-numeric-struct-kb222831)を参照してください。