GBase 8a 数据库支持python自定义函数
一、支持执行python代码块
此功能为对 PL/Python匿名代码块功能的实现,相此Postgres,可以支持参数传入,输出参数返回字符串类型的执行结果。
语法格式:
python(code,[<parameter_1>[,...] [,parameter_n])
code为字符串类型的 python 代码
parameter可选,type 是 GBase 8a IPP Cluster 支持的数据类型;
如 select python(return print ("hello,.Worldmy);
执行该sql,返回结果 "hello.World"。
二、支持python自定义函数
语法格式
CREATE FUNCTION <func_name>([<parameter_1>[,...][,parameter_n])
RETURNS type
$$
<Python 函数定义>
$$ LANGUAGE plpythonu
参数说明如下:
<func_name>要创建的函数的名称。在同一数据库内,函数的名称必须唯一。函数名称只允许 a~Z、A~Z、0~9、下划线,且不能只包含数字。
parameter定义函数的参数,每一个参数的定义格式是,<参数名称><参数数据类型>
这里新增了字符串包围符“$$”,和包围符“'”相比,这种包围符能避免在 Python 函数定义中使用转义。
<参数名称>在同一个函数中必须唯一,只允许a~Z、A~Z、0~9、下划线,且不能只包含数字。
<参数数据类型>指定参数的数据类型。
<函数定义>是一系列的 Python 语句的组合,其中包含一些数据操作以完成一定的功能逻辑。
定义函数时,函数名后面的括号是必需的,即使没有任何参数,也不能省略。