检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
提取游标数据:检索结果集合中的数据行,放入指定的输出变量中。 提取游标数据的语法图,请参见图7。 图7 fetch_cursor::= 对该记录进行处理。 继续处理,直到活动集合中没有记录。 关闭游标:当提取和处理完游标结果集合数据后,应及时关闭游标,以释放该游标所占用的系统资源,并使该游
系统隐含创建的游标称为隐式游标,隐式游标的名称为SQL,这是由系统定义的。 简介 对于隐式游标的操作,如定义、打开、取值及关闭操作,都由系统自动地完成,无需用户进行处理。用户只能通过隐式游标的相关属性,来完成相应的操作。在隐式游标的工作区中,所存放的数据是最新处理的一条SQL语句
package package是一组相关存储过程、函数、变量、常量、游标等PL/SQL程序的组合,具有面向对象的特点,可以对PL/SQL程序设计元素进行封装。package中的函数具有统一性,创建、删除、修改都统一进行。 package包含包头(Package Specification)和Package
失效重编译提供一次性入库、失效重编译和级联失效功能。 一次性入库:新建存储过程、函数和PACKAGE使用未定义的对象。例如表、函数或类型不存在,可新建成功,打印告警。系统表pg_object对应的valid字段为false。 失效重编译功能:当未定义的对象都存在时,运行失效重编译高级包pkg_util
RETURN 语法 返回语句的语法请参见图1。 图1 return_clause::= 对以上语法的解释如下: 用于将控制从存储过程或函数返回给调用者。 示例 请参见调用语句的示例。 父主题: 返回语句
SQL中任何部分。PL/SQL块的结构如下: 声明部分:声明PL/SQL用到的变量、类型、游标、局部的存储过程和函数。 DECLARE 不涉及变量声明时声明部分可以没有。 对匿名块来说,没有变量声明部分时,可以省去DECLARE关键字。 对存储过程来说,没有DECLARE, AS
操作符与NULL比较的结果不准确。 支持集合类型变量作为函数的参数和返回值,此时要求参数或者返回值的类型是在schema或者package中定义的集合类型。 无索引的集合作为函数入参时,可以传入对应子元素类型相同的数组类型作为入参,不支持多维数组,且要求数组下标从1开始(过时的方法,不建议使用该功能。可执行“set
当由SQLSTATE指定了错误码,则不局限于已定义的错误码,可以选择任意包含五个数字或者大写的ASCII字母的错误码,而不是00000。建议避免使用以三个0结尾的错误码,因为这种错误码是类别码,会被整个种类捕获。 兼容O模式下,SQLCODE等于SQLSTATE。 图5所示的语法不接受任何参数。这种形式
支持在子事务中调用含SAVEPOINT的存储过程并使用外部定义的SAVEPOINT,回退事务状态到存储过程外定义的SAVEPOINT位置。 支持在存储过程外部可见存储过程内部定义的SAVEPOINT,即存储过程外可以将事务修改回滚到存储过程中定义SAVEPOINT的位置。 支持多数PL/SQL的上下文和语句
GaussDB中游标(cursor)是系统为用户开设的一个数据缓冲区,存放着SQL语句的执行结果。每个游标区都有一个名称。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。 游标的操作主要有游标的定义、打开、获取和关闭。 完整的游标操作示例可参考显式游标。 父主题:
高级包 高级包现有两套接口,第一套为基础接口,第二套是为了提高易用性做了二次封装的接口,推荐使用第二套接口。 基础接口 二次封装接口(推荐) 父主题: 存储过程
数据类型是一组值的集合以及定义在这个值集上的一组操作。GaussDB数据库是由表的集合组成的,而各表中的列定义了该表,每一列都属于一种数据类型,GaussDB根据数据类型有相应函数对其内容进行操作,例如GaussDB可对数值型数据进行加、减、乘、除操作。 父主题: 存储过程
集合 集合类型的使用 集合支持的函数 父主题: 数组、集合和record
基础接口 PKG_SERVICE PKG_UTIL DBE_XML 父主题: 高级包
数据库中有些数据类型间允许进行隐式类型转换(例如赋值、函数调用的参数等)、有些数据类型间不允许进行隐式数据类型转换(例如int),可尝试使用GaussDB提供的类型转换函数,例如CAST进行数据类型强转。 GaussDB数据库常见的隐式类型转换,请参见表1。 GaussDB支持的DATE的效限范围是:公元前4713年到公元294276年。
和匿名块不支持多个游标同时访问。 变量loop_name在编译过程中不会解析具体的类型,如果有需要解析具体类型的场景(比如loop_name作为重载函数或者存储过程的出入参)会编译报错。如需解析变量的具体类型,可以设置参数behavior_compat_options='allo
赋值语句 变量语法 给变量赋值的语法如图1所示。 图1 assignment_value::= 对以上语法格式的解释如下: variable_name,为变量名。 value,可以是值或表达式。值value的类型需要和变量variable_name的类型兼容才能正确赋值。 变量赋值示例
支持在子事务中调用含SAVEPOINT的存储过程并使用外部定义的SAVEPOINT,回退事务状态到存储过程外定义的SAVEPOINT位置。 支持在存储过程外部可见存储过程内部定义的SAVEPOINT,即存储过程外可以将事务修改回滚到存储过程中定义SAVEPOINT的位置。 支持多数PL/SQL的上下文和语句
RETURN 语法 返回语句的语法请参见图1。 图1 return_clause::= 对以上语法的解释如下: 用于将控制从存储过程或函数返回给调用者。 示例 请参见调用语句的示例。 父主题: 返回语句
包内的子程序 在包体内创建的子程序,在包内声明创建的存储过程及函数。 详细使用请参考:CREATE PACKAGE 父主题: 子程序