检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
匿名块 匿名块(Anonymous Block)一般用于不频繁执行的脚本或不重复进行的活动。它们在一个会话中执行,并不被存储。 语法 匿名块的语法如图1所示。 图1 anonymous_block::= 匿名块程序实施部分,以BEGIN语句开始,以END语句停顿,以一个分号结束。输入
调用语句 语法 调用一个语句的语法请参见图1。 图1 call_clause::= 对以上语法格式的解释如下: procedure_name,为存储过程名。 parameter,为存储过程的参数,可以没有或者有多个参数。 示例 1 2 3 4 5 6 7 8 9
错误捕获语句 缺省时,当PL/SQL函数执行过程中发生错误时退出函数执行,并且周围的事务也会回滚。可以用一个带有EXCEPTION子句的BEGIN块捕获错误并且从中恢复。其语法是正常的BEGIN块语法的一个扩展: 1 2 3 4 5 6 7 8 9 10 11 12
GOTO语句 GOTO语句可以实现从GOTO位置到目标语句的无条件跳转。GOTO语句会改变当前的执行逻辑,因此应该慎重使用,或者也可以使用EXCEPTION处理特殊场景。当执行GOTO语句时,目标Label必须是唯一的。 语法 label declaration ::=语句如图1所示
数据类型转换 数据库中有些数据类型间允许进行隐式类型转换(例如赋值、函数调用的参数等)、有些数据类型间不允许进行隐式数据类型转换(例如:INT和复合类型),可尝试使用GaussDB提供的类型转换函数,例如:CAST进行数据类型强转。 GaussDB数据库常见的隐式类型转换,请参见表
匿名块 匿名块(Anonymous Block)一般用于不频繁执行的脚本或不重复进行的活动。它们在一个会话中执行,并不被存储。 语法 匿名块的语法参见图1。 图1 anonymous_block::= 对以上语法图的解释如下: 匿名块程序实施部分,以BEGIN语句开始,以END语句停顿
调用语句 语法 调用一个语句的语法请参见图1。 图1 call_clause::= 对以上语法格式的解释如下: procedure_name:存储过程名。 parameter:存储过程的参数,可以没有或者有多个参数。 示例 1 2 3 4 5 6 7 8 9 10
错误捕获语句 缺省时,当PL/SQL函数执行过程中发生错误时退出函数执行,并且周围的事务也会回滚。可以用一个带有EXCEPTION子句的BEGIN块捕获错误并且从中恢复。其语法是正常的BEGIN块语法的一个扩展: 1 2 3 4 5 6 7 8 9 10 11 12
GOTO语句 GOTO语句可以实现从GOTO位置到目标语句的无条件跳转。GOTO语句会改变原执行逻辑,因此应该慎重使用,或者也可以使用EXCEPTION处理特殊场景。当执行GOTO语句时,目标Label必须是唯一的。 语法 label declaration ::= goto statement
级联失效 设置GUC参数ddl_invalid_mode值为invalid后,支持函数、存储过程和包的级联失效。 示例 --设置如下参数: SET ddl_invalid_mode='invalid'; SET CREATE TYPE type1 AS (f1 int, f2 text
重编译 通过函数调用或者ALTER COMPILE语法可以将失效的存储过程、函数和包重编译为有效。 示例 CREATE OR REPLACE FUNCTION func1 RETURN INT AS BEGIN RETURN 1; END; / CREATE FUNCTION CREATE
数据类型转换 数据库中允许有些数据类型进行隐式类型转换(赋值、函数调用的参数等),有些数据类型间不允许进行隐式数据类型转换,可尝试使用GaussDB提供的类型转换函数,例如CAST进行数据类型强转。 GaussDB数据库常见的隐式类型转换,请参见表1。 GaussDB支持的DATE
数组 数组类型的使用 在使用数组之前,需要自定义一个数组类型。 在存储过程中紧跟AS关键字后面定义数组类型。定义方法如下。 TYPE array_type IS VARRAY(size) OF data_type; 其中: array_type:要定义的数组类型名。 VARRAY:
集合 集合类型的使用 在使用集合之前,需要自定义一个集合类型。 在存储过程中紧跟AS关键字后面定义集合类型。定义方法如下。 其中: table_type:要定义的集合类型名。 TABLE:表示要定义的集合类型。 data_type:要创建的集合中成员的类型。 indexby_type
匿名块 匿名块(Anonymous Block)一般用于不频繁执行的脚本或不重复进行的活动。它们在一个会话中执行,并不被存储。 语法 匿名块的语法参见图1。 图1 anonymous_block::= 对以上语法图的解释如下: 匿名块程序实施部分,以BEGIN语句开始,以END语句停顿
调用语句 语法 调用一个语句的语法请参见图1。 图1 call_clause::= 对以上语法格式的解释如下: procedure_name:存储过程名。 parameter:存储过程的参数,可以没有或者有多个参数。 示例 1 2 3 4 5 6 7 8 9 10
错误捕获语句 缺省时,当PL/SQL函数执行过程中发生错误时退出函数执行,并且周围的事务也会回滚。可以用一个带有EXCEPTION子句的BEGIN块捕获错误并且从中恢复。其语法是正常的BEGIN块语法的一个扩展: 1 2 3 4 5 6 7 8 9 10 11 12
GOTO语句 GOTO语句可以实现从GOTO位置到目标语句的无条件跳转。GOTO语句会改变原本的执行逻辑,因此应该慎重使用,或者也可以使用EXCEPTION处理特殊场景。当执行GOTO语句时,目标Label必须是唯一的。 语法 label declaration ::= goto
数据类型转换 数据库中允许有些数据类型进行隐式类型转换(赋值、函数调用的参数等),有些数据类型间不允许进行隐式数据类型转换,可尝试使用GaussDB提供的类型转换函数,例如CAST进行数据类型强转。 GaussDB数据库常见的隐式类型转换,请参见表1。 GaussDB支持的DATE
record record类型的变量 创建一个record变量的方式: 定义一个record类型 ,然后使用该类型来声明一个变量。 语法 record类型的语法参见图1。 图1 record类型的语法 对以上语法格式的解释如下: record_type:声明的类型名称。 field