このセクションでは、関数ベースのインデックスに使用できる、または条件を満たしているシステム関数を主にリストアップします。
パラメータタイプに制限のないシステム関数
| TRIM | ACOS | REMAINDER | FLOOR |
| ATAN | SUBSTRB | CEIL | ATAN2 |
| WIDTH_BUCKET | RPAD | COS | TRANSLATE |
| NULLIF | TAN | TO_BINARY_FLOAT | PAD |
| SIN | TO_BINARY_DOUBLE | POSITION | IS_JSON |
| VSIZE | LTRIM | POWER | ORAHASH |
| RTRIM | LENGTHC | EMPTY_BLOB | LPAD |
| INSTRC | TO_BLOB | SQRT | ASCIISTR |
| NLSSORT | EXP | ORA_TRUNC | TREAT |
| LN | TO_NUMBER | SINH | LOG |
| HEXTORAW | COSH | ASIN | FROM_TZ |
| TANH | TO_CHAR | TO_NCHAR | - |
パラメータタイプに制限があるシステム関数
以下のシステム関数は、パラメータタイプが文字列(string)で、かつフォーマットが省略されている場合、関数ベースのインデックスや生成列に使用することが禁止されています。また、日付時刻のフォーマットが省略されていない場合は、フォーマットパラメータにも要件があります。例えば、TO_DATE(expr, fmt) の場合、fmt に日付が含まれている必要があります。
| NEXT_DAY | TO_DATE | LAST_DAY | ADD_MONTHS |
| TO_TIMESTAMP | TIMESTAMP_NVL | MONTHS_BETWEEN | TO_TIMESTAMP_TZ |
| SYS_EXTRACT_UTC | - | - | - |
JSON関連関数
以下の関数は、関数ベースのインデックスに使用できます。
| SOUNDEX | COALESCE | ASCII | NVL |
| INSTR | GREATEST | LEAST | UPPER |
| LOWER | ROUND | LENGTHB | RAWTOHEX |
| UNISTR | RAWTONHEX | CHR | TZ_OFFSET |
| INITCAP | INSTRB | NANVL | TO_SINGLE_BYTE |
| TO_MULTI_BYTE | TO_CLOB | EMPTY_CLOB | NLS_LOWER |
| NLS_UPPER | NVL2 | TO_DSINTERVAL | TO_YMINTERVAL |
| NUMTODSINTERVAL | NUMTOYMINTERVAL | - | - |
さらに、以下の関数は現在、述語内でのみ使用可能です。
| JSON_EXISTS |
CAST式
CAST式は特殊であり、そのターゲット型またはソース型が日付時刻型の場合、関数ベースのインデックスとして使用することは禁止されています。具体的なシナリオは以下の表に示されています。
| ソースタイプ | ターゲットタイプ | 説明 |
|---|---|---|
| TIMESTAMP/DATE | TIMESTAMP WITH TIME ZONE / TIMESTAMP WITH LOCAL TIME ZONE | 関数ベースのインデックスとしての使用を禁止 |
| string | 時間型 | 関数ベースのインデックスとしての使用を禁止 |
| 時間型 | string | 関数ベースのインデックスとしての使用を禁止 |