.NET の SQL エスケープ シーケンス
通常、外部結合やスカラー関数の呼び出しなどの言語機能の多くは、データベース管理システムによって実装されます。これらの機能の標準的な構文が定義されていても、DBMS 特有の構文が使われる場合がよくあります。.NET では、次の言語機能の標準的な構文を含む、エスケープ シーケンスをサポートします。
•日付、時刻およびタイムスタンプのリテラル
•数値、文字列およびデータ型変換関数などのスカラー関数
•外部結合
.NET で使用するエスケープ シーケンスは次のとおりです。
{extension}
このエスケープ シーケンスは、ADO.NET データ プロバイダーによって認識および解析されます。データ プロバイダーはこのエスケープ シーケンスをデータ ストア固有の文法で置き換えます。
日付、時刻、タイムスタンプのエスケープ シーケンス
日付、時刻、およびタイムスタンプ リテラルのエスケープ シーケンスは次のとおりです。
{literal-type '値'}
literal-type は、以下に示す型のうちの 1 つです。
リテラルの型 | 説明 | 値の形式 |
---|
d | 日付 | yyyy-mm-dd |
t | 時刻 | hh:mm:ss [1] |
ts | タイムスタンプ | yyyy-mm-dd hh:mm:ss[.f...] |
メモ: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
表
66 は、サポートされるスカラー関数を示します。
表 66 サポートされるスカラー関数
文字列関数 | 数値関数 | 日付時刻関数 | システム関数 |
---|
ASCII BIT_LENGTH CHAR CHAR_LENGTH CHARACTER_LENGTH CONCAT LCASE または LOWER LEFT LENGTH LOCATE LTRIM OCTET_LENGTH POSITION REPLACE REPLICATE RIGHT RTRIM SPACE STUFF SUBSTRING UCASE または UPPER | ABS ACOS ASIN ATAN ATAN2 CEILING COS COT DEGREES EXP FLOOR LOG LOG10 MOD PI POWER RADIANS RAND ROUND SIGN SIN SQRT TAN TRUNCATE | CURDATE CURRENT_DATE CURTIME CURRENT_TIME CURRENT_TIMESTAMP DAYNAME DAYOFMONTH DAYOFYEAR EXTRACT HOUR MINUTE MONTH MONTHNAME NOW QUARTER SECOND TIMESTAMPADD TIMESTAMPDIFF WEEK YEAR | DATABASE USER |
外部結合のエスケープ シーケンス
.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 以上と同様にサポートします。
•左外部結合
•右外部結合
•完全外部結合