{ CREATE | REPLACE } FUNCTION [ database_name_1. | user_name_2. ] function_name ( parameter_specification [,...] ) RETURNS return_data_type language_and_access_specification [ function_attribute [...] ] [ SQL SECURITY DEFINER ] COLLATION INVOKER INLINE TYPE 1 RETURN return_expression [;]
language_and_access_specificationとfunction_attribute [...]は、逆の順序で指定できます。
- parameter_specification
parameter_name parameter_data_type
- data_type
{ INTEGER | SMALLINT | BIGINT | BYTEINT | DATE | { TIME | TIMESTAMP } [( fractional_seconds_precision)] [WITH TIME ZONE] | INTERVAL YEAR [( precision)] [TO MONTH] | INTERVAL MONTH [( precision)] | INTERVAL DAY [( precision)] [TO { HOUR | MINUTE | SECOND [(fractional_seconds_precision)] } ] | INTERVAL HOUR [(precision)] [TO { MINUTE | SECOND [(fractional_seconds_precision)] } ] | INTERVAL MINUTE [(precision)] [ TO SECOND [(fractional_seconds_precision)] ] | INTERVAL SECOND [ ( precision [, fractional_seconds_precision ] ) | PERIOD (DATE) | PERIOD ({ TIME | TIMESTAMP } [(precision)] [ WITH TIME ZONE ]) | REAL | DOUBLE PRECISION | FLOAT [(integer)] | NUMBER [({ integer | *} [, integer ]...)] | { DECIMAL | NUMERIC } [(integer [, integer ]...)] | { CHAR | BYTE | GRAPHIC } [(integer)] | { VARCHAR | CHAR VARYING | VARBYTE | VARGRAPHIC } [(integer)] | LONG VARCHAR | LONG VARGRAPHIC | { BINARY LARGE OBJECT | BLOB | CHARACTER LARGE OBJECT | CLOB } (integer [ G | K | M ]) | [SYSUDTLIB.] { XML | XMLTYPE } [(integer [ G | K | M ])] [ INLINE LENGTH integer ] | [SYSUDTLIB.] JSON [(integer [ K | M ])] [ INLINE LENGTH integer ] [ CHARACTER SET { UNICODE | LATIN } ] | [SYSUDTLIB.] ST_GEOMETRY [(integer [ K | M ])] [ INLINE LENGTH integer ] | [SYSUDTLIB.] DATASET [(integer [ K | M ])] [ INLINE LENGTH integer ] storage_format | [SYSUDTLIB.] { UDT_name | MBR | ARRAY_name | VARRAY_name } }
- language_and_access_specification
{ [ language_clause] SQL_data_access | SQL_data_access [ language_clause ] }
- function_attribute
{ SPECIFIC [ database_name_2. | user_name_2. ] specific_function_name | [NOT] DETERMINISTIC | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT }
- storage_format
STORAGE FORMAT { Avro | CSV [ CHARACTER SET { UNICODE | LATIN } ] } [ WITH SCHEMA [ database. ] schema_name ]