检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
游标概述 为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。 当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。 游标的使用分为显式游标和隐式游标。对于不
游标循环 游标在WHILE语句、LOOP语句中的使用称为游标循环,一般这种循环都需要使用OPEN、FETCH和CLOSE语句。下面要介绍的一种循环不需要这些操作,可以简化游标循环的操作,这种循环方式适用于静态游标的循环,不用执行静态游标的四个步骤。 语法 FOR AS循环的语法请参见图1。
PL/SQL程序不能用OPEN语句重复打开一个游标。 提取游标数据:检索结果集合中的数据行,放入指定的输出变量中。 提取游标数据的语法图,请参见图6。 图6 fetch_cursor::= 对该记录进行处理。 继续处理,直到活动集合中没有记录。 关闭游标:当提取和处理完游标结果集合数据后,应及时关闭游标,以释放该游
插入或更新数据时报错,提示分布键不能被更新 问题现象 往数据库插入或更新数据时报错,提示分布键不能被更新,错误信息如下所示: 1 ERROR: Distributed key column can't be updated in current version 原因分析 GaussDB(DWS)分布键不允许被更新。
隐式游标的相关属性,来完成相应的操作。在隐式游标的工作区中,所存放的数据是最新处理的一条SQL语句所包含的数据,与用户自定义的显式游标无关。 格式调用为: SQL% INSERT,UPDATE,DROP,SELECT语句中不必明确定义游标。 属性 隐式游标属性为: SQL%FOU
PL/SQL程序不能用OPEN语句重复打开一个游标。 提取游标数据:检索结果集合中的数据行,放入指定的输出变量中。 提取游标数据的语法图,请参见图6。 图6 fetch_cursor::= 对该记录进行处理。 继续处理,直到活动集合中没有记录。 关闭游标:当提取和处理完游标结果集合数据后,应及时关闭游标,以释放该游
游标循环 游标在WHILE语句、LOOP语句中的使用称为游标循环,一般这种循环都需要使用OPEN、FETCH和CLOSE语句。下面要介绍的一种循环不需要这些操作,可以简化游标循环的操作,这种循环方式适用于静态游标的循环,不用执行静态游标的四个步骤。 语法 FOR AS循环的语法请参见图1。
隐式游标的相关属性,来完成相应的操作。在隐式游标的工作区中,所存放的数据是最新处理的一条SQL语句所包含的数据,与用户自定义的显式游标无关。 格式调用为: SQL% INSERT,UPDATE,DROP,SELECT语句中不必明确定义游标。 属性 隐式游标属性为: SQL%FOU
游标概述 为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。 当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。 游标的使用分为显式游标和隐式游标。对于不
startend_pt是以c2列为partition_key,将插入表的数据分为5个没有重叠的分区。而插入的数据中,c2列对应的数据5001已超过了分区表中划分的分区范围(即5001>5000),因此报错。 处理方法 应根据数据实际情况规划分区,以保证插入的数据都在规划好的分区中。 如果已规划的分区无法
者小规模数据进入表中时,能够防止小CU的产生,所以开启delta表能够带来显著的性能提升,例如在3CN、6DN的集群上操作,每次导入100条数据,导入时间能减少25%,存储空间减少97%,所以在需要多次插入小批量数据前应该先开启delta表,等到确定接下来没有小批量数据导入了再关闭。
GaussDB(DWS)存储过程游标 游标概述 显式游标 隐式游标 游标循环 父主题: GaussDB(DWS)存储过程
cursor_name 将要创建的游标名。 取值范围:遵循数据库对象命名规范。 BINARY 指明游标以二进制而不是文本格式返回数据。 NO SCROLL 声明游标检索数据行的方式。 NO SCROLL:声明该游标不能用于以倒序的方式检索数据行。 未声明:根据执行计划的不同,自动判断该游标是否可以用于以倒序的方式检索数据行。
GaussDB(DWS)存储过程游标 游标概述 显式游标 隐式游标 游标循环 父主题: GaussDB(DWS)存储过程
jar,请替换驱动类名(将代码中的“org.postgresql”替换成“com.huawei.gauss200.jdbc”)与连接URL串前缀(将“jdbc:postgresql”替换为“jdbc:gaussdb”)。 //演示基于JDBC开发的主要步骤,会涉及创建数据库、创建表、插入数据等。 import
cursor_name 将要创建的游标名。 取值范围:遵循数据库对象命名规范。 BINARY 指明游标以二进制而不是文本格式返回数据。 NO SCROLL 声明游标检索数据行的方式。 NO SCROLL:声明该游标不能用于以倒序的方式检索数据行。 未声明:根据执行计划的不同,自动判断该游标是否可以用于以倒序的方式检索数据行。
jar,请替换驱动类名(将代码中的“org.postgresql”替换成“com.huawei.gauss200.jdbc”)与连接URL串前缀(将“jdbc:postgresql”替换为“jdbc:gaussdb”)。 //演示基于JDBC开发的主要步骤,会涉及创建数据库、创建表、插入数据等。 import
CLOSE用于释放和一个游标关联的所有资源。 注意事项 不允许对一个已关闭的游标再做任何操作。 一个不再使用的游标应该尽早关闭。 当创建游标的事务用COMMIT或ROLLBACK终止之后,每个不可保持的已打开游标都隐含关闭。 当创建游标的事务通过ROLLBACK退出之后,每个可以保持的游标都将隐含关闭。
FETCH 功能描述 FETCH通过已创建的游标来检索数据。 每个游标都有一个供FETCH使用的关联位置。游标的关联位置可以在查询结果的第一行之前,或者在结果中的任意行,或者在结果的最后一行之后: 游标刚创建完之后,关联位置在第一行之前的。 在抓取了一些移动行之后,关联位置在检索到的最后一行上。
CLOSE用于释放和一个游标关联的所有资源。 注意事项 不允许对一个已关闭的游标再做任何操作。 一个不再使用的游标应该尽早关闭。 当创建游标的事务用COMMIT或ROLLBACK终止之后,每个不可保持的已打开游标都隐含关闭。 当创建游标的事务通过ROLLBACK退出之后,每个可以保持的游标都将隐含关闭。