云数据库 GAUSSDB-CREATE FUNCTION:注意事项
时间:2024-11-02 18:52:14
注意事项
- 如果创建函数时参数或返回值带有精度,不进行精度检测。
- 创建函数时,函数定义中对表对象的操作建议都显式指定模式,否则可能会导致函数执行异常。
- 在创建函数时,函数内部通过SET语句设置current_schema和search_path无效。执行完函数后的search_path和current_schema与执行函数前的search_path和current_schema保持一致。
- 如果函数参数中带有出参,SELECT调用函数必须缺省出参,CALL调用函数必须指定出参,对于调用重载的带有PACKAGE属性的函数,CALL调用函数可以缺省出参,具体信息参见CALL的示例。
- 兼容PostgreSQL风格的函数或者带有PACKAGE属性的函数支持重载。在指定REPLACE的时候,如果参数个数、类型、返回值有变化,不会替换原有函数,而是会建立新的函数。
- SELECT调用可以指定不同参数来进行同名函数调用。由于语法不支持调用不带有PACKAGE属性的同名函数。
- 在创建function时,不能在avg函数外面嵌套其他agg函数,或者其他系统函数。
- 新创建的函数默认会给PUBLIC授予执行权限(详见GRANT)。用户默认继承PUBLIC角色权限,因此其他用户也会有函数的执行权限并可以查看函数的定义,另外执行函数时还需要具备函数所在schema的USAGE权限。用户在创建函数时可以选择收回PUBLIC默认执行权限,然后根据需要将执行权限授予其他用户,为了避免出现新函数能被所有人访问的时间窗口,应在一个事务中创建函数并且设置函数执行权限。开启数据库对象隔离属性后,普通用户只能查看有权限执行的函数定义。
- 在函数内部调用其它无参数的函数时,可以省略括号,直接使用函数名进行调用。
- 在函数内部调用其他有出参的函数,如果在赋值表达式中调用时,被调函数的出参可以省略,给出了也会被忽略。
- 兼容A数据库风格的函数支持参数注释的查看与导出、导入。
- 兼容A数据库风格的函数支持介于IS/AS与plsql_body之间的注释的查看与导出、导入。
- 被授予CREATE ANY FUNCTION权限的用户,可以在用户模式下创建/替换函数。
- 函数默认为SECURITY INVOKER权限,如果想将默认行为改为SECURITY DEFINER权限,需要设置guc参数behavior_compat_options='plsql_security_definer'。
- 对于plpgsql函数,打开参数behavior_compat_options='proc_outparam_override'后,out/inout的行为会改变,函数中同时返回return和out/inout,而参数打开前仅返回return,见示例。
- 不支持形参仅在自定义ref cursor类型和sys_refcursor类型不同的重载。
- 重载的函数在调用时变量需要明确具体的类型。
- 带OUT模式参数的函数不支持嵌套调用,比如 b := func(a,func(c,1));,建议改为 tmp := func(c,1); b := func(a,tmp);。
- 对于plpgsql函数,打开参数behavior_compat_options='proc_outparam_override'后,有以下限制:
- 如果同一schema和package中已存在带有out/inout参数函数,不能再次创建带有out/inout参数的同名函数。
- 无论使用select还是call调用存储过程,都必须加上out参数。
- 部分场景不支持函数参与表达式(与参数打开前相比),如存储过程中左赋值,call function等,见示例。
- 不支持调用无return的函数,perform function调用。
- 存储过程中调用函数,不支持out/inout参数传入常量,见示例。
- 如果将定义者权限的函数创建到其他用户SCHEMA下,则会以其他用户的权限执行该函数,有越权风险,请谨慎使用。
support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0405.html
看了此文的人还看了
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格
推荐文章