发布时间:2025-12-11 00:57:50 浏览次数:1
Informix自定义函数的语法如下:
CREATEFUNCTIONfunction_name([parameter1[datatype1][,...]])RETURNdatatype[WITH[(clause)]][LANGUAGE]language_name[DETERMINISTIC][SQLDATAACCESS{CONTAINSSQL|NOSQL|READSSQLDATA|MODIFIESSQLDATA}][COMMENT'string'][EXTERNALNAME'external_name'][PARAMETERSTYLE[SQL|GENERAL][JAVA|C][LANGUAGE'language_name']][FENCED|NOTFENCED][DBINFO|NODBINFO][STATEMENTCACHE[size|DEFAULT|OFF]][RETURNNULLONNULLINPUT|CALLEDONNULLINPUT][NOEXTERNALACTION|EXTERNALACTION]BEGIN--FunctionbodyEND其中,各个关键字的含义如下:
-`CREATEFUNCTION`:用于创建函数。-`function_name`:函数的名称。-`parameter1`:函数的参数名称。-`datatype1`:参数的数据类型。-`RETURNdatatype`:指定函数的返回值类型。-`WITH[(clause)]`:指定函数的选项和特性。-`LANGUAGE`:指定函数的编程语言。-`DETERMINISTIC`:指定函数是否是确定性的。-`SQLDATAACCESS`:指定函数对数据库的访问方式。-`COMMENT`:为函数添加注释。-`EXTERNALNAME`:指定外部函数的名称。-`PARAMETERSTYLE`:指定函数的参数风格。-`FENCED`:指定函数是否运行在独立的地址空间中。-`DBINFO`:指定函数是否可以访问数据库的信息。-`STATEMENTCACHE`:指定函数的语句缓存大小。-`RETURNNULLONNULLINPUT`:指定函数在输入为NULL时的返回值。-`NOEXTERNALACTION`:指定函数是否可以修改数据。-`BEGIN`和`END`:包裹函数的主体部分。
请注意,以上语法中的方括号表示选项是可选的,而大括号表示选项之间是互斥的。你可以根据自己的需求选择适合的选项来定义函数。