.NET の SQL エスケープ シーケンス
 
このページをシェアする                  
.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 以上と同様にサポートします。
左外部結合
右外部結合
完全外部結合