{ CREATE | REPLACE } FUNCTION [ database_name_1. | user_name_1. ] function_name ( parameter_specification [...] ) RETURNS return data_type [ CAST FROM data_type ] language_and_access_specification function_attribute [...] [ USING GLOP SET GLOP_set_name ] EXTERNAL [ NAME { external_function_name | 'code_specification [delimiter...]' | 'JAR_ID_specification' } ] [ PARAMETER STYLE { SQL | TD_GENERAL | JAVA } ] [ FOR { COMPRESS | DECOMPRESS } ] [ EXTERNAL SECURITY { DEFINER [ authorization_name ] | INVOKER } ] [;]
language_and_access_specificationとfunction_attribute [...]は、逆の順序で指定できます。
- parameter_specification
{ [ parameter_name ] 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 | external_data_access }
language_clauseとSQL_data_accessは、逆の順序で指定できます。- function_attribute
{ SPECIFIC [ database_name_2. ] specific_function_name | CLASS { AGGREGATE | AG } [ ( interim_size ) ] | PARAMETER STYLE { SQL | TD_GENERAL | JAVA } | [NOT] DETERMINISTIC | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT }
- code_specification
{ F delimiter function_entry_name | D | { S | C } path_specification }
- JAR_ID_specification
JAR_ID:java_class_name.method_name [ ( java_parameter_class [,...] ) returns java_parameter_class ]
- storage_format
STORAGE FORMAT { Avro | CSV [ CHARACTER SET { UNICODE | LATIN } ] } [ WITH SCHEMA [ database_name. ] schema_name ]
- path_specification
{ I delimiter name_on_server delimiter include_name | L delimiter library_name | O delimiter name_on_server delimiter object_name | P delimiter package_name | S delimiter name_on_server delimiter source_name | NS delimiter source_file delimiter include_file }
- java_parameter_class
{ primitive [] [ [] ]] | object [ [] ] }
色付きまたは太字の中括弧を入力する必要があります。