检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
当需要函数返回一个集合时,使用RETURN NEXT或者RETURN QUERY向结果集追加结果,然后继续执行函数的下一条语句。随着后续的RETURN NEXT或RETURN QUERY命令的执行,结果集中会有多个结果。函数执行完成后会一起返回所有结果。 RETURN NEXT可用于标量和复合数据类型。 RETURN
outside of limit. 在存储过程中定义的数组类型,其作用域仅在该存储过程中。 建议选择上述定义方法的一种来自定义数组类型,当同时使用两种方法定义同名的数组类型时,GaussDB(DWS)会优先选择存储过程中定义的数组类型来声明数组变量。 GaussDB(DWS) 8.1
| Jones (1 row) DROP FUNCTION fun_exp(); DROP TABLE mytab; 当控制到达给y赋值的地方时,会有一个division_by_zero错误失败。这个错误将被EXCEPTION子句捕获。而在RETURN语句里返回的数值将是x的增量值。
条件语句的主要作用是判断参数或者语句是否满足已给定的条件,根据判定结果执行相应的操作。 GaussDB(DWS)有五种形式的IF: IF_THEN 图1 IF_THEN::= IF_THEN语句是IF的最简单形式。如果条件为真,statements将被执行。否则,将忽略它们的结果使该IF_THEN语句执行结束。 示例
GaussDB(DWS)存储过程动态语句 执行动态查询语句 执行动态非查询语句 动态调用存储过程 动态调用匿名块 父主题: GaussDB(DWS)存储过程
GaussDB(DWS)存储过程动态语句 执行动态查询语句 执行动态非查询语句 动态调用存储过程 动态调用匿名块 父主题: GaussDB(DWS)存储过程
' || salary); END; / --调用存储过程 CALL dynamic_proc(); --删除存储过程 DROP PROCEDURE dynamic_proc; 父主题: GaussDB(DWS)存储过程动态语句
GaussDB(DWS)存储过程开发规范 建议5.1 避免使用复杂的存储过程,避免存储过程嵌套 违反规范的影响: 复杂和嵌套的存储过程维护成本高,故障定位难度大,恢复耗时长。 方案建议: 不使用存储过程或只使用一层存储过程,不嵌套。 开发存储过程设计对应的日志表,将关键步骤前后的信息记录到日志表中,操作步骤如下。
GaussDB(DWS)存储过程开发规范 建议5.1 避免使用复杂的存储过程,避免存储过程嵌套 违反规范的影响: 复杂和嵌套的存储过程维护成本高,故障定位难度大,恢复耗时长。 方案建议: 不使用存储过程或只使用一层存储过程,不嵌套。 开发存储过程设计对应的日志表,将关键步骤前后的信息记录到日志表中,操作步骤如下。
proc_cursor3(); --删除存储过程和临时表 DROP PROCEDURE proc_cursor3; DROP TABLE staffs_t1; DROP TABLE sections_t1; 父主题: GaussDB(DWS)存储过程游标
proc_cursor3(); --删除存储过程和临时表 DROP PROCEDURE proc_cursor3; DROP TABLE staffs_t1; DROP TABLE sections_t1; 父主题: GaussDB(DWS)存储过程游标
GaussDB(DWS)存储过程控制语句 返回语句 条件语句 循环语句 分支语句 空语句 错误捕获语句 GOTO语句 父主题: GaussDB(DWS)存储过程
条件语句的主要作用是判断参数或者语句是否满足已给定的条件,根据判定结果执行相应的操作。 GaussDB(DWS)有五种形式的IF: IF_THEN 图1 IF_THEN::= IF_THEN语句是IF的最简单形式。如果条件为真,statements将被执行。否则,将忽略它们的结果使该IF_THEN语句执行结束。 示例
GaussDB(DWS)存储过程高级包 DBMS_LOB DBMS_RANDOM DBMS_OUTPUT UTL_RAW DBMS_JOB DBMS_SQL 父主题: GaussDB(DWS)存储过程
对于指定范围内的整数,要指定参数low和high,并从结果中截取较小的数(最大值不能被作为可能的值)。所以对于0到99之间的整数,使用下面的代码: 1 SELECT TRUNC(DBMS_RANDOM.VALUE(0,100)); 父主题: GaussDB(DWS)存储过程高级包
从开始位置偏移的字符数或者字节数量。 DBMS_LOB.TRIM 这个存储过程用于截断指定长度的LOB,执行完这个存储过程会将LOB的长度设置为newlen参数指定的长度。如果对一个空的LOB执行截断操作,不会有任何执行结果;如果指定的长度比LOB的长度长,会产生一个异常。 DBMS_LOB
从开始位置偏移的字符数或者字节数量。 DBMS_LOB.TRIM 这个存储过程用于截断指定长度的LOB,执行完这个存储过程会将LOB的长度设置为newlen参数指定的长度。如果对一个空的LOB执行截断操作,不会有任何执行结果;如果指定的长度比LOB的长度长,会产生一个异常。 DBMS_LOB
GaussDB(DWS)存储过程数组和record 数组 record 父主题: GaussDB(DWS)存储过程
GaussDB(DWS)存储过程数组和record 数组 record 父主题: GaussDB(DWS)存储过程
20000字节,缓冲区最小可设置为2000字节,若设置小于2000字节将按2000字节处理。 DBMS_OUTPUT.PUT_LINE 存储过程PUT_LINE向消息缓冲区写入一行带有行结束符的文本。DBMS_OUTPUT.PUT_LINE函数原型为: 1 2 DBMS_OUTPUT