正在生成
详细信息:
检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
)管理控制台下载客户端工具包。工具下载请参见工具下载。 客户端工具包包含以下内容: 数据库连接工具Linux gsql和测试样例数据的脚本 Linux gsql是一款运行在Linux环境上的命令行客户端,用于连接GaussDB(DWS)集群中的数据库。 测试样例数据的脚本用于执行入门示例。
隐式游标 对于非查询语句,如修改、删除操作,则由系统自动地为这些操作设置游标并创建其工作区,这些由系统隐含创建的游标称为隐式游标,隐式游标的名字为SQL,这是由系统定义的。 简介 对于隐式游标的操作,如定义、打开、取值及关闭操作,都由系统自动地完成,无需用户进行处理。用户只能通过
ript outside of limit. 在存储过程中定义的数组类型,其作用域仅在该存储过程中。 建议选择上述定义方法的一种来自定义数组类型,当同时使用两种方法定义同名的数组类型时,GaussDB(DWS)会优先选择存储过程中定义的数组类型来声明数组变量。 GaussDB(DWS)
'pi_return : %',pi_return ; END; / CALL proc_case_branch(3,0); --删除存储过程 DROP PROCEDURE proc_case_branch; 父主题: 控制语句
调用一个语句的语法请参见图1。 图1 call_clause::= 对以上语法格式的解释如下: procedure_name,为存储过程名。 parameter,为存储过程的参数,可以没有或者有多个参数。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14
该函数用来关闭一个游标,是dbms_sql各项操作的结束。如果在存储过程结束时没有调用该函数,则该游标占用的内存仍然会保存,因此关闭游标非常重要。由于异常情况的发生会中途退出存储过程,导致游标未能关闭,因此建议存储过程中有异常处理,将该接口包含在内。 DBMS_SQL.CLOSE_CURSOR函数原型为:
GaussDB(DWS)函数和存储过程有什么区别? 函数和存储过程是数据库管理系统中常见的两种对象,它们在实现特定功能时具有相同点,也有不同点。了解它们的特点和适用场景,对于合理设计数据库结构和提高数据库性能具有重要意义。 表1 函数和存储过程的区别 函数 存储过程 两者都可以用于实现特定
游标操作 GaussDB(DWS)中游标(cursor)是系统为用户开设的一个数据缓冲区,存放着SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。 游标的操作主要有游标的定义、打开、获取和关闭。 完整的游标操作示例可参考显式游标。
数组和record 数组 record 父主题: 存储过程
RN(或RETURN NEXT)及RETURN QUERY。其中,RETURN NEXT和RETURN QUERY只适用于函数,不适用存储过程。 RETURN RETURN NEXT及RETURN QUERY 父主题: 控制语句
游标操作 GaussDB(DWS)中游标(cursor)是系统为用户开设的一个数据缓冲区,存放着SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。 游标的操作主要有游标的定义、打开、获取和关闭。 完整的游标操作示例可参考显式游标。
与字段类型都与employee表相同。可以通过如下定义: my_employee employee%ROWTYPE 多个CN的环境下,存储过程中无法声明临时表的%ROWTYPE及%TYPE属性。因为临时表仅在当前session有效,在编译阶段其他CN无法看到当前CN的临时表。故多个CN的环境下,会提示该临时表不存在。
CLOB CHAR - CLOB VARCHAR2 - CLOB NUMBER 原数据必须由数字组成。 INT4 CHAR - 父主题: 存储过程
的块要比不包含的块开销大的多。因此,不必要的时候不要使用EXCEPTION。 在下列场景中,无法捕获处理异常,整个存储过程回滚:节点故障、网络故障引起的存储过程参与节点线程退出以及COPY FROM操作中源数据与目标表的表结构不一致造成的异常。 示例 :UPDATE/INSERT异常
游标概述 为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。 当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。 游标的使用分为显式游标和隐式游标。对于不
ript outside of limit. 在存储过程中定义的数组类型,其作用域仅在该存储过程中。 建议选择上述定义方法的一种来自定义数组类型,当同时使用两种方法定义同名的数组类型时,GaussDB(DWS)会优先选择存储过程中定义的数组类型来声明数组变量。 GaussDB(DWS)
显式游标 显式游标主要用于对查询语句的处理,尤其是查询结果为多条记录的情况。 处理步骤 显式游标处理需六个PL/SQL步骤: 定义静态游标:就是定义一个游标名,以及与其相对应的SELECT语句。 定义静态游标的语法图,请参见图1。 图1 static_cursor_define::=
出参。如果在存储过程中则需要用通过perform调用该接口函数。 表2 DBMS_JOB.SUBMIT接口参数说明 参数 类型 入参/出参 是否可以为空 描述 what text IN 否 要执行的SQL语句。支持一个或多个‘DML’,‘匿名块’,‘调用存储过程的语句’或3种混合的场景。
匿名块 匿名块(Anonymous Block)一般用于不频繁执行的脚本或不重复进行的活动。它们在一个会话中执行,并不被存储。 语法 匿名块的语法参见图1。 图1 anonymous_block::= 对以上语法图的解释如下: 匿名块程序实施部分,以BEGIN语句开始,以END语
空语句 在PL/SQL程序中,可以用NULL语句来说明“不用做任何事情”,相当于一个占位符,可以使某些语句变得有意义,提高程序的可读性。 语法 空语句的用法如下: 1 2 3 4 5 6 7 8 9 DECLARE … BEGIN … IF v_num IS