检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
调用一个语句的语法请参见图1。 图1 call_clause::= 对以上语法格式的解释如下: procedure_name,为存储过程名。 parameter,为存储过程的参数,可以没有或者有多个参数。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
GaussDB提供两种方式返回数据:RETURN或RETURN NEXT及RETURN QUERY。其中,RETURN NEXT和RETURN QUERY只适用于函数,不适用存储过程。 RETURN RETURN NEXT及RETURN QUERY 父主题: 控制语句
高级包现有两套接口,第一套为基础接口,第二套是为了提高易用性做了二次封装的接口,推荐使用第二套接口。 基础接口 二次封装接口(推荐) 父主题: 存储过程
高级包现有两套接口,第一套为基础接口,第二套是为了提高易用性做了二次封装的接口,推荐使用第二套接口。 基础接口 二次封装接口(推荐) 父主题: 存储过程
内容进行操作,例如GaussDB可对数值型数据进行加、减、乘、除等操作。 XML类型数据支持作为存储过程的入参、出参、自定义变量、返回值。支持自治事务的存储过程。 父主题: 存储过程
下: 声明部分:声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数。 DECLARE 不涉及变量声明时声明部分可以没有。 对匿名块来说,没有变量声明部分时,可以省去DECLARE关键字。 对存储过程来说,没有DECLARE, AS相当于DECLARE。即便没有变量声明的部分,关键字AS也必须保留。
动态语句 执行动态查询语句 执行动态非查询语句 动态调用存储过程 动态调用匿名块 父主题: 存储过程
CT语句中不必明确定义游标。 兼容A模式下,GUC参数behavior_compat_options为compat_cursor时,隐式游标跨存储过程有效。 隐式游标属性不受commit\rollback操作影响。打开guc参数set behavior_compat_option
数据类型转换 数据库中有些数据类型间允许进行隐式类型转换(例如赋值、函数调用的参数等)、有些数据类型间不允许进行隐式数据类型转换(例如int和复合类型),可尝试使用GaussDB提供的类型转换函数,例如CAST进行数据类型强转。 GaussDB数据库常见的隐式类型转换,请参见表1。
raise_sqlstate::= 图4 raise_option::= 图5 raise::= 参数说明: level选项用于指定错误级别,有DEBUG、LOG、INFO、NOTICE、WARNING以及EXCEPTION(默认值)。EXCEPTION抛出一个正常终止当前事务的异常,其他的仅产生不同异常
其他语句 锁操作 游标操作 父主题: 存储过程
其他语句 锁操作 游标操作 父主题: 存储过程
声明语法 基本结构 匿名块 子程序 父主题: 存储过程
对以上语法格式的解释如下: procedure_name:存储过程名。 parameter:存储过程的参数,可以没有或者有多个参数。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 --创建存储过程proc_staffs openGauss=#
控制语句 返回语句 条件语句 循环语句 分支语句 空语句 错误捕获语句 GOTO语句 父主题: 存储过程
游标概述 为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。 当存储过程使用returns返回游标时,如果使用JDBC调用该存储过程,返回的游标将不可用,使用out出参不受影响。 在分布
子程序 存储在数据库中的存储过程、函数、操作符和高级包等。当在数据库上建立好后,可以在其他程序中调用它们。 父主题: 声明语法
动态语句 执行动态查询语句 执行动态非查询语句 动态调用存储过程 动态调用匿名块 父主题: 存储过程
raise_sqlstate::= 图4 raise_option::= 图5 raise::= 参数说明: level选项用于指定错误级别,有DEBUG,LOG,INFO,NOTICE,WARNING以及EXCEPTION(默认值)。EXCEPTION抛出一个正常终止当前事务的异常,其他的仅产生不同异常
Retry管理 Retry是数据库在SQL或存储过程(包含匿名块)执行失败时,在数据库内部进行重新执行的过程,以提高执行成功率和用户体验。数据库内部通过检查发生错误时的错误码及Retry相关配置,决定是否进行重试。 失败时回滚之前执行的语句,并重新执行存储过程进行Retry。 示例: 1