检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
define_variable,用于指定存放单行查询结果的变量。 USING IN bind_argument,用于指定存放传递给动态SQL值的变量,即在dynamic_select_string中存在占位符时使用。 USING OUT bind_argument,用于指定存放动态SQL返回值的变量。 查询语句中,into和out不能同时存在;
procedure_name,调用存储过程。 [:placeholder1,:placeholder2,…],存储过程参数占位符列表。占位符个数与参数个数相同。 USING [IN|OUT|IN OUT] bind_argument,用于指定存放传递给存储过程参数值的变量。bind_argum
执行动态非查询语句 语法 语法请参见图1。 图1 noselect::= using_clause子句的语法参见图2。 图2 using_clause-2 对以上语法格式的解释如下: USING IN bind_argument用于指定存放传递给动态SQL值的变量,在dynami
GaussDB(DWS)存储过程基本语句 定义变量 介绍PL/SQL中变量的声明,以及该变量在代码中的作用域。 变量声明 变量声明语法请参见图1。 图1 declare_variable::= 对以上语法格式的解释如下: variable_name,为变量名。 type,为变量类型。 val
GaussDB(DWS)存储过程简介 什么是GaussDB(DWS)存储过程 商业规则和业务逻辑可以通过程序存储在GaussDB(DWS)中,这个程序就是存储过程。 存储过程是SQL,PL/SQL,Java语句的组合。存储过程使执行商业规则的代码可以从应用程序中移动到数据库。从而,代码存储一次能够被多个程序使用。
GaussDB(DWS)存储过程基本语句 定义变量 介绍PL/SQL中变量的声明,以及该变量在代码中的作用域。 变量声明 变量声明语法请参见图1。 图1 declare_variable::= 对以上语法格式的解释如下: variable_name,为变量名。 type,为变量类型。 val
GaussDB(DWS)存储过程声明语法 基本结构 PL/SQL块中可以包含子块,子块可以位于PL/SQL中任何部分。PL/SQL块的结构如下: 声明部分:声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数。 DECLARE 不涉及变量声明时声明部分可以没有。 对匿
procedure_name,调用存储过程。 [:placeholder1,:placeholder2,…],存储过程参数占位符列表。占位符个数与参数个数相同。 USING [IN|OUT|IN OUT] bind_argument,用于指定存放传递给存储过程参数值的变量。bind_argum
define_variable,用于指定存放单行查询结果的变量。 USING IN bind_argument,用于指定存放传递给动态SQL值的变量,即在dynamic_select_string中存在占位符时使用。 USING OUT bind_argument,用于指定存放动态SQL返回值的变量。 查询语句中,into和out不能同时存在;
' || salary); END; / --调用存储过程 CALL dynamic_proc(); --删除存储过程 DROP PROCEDURE dynamic_proc; 父主题: GaussDB(DWS)存储过程动态语句
GaussDB(DWS)存储过程 GaussDB(DWS)存储过程简介 GaussDB(DWS)存储过程数据类型转换 GaussDB(DWS)存储过程数组和record GaussDB(DWS)存储过程声明语法 GaussDB(DWS)存储过程基本语句 GaussDB(DWS)存储过程动态语句
GaussDB(DWS)存储过程声明语法 基本结构 PL/SQL块中可以包含子块,子块可以位于PL/SQL中任何部分。PL/SQL块的结构如下: 声明部分:声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数。 DECLARE 不涉及变量声明时声明部分可以没有。 对匿
类型,函数或存储过程可以通过sys_refcursor参数传入或传出游标结果集合,函数也可以通过返回sys_refcursor来返回游标结果集合。 图3 dynamic_cursor_define::= 打开静态游标:就是执行游标所对应的SELECT语句,将其查询结果放入工作区,
proc_for_loop(); --删除存储过程 DROP PROCEDURE proc_for_loop; FOR_LOOP查询语句 语法图 图4 for_loop_query::= 变量target会自动定义,类型和query的查询结果的类型一致,并且只在此循环中有效。target的取值就是query的查询结果。
执行动态非查询语句 语法 语法请参见图1。 图1 noselect::= using_clause子句的语法参见图2。 图2 using_clause-2 对以上语法格式的解释如下: USING IN bind_argument用于指定存放传递给动态SQL值的变量,在dynami
record类型变量的赋值支持: 在函数或存储过程的声明阶段,声明一个record类型,并且可以在该类型中定义成员变量。 一个record变量到另一个record变量的赋值。 SELECT INTO和FETCH向一个record类型的变量中赋值。 将一个NULL值赋值给一个record变量。
FOR_AS_loop::= 注意事项 不能在该循环语句中对查询的表进行更新操作。 变量loop_name会自动定义且只在此循环中有效,类型和select_statement的查询结果类型一致。loop_name的取值就是select_statement的查询结果。 游标的属性中%FOUND、%NOT
GaussDB(DWS)存储过程简介 什么是GaussDB(DWS)存储过程 商业规则和业务逻辑可以通过程序存储在GaussDB(DWS)中,这个程序就是存储过程。 存储过程是SQL,PL/SQL,Java语句的组合。存储过程使执行商业规则的代码可以从应用程序中移动到数据库。从而,代码存储一次能够被多个程序使用。
proc_for_loop(); --删除存储过程 DROP PROCEDURE proc_for_loop; FOR_LOOP查询语句 语法图 图4 for_loop_query::= 变量target会自动定义,类型和query的查询结果的类型一致,并且只在此循环中有效。target的取值就是query的查询结果。
record类型的变量的赋值支持, 在函数或存储过程的声明阶段,声明一个record类型,并且可以在该类型中定义成员变量。 一个record变量到另一个record变量的赋值。 SELECT INTO和FETCH向一个record类型的变量中赋值。 将一个NULL值赋值给一个record变量。