检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
bind_argument,用于指定存放传递给存储过程参数值的变量。bind_argument前的修饰符与对应参数的修饰符一致。 匿名块中间的输入输出参数使用占位符来指明,要求占位符个数与参数个数相同,并且占位符所对应参数的顺序和USING中参数的顺序一致。 目前GaussDB在动态语
集合 集合类型的使用 集合支持的函数 父主题: 数组、集合和record
基础接口 PKG_SERVICE PKG_UTIL DBE_XML 父主题: 高级包
其他语句 锁操作 游标操作 父主题: 存储过程
声明语法 基本结构 匿名块 子程序 父主题: 存储过程
控制语句 返回语句 条件语句 循环语句 分支语句 空语句 错误捕获语句 GOTO语句 父主题: 存储过程
--调用函数 CALL proc_forall(); --查询存储过程调用结果 SELECT * FROM hdfs_t1 WHERE title BETWEEN 100 AND 120; --删除存储过程和表 DROP PROCEDURE proc_forall; DROP
数组,集合和record 数组 集合 record 父主题: 存储过程
数组、集合和record 数组 集合 record 父主题: 存储过程
加密函数 表1 加密函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 AES_DECRYPT() 支持 - 2 AES_ENCRYPT() 支持 - 父主题: 系统函数
生作用。 存储过程指定package属性时支持重载。 不能创建仅形参名字不同(存储过程名和参数列表类型都一样)的重载存储过程。 重载的存储过程在调用时变量需要明确具体的类型。 不能创建与函数拥有相同名称和参数列表的存储过程。 不支持仅默认值不同的存储过程重载。 存储过程仅in、o
bind_argument,用于指定存放传递给存储过程参数值的变量。bind_argument前的修饰符与对应参数的修饰符一致。 匿名块中间的输入输出参数使用占位符来指明,要求占位符个数与参数个数相同,并且占位符所对应参数的顺序和USING中参数的顺序一致。 目前GaussDB在动态语
LL,不会报错。 在存储过程中定义的数组类型,其作用域仅在该存储过程中。 建议选择上述定义方法的一种来自定义数组类型,当同时使用两种方法定义同名的数组类型时,GaussDB会优先选择存储过程中定义的数组类型来声明数组变量。 data_type也可以为存储过程中定义的record类
作为函数/存储过程出入参、返回值时,MySQL支持功能、GaussDB语法不报错功能不支持。 表2 任意精度类型 序号 MySQL数据库 GaussDB数据库 差异 1 DECIMAL[(M[,D])] 支持 操作符:GaussDB中“^”表示指数运算,如需使用异或运算符,使用“#”替换;MySQL中“^”表示异或。
子程序 存储在数据库中的存储过程、函数和操作符及高级包等。当在数据库上建立好后,可以在其他程序中调用它们。 父主题: 声明语法
聚合函数 表1 聚合函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 GROUP_CONCAT() 支持 当group_concat参数中同时有DISTINCT和ORDER BY语法时,所有ORDER BY后的表达式必须也在DISTINCT的表达式之中。 group_concat(
定义静态游标的语法图,请参见图1。 图1 static_cursor_define::= 参数说明: cursor_name:定义的游标名。 parameter:游标参数,只能为输入参数,其格式为: parameter_name datatype select_statement:查询语句。
如果成员有record类型,则内层record类型的默认值不支持传递至外层record类型中。 通过package_name.record_type声明record变量时,record类型的默认值功能会失效,建议不要在record类型有默认值时使用package_name.record_type声明record变量。
Retry管理 Retry是数据库在SQL或存储过程(包含匿名块)执行失败时,在数据库内部进行重新执行的过程,以提高执行成功率和用户体验。同时也是数据库内部通过检查发生错误时的错误码及Retry相关配置,决定是否进行重试。 失败时回滚之前执行的语句,并重新执行存储过程进行Retry。 示例:
PROCEDURE 功能描述 创建一个新的存储过程。 注意事项 如果创建存储过程时参数或返回值带有精度,不进行精度检测。 创建存储过程时,存储过程定义中对表对象的操作建议都显示指定模式,否则可能会导致存储过程执行异常。 在创建存储过程时,存储过程内部通过SET语句设置current_