检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
高级包现有两套接口,第一套为基础接口,第二套是为了提高易用性做了二次封装的接口,推荐使用第二套接口。 基础接口 二次封装接口(推荐) 父主题: 存储过程
高级包现有两套接口,第一套为基础接口,第二套是为了提高易用性做了二次封装的接口,推荐使用第二套接口。 基础接口 二次封装接口(推荐) 父主题: 存储过程
CREATE PROCEDURE --调用存储过程 gaussdb=# CALL proc_while_loop(10); proc_while_loop ----------------- (1 row) --删除存储过程和表 gaussdb=# DROP PROCEDURE
数据类型是一组值的集合以及定义在这个值集上的一组操作。GaussDB数据库是由表的集合组成的,而各表中的列定义了该表,每一列都属于一种数据类型,GaussDB根据数据类型有相应函数对其内容进行操作,例如GaussDB可对数值型数据进行加、减、乘、除操作。 父主题: 存储过程
在GaussDB中,数组会自动增长,访问越界会返回一个NULL,不会报错。 在存储过程中定义的数组类型,其作用域仅在该存储过程中。 建议选择上述定义方法的一种来自定义数组类型,当同时使用两种方法定义同名的数组类型时,GaussDB会优先选择存储过程中定义的数组类型来声明数组变量。 当data_type为
emp_id := 5;--赋值 emp_id := 5*7784; END; / INTO/BULK COLLECT INTO 将存储过程内语句返回的值存储到变量内,BULK COLLECT INTO允许将部分或全部返回值暂存到数组内部。 示例 openGauss=# DROP
为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。 当存储过程使用returns返回游标时,如果使用JDBC调用该存储过程,返回的游标将不可用,使用out出参不受影响。 存储过程内commit
space时,仍可进行分区和普通表数据的交换。 对于列默认值,MySQL不会校验默认值,因此默认值不同时也可进行分区和普通表数据的交换;GaussDB会校验默认值,如果默认值不同,则无法进行分区和普通表数据的交换。 MySQL在分区表或普通表上进行DROP列操作后,表结构仍然一致
ab可能会造成在使用gsql工具带“-r”参数执行PL/SQL块时出现异常。 分类 PL/SQL块可以分为以下几类: 匿名块:动态构造,只能执行一次。语法请参考图1。 子程序:存储在数据库中的存储过程、函数、操作符和高级包等。当在数据库上建立好后,可以在其他程序中调用它们。 父主题:
GaussDB的自定义函数参数和返回值不支持长度校验,存储过程参数不支持长度校验,MySQL支持。 GaussDB的自定义函数和存储过程中的临时变量支持长度校验以及严格宽松模式下的报错和截断告警,MySQL不支持。 输入二进制或十六进制字符串,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。
{'charset_name' [COLLATE 'collation_name'] | DEFAULT}; GaussDB中暂不支持指定charset_name与数据库字符集不同。具体请参考《开发指南》中“SQL参考 > SQL语法 > S > SET ”章节。 父主题: SQL
条件语句 条件语句的主要作用判断参数或者语句是否满足已给定的条件,根据判定结果执行相应的操作。 GaussDB有五种形式的IF: IF_THEN 图1 IF_THEN::= IF_THEN语句是IF的最简单形式。如果条件为真,statements将被执行。否则,将忽略它们的结果使该IF_THEN语句执行结束。
条件语句 条件语句的主要作用判断参数或者语句是否满足已给定的条件,根据判定结果执行相应的操作。 GaussDB有五种形式的IF: IF_THEN 图1 IF_THEN::= IF_THEN语句是IF的最简单形式。如果条件为真,statements将被执行。否则,将忽略它们的结果使该IF_THEN语句执行结束。
条件语句 条件语句的主要作用判断参数或者语句是否满足已给定的条件,根据判定结果执行相应的操作。 GaussDB有五种形式的IF: IF_THEN 图1 IF_THEN::= IF_THEN语句是IF的最简单形式。如果条件为真,statements将被执行。否则,将忽略它们的结果使该IF_THEN语句执行结束。
条件语句 条件语句的主要作用判断参数或者语句是否满足已给定的条件,根据判定结果执行相应的操作。 GaussDB有五种形式的IF: IF_THEN IF_THEN::=语句如图1所示。 图1 IF_THEN::= IF_THEN语句是IF的最简单形式。如果条件为真,statemen
作,也不支持定义表。 不支持以SCHEMA.PACKAGE.CUROSR的形式引用cursor变量。 带参数的CURSOR仅支持在当前PACKAGE内打开。 父主题: 存储过程
象等基本功能上与MySQL数据库兼容。 GaussDB的执行计划和优化、explain显示结果与MySQL不同。 由于GaussDB数据库与MySQL数据库底层框架实现存在差异,GaussDB数据库与MySQL数据库仍存在部分差异。 由于M-Compatibility的底层架构与
进入和退出一个包含EXCEPTION子句的块要比不包含的块开销大的多。因此,不必要的时候不要使用EXCEPTION。 在下列场景中,无法捕获处理异常,整个存储过程回滚:节点故障、网络故障引起的存储过程参与节点线程退出以及COPY FROM操作中源数据与目标表的表结构不一致造成的异常。 示例 :UPDATE/INSERT异常
rray_compat参数后,会增加对下标的检查,访问越界会进行报错 在存储过程中定义的数组类型,其作用域仅在该存储过程中。 size信息会记录到pg_type系统表中,打开varray_compat参数后,对数组的操作都会进行长度以及下标的检查,未开参数时则不使用size信息。
RETURN 语法 返回语句的语法请参见图1。 图1 return_clause::= 对以上语法的解释如下: 用于将控制从存储过程或函数返回给调用者。 示例 请参见调用语句的示例。 父主题: 返回语句