检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
END; / --结果如下: 5 38920 ANONYMOUS BLOCK EXECUTE INTO/BULK COLLECT INTO 将存储过程内语句返回的值存储到变量内,BULK COLLECT INTO允许将部分或全部返回值暂存到数组内部。 示例 gaussdb=# DROP
入数据和更新数据。 不支持record类型的构造器作为函数或存储过程参数的默认值。 如果成员有复合类型,在声明阶段不支持指定默认值,该行为同声明阶段的变量一样。 如果成员有record类型,则内层record类型的默认值不支持传递至外层record类型中。 set enable_
调用一个语句的语法请参见图1。 图1 call_clause::= 对以上语法格式的解释如下: procedure_name,为存储过程名。 parameter,为存储过程的参数,可以没有或者有多个参数。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
数据类型是一组值的集合以及定义在这个值集上的一组操作。GaussDB数据库是由表的集合组成的,而各表中的列定义了该表,每一列都属于一种数据类型,GaussDB根据数据类型有相应函数对其内容进行操作,例如GaussDB可对数值型数据进行加、减、乘、除操作。 父主题: 存储过程
生作用。 存储过程指定package属性时支持重载。 不能创建仅形参名字不同(存储过程名和参数列表类型都一样)的重载存储过程。 重载的存储过程在调用时变量需要明确具体的类型。 不能创建与函数拥有相同名称和参数列表的存储过程。 不支持仅默认值不同的存储过程重载。 存储过程仅IN、O
数据类型转换 数据库中允许有些数据类型进行隐式类型转换(赋值、函数调用的参数等),有些数据类型间不允许进行隐式数据类型转换,可尝试使用GaussDB提供的类型转换函数,例如CAST进行数据类型强转。 GaussDB数据库常见的隐式类型转换,请参见表1。 GaussDB支持的DAT
EPOINT的存储过程,即通过/BEGIN/START/END等开启控制的外部事务。 支持在子事务中调用含有SAVEPOINT的存储过程,即存储过程中使用外部定义的SAVEPOINT,回退事务状态到存储过程外定义的SAVEPOINT位置。 支持存储过程外部对存储过程内定义的SAV
调用其他存储过程等。介绍PL/SQL中的基本语句,包括定义变量、赋值语句、调用语句以及返回语句。 尽量不要在存储过程中调用包含密码的SQL语句,因为存储在数据库中的存储过程文本可能被其他有权限的用户看到导致密码信息被泄漏。如果存储过程中包含其他敏感信息也需要配置存储过程的访问权限,保证敏感信息不会泄漏。
用其他存储过程等。介绍PL/SQL中的基本语句,包括定义变量、赋值语句、调用语句以及返回语句。 尽量不要在存储过程中调用包含密码的SQL语句,因为存储在数据库中的存储过程文本可能被其他有权限的用户看到,从而导致密码信息泄漏。如果存储过程中包含其他敏感信息,也需要配置存储过程的访问权限,以保证敏感信息不会泄漏。
Retry管理 Retry是数据库在SQL或存储过程(包含匿名块)执行失败时,在数据库内部进行重新执行的过程,以提高执行成功率和用户体验。数据库内部通过检查发生错误时的错误码及Retry相关配置,决定是否进行重试。 失败时回滚之前执行的语句,并重新执行存储过程进行Retry。 示例:
Retry管理 Retry是数据库在SQL或存储过程(包含匿名块)执行失败时,在数据库内部进行重新执行的过程,以提高执行成功率和用户体验。数据库内部通过检查发生错误时的错误码及Retry相关配置,决定是否进行重试。 失败时回滚之前执行的语句,并重新执行存储过程进行Retry。 示例:
Retry管理 Retry是数据库在SQL或存储过程(包含匿名块)执行失败时,在数据库内部进行重新执行的过程,以提高执行成功率和用户体验。数据库内部通过检查发生错误时的错误码及Retry相关配置,决定是否进行重试。 失败时回滚之前执行的语句,并重新执行存储过程进行Retry。 示例:
具体的类型,如果有需要解析具体类型的场景(比如loop_name作为重载函数或者存储过程的出入参)会编译报错。 游标的属性中%FOUND、%NOTFOUND、%ROWCOUNT在GaussDB数据库中都是访问同一个内部变量,事务和匿名块不支持多个游标同时访问。 示例 1 2
CURSOR的形式引用cursor变量。 带参数的CURSOR仅支持在当前PACKAGE内打开。 不支持package变量作为函数或存储过程参数的默认值。 如果PACKAGE内的存储过程入参包含伪类型(如:anyelement),不支持调用时传入变长类型的参数。 父主题: 存储过程
动态语句 执行动态查询语句 执行动态非查询语句 动态调用存储过程 动态调用匿名块 父主题: 存储过程
表1 日期与和时间函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 ADDDATE() 支持 此函数的表现会因为interval表达式的差异与MySQL有差异,具体可见INTERVAL差异说明。 2 ADDTIME() 支持 MySQL对第二入参为DATETIME样式
换、仅支持赋值时转换。不支持的场景下即使定义了转换路径,也不能做数据类型转换。 MySQL数据库支持任意两种数据类型之间做转换。 由于存在以上差异,基于MySQL数据库的应用程序向GaussDB数据库迁移时,SQL语句可能由于不支持不同数据类型之间的转换而报错。或者支持转换的场景
数据类型支持的属性 表1 数据类型支持的属性 序号 MySQL数据库 GaussDB数据库 1 NULL 支持 2 NOT NULL 支持 3 DEFAULT 支持 4 ON UPDATE 支持 5 PRIMARY KEY 支持 6 CHARACTER SET name 支持 7
支持在子事务中调用含SAVEPOINT的存储过程并使用外部定义的SAVEPOINT,回退事务状态到存储过程外定义的SAVEPOINT位置。 支持在存储过程外部可见存储过程内部定义的SAVEPOINT,即存储过程外可以将事务修改回滚到存储过程中定义SAVEPOINT的位置。 支持多
生作用。 存储过程指定package属性时支持重载。 不能创建仅形参名字不同(存储过程名和参数列表类型都一样)的重载存储过程。 不能创建与函数拥有相同名称和参数列表的存储过程。 不支持仅默认值不同的存储过程重载。 存储过程仅in、out、inout这三种类型不同的参数,打开GUC