デフォルトでは、ArcGIS Server は標準化されたクエリを適用します。開発者は、マップ、フィーチャ、イメージ、および WFS サービスを REST または SOAP を通じて操作するとき、標準化された SQL クエリを使用する必要があります。これは、SQL インジェクション攻撃を防ぐのに役立ちます。詳細については、「標準化されたクエリについて」をご参照ください。
データベース固有の WHERE 句構文を現在使用しているアプリケーション開発者は、アプリケーションのコード内にある WHERE 句を更新して、ArcGIS Server がサポートする一般的な SQL 構文を使用する必要があります。サポートされている SQL 関数とその構文は次のとおりです。アプリケーション内で次の関数と構文が使用されている場合、ArcGIS Server は、サービスが使用するデータベースの仕様に合わせてそれらを変換します。
関数タイプ | 関数 | 説明 | 例 | 注意事項 |
---|---|---|---|---|
日付 | CURRENT_DATE | セッションのタイム ゾーンにおける現在の日付を返します。 | Datefield < CURRENT_DATE | 次の日付とタイムスタンプの構文だけがサポートされています。 date 'yyyy-mm-dd'(例: Datefield = date '2012-05-29') timestamp 'yyyy-mm-dd hh:mm:ss'(例: Datefield = timestamp '2012-05-29 15:14:25') |
CURRENT_TIMESTAMP | 現在の現地時間を返します。 | Timestampfield < CURRENT_TIMESTAMP | ||
EXTRACT (extract_field FROM extract_source) | 年、月、日、時間、分など、日付/時刻の一部を返します。 extract_field 引数には、YEAR、MONTH、DAY、HOUR、MINUTE、または SECOND のいずれかのキーワードを指定できます。 | 11 月のすべての行を検索します。 EXTRACT(MONTH FROM Datefield) = 11 | ||
算術演算 | ABS(numeric_exp) | 指定した数値式の絶対値 (正の値) を返します。 | ||
CEILING(numeric_exp) | 指定した数値式以上で、最も小さな整数を返します。 | |||
FLOOR(numeric_exp) | 指定した数値式以下で、最も大きな整数を返します。 | |||
LOG(float_exp) | 指定した浮動小数点式の自然対数を返します。 | |||
LOG10(float_exp) | 指定した浮動小数点式の常用対数を返します。 | |||
POWER(numeric_exp, integer_exp) | 指定した式の、指定した累乗の値を返します。 | POWER(Numericfield, 2) = 16 | ||
ROUND(numeric_exp, integer_exp) | 指定した長さまたは精度に丸めた数値を返します。 | |||
TRUNCATE(numeric_exp, integer_exp) | 値を丸めずに、特定の長さまたは精度にした数値を返します。 | |||
文字列 | CHAR_LENGTH(string_exp) | 入力文字列の長さ (文字数) を返します。 | ||
CONCAT(string_exp1, string_exp2) | 複数の文字列を連結した文字列を返します。 | |||
LOWER(string_exp) | 大文字のデータを小文字に変換した文字式を返します。 | |||
SUBSTRING(string_exp FROM start FOR length) | 文字またはテキスト式の一部を返します。 | Stringfield の値から、最初の 2 文字が Ch である行をすべて検索します。 SUBSTRING(Stringfield FROM 1 FOR 2)='Ch' | ||
UPPER(string_exp) | 小文字のデータを大文字に変換した文字式を返します。 |