informix

informix自定义函数的语法是什么

小亿
136
2023-11-04 09:13:28
栏目: 编程语言

Informix自定义函数的语法如下:

CREATE FUNCTION function_name ([parameter1 [datatype1][,...]])
   RETURN datatype
   [WITH [(clause)]]
   [LANGUAGE ] language_name
   [DETERMINISTIC]
   [SQL DATA ACCESS {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}]
   [COMMENT 'string']
   [EXTERNAL NAME 'external_name']
   [PARAMETER STYLE [SQL | GENERAL] [JAVA | C] [LANGUAGE 'language_name']]
   [FENCED | NOT FENCED]
   [DBINFO | NO DBINFO]
   [STATEMENT CACHE [size | DEFAULT | OFF]]
   [RETURN NULL ON NULL INPUT | CALLED ON NULL INPUT]
   [NO EXTERNAL ACTION | EXTERNAL ACTION]
BEGIN
   -- Function body
END

其中,各个关键字的含义如下:

- `CREATE FUNCTION`:用于创建函数。
- `function_name`:函数的名称。
- `parameter1`:函数的参数名称。
- `datatype1`:参数的数据类型。
- `RETURN datatype`:指定函数的返回值类型。
- `WITH [(clause)]`:指定函数的选项和特性。
- `LANGUAGE`:指定函数的编程语言。
- `DETERMINISTIC`:指定函数是否是确定性的。
- `SQL DATA ACCESS`:指定函数对数据库的访问方式。
- `COMMENT`:为函数添加注释。
- `EXTERNAL NAME`:指定外部函数的名称。
- `PARAMETER STYLE`:指定函数的参数风格。
- `FENCED`:指定函数是否运行在独立的地址空间中。
- `DBINFO`:指定函数是否可以访问数据库的信息。
- `STATEMENT CACHE`:指定函数的语句缓存大小。
- `RETURN NULL ON NULL INPUT`:指定函数在输入为NULL时的返回值。
- `NO EXTERNAL ACTION`:指定函数是否可以修改数据。
- `BEGIN`和`END`:包裹函数的主体部分。

请注意,以上语法中的方括号表示选项是可选的,而大括号表示选项之间是互斥的。你可以根据自己的需求选择适合的选项来定义函数。

0
看了该问题的人还看了