高级包-DBMS_RANDOM
接口介绍高级功能包DBMS_RANDOM支持的所有接口请参见表1。表1DBMS_RANDOM接口参数说明接口名称描述DBMS_RANDOM.SEED设置一个随机数的种子。DBMS_RANDOM.VALUE生成一个大小介于指定的low及high之间的随机数。DBMS_RANDOM.SEED存储过程SE
高级包-DBMS_LOB
接口介绍高级功能包DBMS_LOB支持的所有接口请参见表1。表1DBMS_LOB接口名称描述DBMS_LOB.GETLENGTH获取并返回指定的LOB类型对象的长度。DBMS_LOB.OPEN打开一个LOB返回一个LOB的描述符。DBMS_LOB.READ根据指定的长度及起始位置偏移读取LOB内容的
游标-游标循环
游标在WHILE语句、LOOP语句中的使用称为游标循环,一般这种循环都需要使用OPEN、FETCH和CLOSE语句。下面要介绍的一种循环不需要这些操作,可以简化游标循环的操作,这种循环方式适用于静态游标的循环,不用执行静态游标的四个步骤。语法FORAS循环的语法请参见图1。图1FOR_AS_loop
游标-隐式游标
对于非查询语句,如修改、删除操作,则由系统自动地为这些操作设置游标并创建其工作区,这些由系统隐含创建的游标称为隐式游标,隐式游标的名字为SQL,这是由系统定义的。简介对于隐式游标的操作,如定义、打开、取值及关闭操作,都由系统自动地完成,无需用户进行处理。用户只能通过隐式游标的相关属性,来完成相应的操
游标-显式游标
显式游标主要用于对查询语句的处理,尤其是在查询结果为多条记录的情况下。处理步骤显式游标处理需六个PL/SQL步骤:定义静态游标:就是定义一个游标名,以及与其相对应的SELECT语句。定义静态游标的语法图,请参见图1。图1static_cursor_define::=参数说明:cursor_name:
游标-游标概述
为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。游标的使用分为显式游标和隐式游标。对于不同的SQL语句,游标的使用情况不同
其他语句-游标操作
GaussDB200中游标(cursor)是系统为用户开设的一个数据缓冲区,存放着SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。游标的操作主要有游标的定义、打开、获取和关闭。完整的游标操作示例可参考显式游标。
其他语句-锁操作
GaussDB200提供了多种锁模式用于控制对表中数据的并发访问。这些模式可以用在MVCC(多版本并发控制)无法给出期望行为的场合。同样,大多数GaussDB200命令自动施加恰当的锁,以保证被引用的表在命令的执行过程中不会以一种不兼容的方式被删除或者修改。比如,在存在其他并发操作的时候,ALTER
控制语句-GOTO语句
GOTO语句可以实现从GOTO位置到目标语句的无条件跳转。GOTO语句会改变原本的执行逻辑,因此应该慎重使用,或者也可以使用EXCEPTION处理特殊场景。当执行GOTO语句时,目标Label必须是唯一的。语法labeldeclaration::=gotostatement::=示例CREATEOR
控制语句-错误捕获语句
缺省时,当PL/SQL函数执行过程中发生错误时退出函数执行,并且周围的事务也会回滚。可以用一个带有EXCEPTION子句的BEGIN块捕获错误并且从中恢复。其语法是正常的BEGIN块语法的一个扩展:[<<label>>][DECLAREdeclarations]BEGINst
控制语句-空语句
在PL/SQL程序中,可以用NULL语句来说明“不用做任何事情”,相当于一个占位符,可以使某些语句变得有意义,提高程序的可读性。语法空语句的用法如下:DECLARE…BEGIN…IFv_numISNULLTHENNULL;--不需要处理任何数据。ENDIF;END;/
控制语句-分支语句
语法分支语句的语法请参见图1。图1case_when::=when_clause子句的语法图参见图2。图2when_clause::=参数说明:case_expression:变量或表达式。when_expression:常量或者条件表达式。statement:执行语句。示例CREATEORREPL
控制语句-循环语句
简单LOOP语句语法图图1loop::=示例CREATEORREPLACEPROCEDUREproc_loop(iininteger,countoutinteger)ASBEGINcount:=;LOOPIFcount>iTHENraiseinfo'countis%.',count;EXIT;
控制语句-条件语句
条件语句的主要作用判断参数或者语句是否满足已给定的条件,根据判定结果执行相应的操作。GaussDB200有五种形式的IF:IF_THEN图1IF_THEN::=IF_THEN语句是IF的最简单形式。如果条件为真,statements将被执行。否则,将忽略它们的结果使该IF_THEN语句执行结束。示例
返回语句-RETURN NEXT及RETURN QUERY
语法创建函数时需要指定返回值SETOFdatatype。return_next_clause::=return_query_clause::=对以上语法的解释如下:当需要函数返回一个集合时,使用RETURNNEXT或者RETURNQUERY向结果集追加结果,然后继续执行函数的下一条语句。随着后续的R
返回语句-RETURN
语法返回语句的语法请参见图1。图1return_clause::=对以上语法的解释如下:用于将控制从存储过程或函数返回给调用者。示例请参见调用语句的示例。
控制语句-返回语句
GaussDB200提供两种方式返回数据:RETURN或RETURNNEXT及RETURNQUERY。其中,RETURNNEXT和RETURNQUERY只适用于函数,不适用存储过程。RETURNRETURNNEXT及RETURNQUERY
动态语句-动态调用匿名块
动态调用匿名块是指在动态语句中执行匿名块,使用EXECUTEIMMEDIATE…USING语句后面带IN、OUT来输入、输出参数。语法语法请参见图1。图1call_anonymous_block::=using_clause子句的语法参见图2。图2using_clause::=对以上语法格式的解释如
动态语句-动态调用存储过程
动态调用存储过程必须使用匿名的语句块将存储过程或语句块包在里面,使用EXECUTEIMMEDIATE…USING语句后面带IN、OUT来输入、输出参数。语法语法请参见图1。图1call_procedure::=using_clause子句的语法参见图2。图2using_clause::=对以上语法格
动态语句-执行动态非查询语句
语法语法请参见图1。图1noselect::=using_clause子句的语法参见图2。图2using_clause::=对以上语法格式的解释如下:USINGINbind_argument用于指定存放传递给动态SQL值的变量,在dynamic_noselect_string中存在占位符时使用,即动