云数据库 GAUSSDB-嵌套的子程序:注意事项

时间:2024-07-01 18:37:09

注意事项

  • 在ORA兼容性数据库下使用。
  • 最大嵌套层数限制通过GUC参数max_subpro_nested_layers控制(默认值为3,取值范围0~100)。如果嵌套子程序中含有匿名块,匿名块不计算层数,但匿名块内的嵌套子程序计入到总层数。
  • 嵌套子程序不支持重载、不支持使用SETOF。
  • 嵌套子程序内不支持定义为自治事务,可调用含有自治事务的存储过程或函数。
  • 子函数(FUNCTION)不支持直接调用且必须要有返回值,子存储过程(PROCEDURE)不支持在表达式中调用。
  • 嵌套子程序不支持perform调用,动态语句中不能有嵌套子程序。
  • 当前嵌套子程序的修饰符支持如下,其余修饰符暂不支持。
    {IMMUTABLE  | STABLE  | VOLATILE }  
    {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT } 
  • 仅支持一个限定符引用嵌套子程序或嵌套子程序的变量。
  • 当子函数(FUNCTION)返回值类型为函数自定义的record类型时,无法使用subfunc().col的方式访问子函数返回值的列属性,执行时会报错。
  • 嵌套子程序的声明必须是在声明部分的最后(在其他变量、游标、类型等声明完成之后再声明嵌套子程序)。
  • 嵌套子程序只能在声明的函数或存储过程内部调用,外部不可使用。
  • 嵌套子程序使用不支持debugger打断点,支持step单步调试。
  • 其余注意事项同存储过程及函数一致。
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0773.html