IN-List展開(16.20で廃止) - ODBC Driver for Teradata

ODBC Driver for Teradata® ユーザー ガイド

Product
ODBC Driver for Teradata
Release Number
17.20
Published
2022年6月
Language
日本語
Last Update
2022-08-22
dita:mapPath
ja-JP/uqj1639470627591.ditamap
dita:ditavalPath
ja-JP/nkw1500504256726.ditaval
dita:id
B035-2526
Product Category
Teradata Tools and Utilities

構文解析プログラムは、ODBC日付、時刻、タイムスタンプ、間隔のリテラル エスケープを含むIN-listを比較のシーケンスに変換し、in-listで定数のみが使用可能で、式は使用可能ではないデータベースの制限を回避します。この変換は、16.20で廃止されました。

例えば、整数日付モードでは、ODBC日付リテラル{d '2008-11-28'}は、以下のように展開されます。

('2008-11-28' (DATE, FORMAT 'YYYY-MM-DD'))

結果の拡張は、データベースで式とみなされ、IN-listでは使用できません。そのため、ODBC構文解析プログラムは構成を次のように変換します。

... x IN ({d '2008-11-28'}, {d '2009-12-29'})

変換先:

... (x = ('2008-11-28' (DATE, FORMAT 'YYYY-MM-DD'))

または

x = ('2009-12-29' (DATE, FORMAT 'YYYY-MM-DD')))

新しい構文解析プログラムでは、ODBC日付リテラル エスケープ シーケンスがDATE 'YYYY-MM-DD'として拡張されています。例えば、整数日付モードで、ODBC日付リテラル{d '2008-11-28'}は、DATE '2008-11-28'に拡張されます。新しい構文解析プログラムによる整数日付のin-list拡張はうまく動作しますが、整数型時刻の場合は動作しません。結果のネイティブ構文が式であるためです。回避策は、ANSI時刻に切り替えることです。