C. .NET の SQL エスケープ シーケンス
通常、外部結合やスカラー関数の呼び出しなどの言語機能の多くは、データベース管理システムによって実装されます。これらの機能の標準的な構文が定義されていても、DBMS 特有の構文が使われる場合がよくあります。.NET では、次の言語機能の標準的な構文を含む、エスケープ シーケンスをサポートします。
• 日付、時刻およびタイムスタンプのリテラル
• 数値、文字列およびデータ型変換関数などのスカラー関数
• 外部結合
.NET で使用するエスケープ シーケンスは次のとおりです。
{extension}
このエスケープ シーケンスは、ADO.NET データ プロバイダーによって認識および解析されます。データ プロバイダーはこのエスケープ シーケンスをデータ ストア固有の文法で置き換えます。
日付、時刻、タイムスタンプのエスケープ シーケンス
日付、時刻、およびタイムスタンプ リテラルのエスケープ シーケンスは次のとおりです。
{literal-type '値'}
literal-type は、以下に示す型のうちの 1 つです。
メモ:Visual Studio で、テーブルの Date フィールドにデータを挿入するクエリを実行しているときにエラーが発生した場合は、システムの日付形式が yyyy-mm-dd に設定されていることを確認してください。形式が違う場合は、yyyy-mm-dd に変更します。
例
UPDATE Orders SET OpenDate={d '1997-01-29'}
WHERE OrderID=1023
スカラー関数
SQL 文で使用できるスカラー関数の構文は、次のとおりです。
{fn scalar-function}
scalar-function は、ADO.NET データ プロバイダーでサポートされるスカラー関数です。
例
SELECT {fn UCASE(NAME)} FROM EMP
サポートされるスカラー関数を次の表に示します。
外部結合のエスケープ シーケンス
.NET では SQL92 の左外部結合、右外部結合、および完全外部結合の構文をサポートしています。外部結合用のエスケープ シーケンスは次のとおりです。
{oj outer-join}
この outer-join には次のような構文が入ります。
table-reference {LEFT | RIGHT | FULL} OUTER JOIN
{table-reference | outer-join} ON search-condition
各項目の説明は次のとおりです。
table-reference はテーブル名で、search-condition はテーブルを結合するのに使用する条件です。
例
SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status
FROM {oj Customers LEFT OUTER JOIN
Orders ON Customers.CustID=Orders.CustID}
WHERE Orders.Status='OPEN'
ADO.NET データ プロバイダーは、以下の外部結合エスケープ シーケンスを Zen 9.x 以上と同様にサポートします。
• 左外部結合
• 右外部結合
• 完全外部結合