提交了数据库后,游标能否接着取值。
实验如下:
CUSTOMER表:
CUSTOMERID NAME LOCATION
---------- -------------------- --------------------
201 Dennis 海淀
202 John 朝阳
203 Tom 东城
204 Jenny 东城
205 Rick 西城
存储过程:
create or replace procedure Hello is
cur_result customer%rowtype;
i number;
cursor cur_select is select CUSTOMERID,NAME,LOCATION from customer;
begin
i := 0;
open cur_select;
dbms_output.put_line('开始');
--第一次循环取值
loop
i := i + 1;
fetch cur_select into cur_result;
if cur_select%notfound then
dbms_output.put_line('exit 第一次取值');
exit;
end if;
dbms_output.put_line('第一次'||i||'='||cur_result.name);
if i = 2 then
dbms_output.put_line('第一次提交'||i||'='||cur_result.name);
commit;
exit;
end if;
end loop;
--第二次循环取值
loop
i := i + 1;
fetch cur_select into cur_result;
if cur_select%notfound then
dbms_output.put_line('exit 第二次取值'');
exit;
end if;
dbms_output.put_line('第二次'||i||'='||cur_result.name);
end loop;
close cur_select;
end Hello;
/
********************************************
结果如下:
开始
第一次1=Dennis
第一次2=John
第一次提交2=John
第二次3=Tom
第二次4=Jenny
第二次5=Rick
exit 第二次取值
********************************************
证明,提交了数据库后,没有关闭游标,无需打开,继续可以取值
分享到:
相关推荐
- **事务的持久性**:DBMS中的恢复管理子系统负责实现事务的持久性,确保即使在系统故障后,已提交的事务结果仍能得到保存。 - **并发操作的问题**:如果不加以控制,多用户并发操作可能导致数据不一致、死锁或程序...
数据库原理与应用试题涉及到数据库系统的基本概念、关系数据库理论、SQL语言使用、并发控制、安全性、完整性约束以及数据库设计等多个方面。以下是对这些知识点的详细解释: 1. **数据库概念**: - DB(Database)...
13. **避免使用游标**:游标占用大量资源,应尽可能使用非游标技术,如客户端循环或临时表来实现逐行处理。 14. **SQL注释**:注释不会影响查询性能,用于提高代码可读性。 15. **使用适当的查询技巧**:避免无谓...
- **重要性**:预处理语句可能会在数据库端保留游标,如果数量过多,可能会导致连接游标超出限制。建议设置一个合理的上限,特别是当应用程序可能为每个连接打开大量不同的预处理语句时。 #### 3. `...
数据库规范是确保数据库高效、稳定运行的重要指导原则,尤其在互联网行业中,数据库的规范性直接影响到系统的性能、安全性和可维护性。以下是一些关键的数据库设计和操作规范: 1. **字符集选择**:使用`utf8mb4`...
8. 安全性:在实际应用中,访问数据库时还需要考虑安全性问题,比如限制用户权限、加密数据库、设置访问控制等。易语言可以通过设置数据库连接参数或者在代码层面实现一定的安全策略。 9. 性能优化:对于大量数据的...
### 数据库原理试题库知识点解析 #### 一、选择题知识点解析 1. **数据模型类型** - **选项解析**: - **A.网状模型**:早期的数据模型之一,允许多个父节点存在。 - **B.层次模型**:同样为早期数据模型,但...
### Oracle数据库期末考试知识点解析 #### 1. SGA内存区 **题目**: 以下( )内存区不属于 SGA。 - A.PGA - B.日志缓冲区 - C.数据缓冲区 - D.共享池 **答案**: A.PGA **解析**: SGA(System Global ...
- **功能**:创建一个数据值域,用于限制字段的数据类型和取值范围。 - **示例**:`CREATE DOMAIN domain_name AS data_type CONSTRAINT constraint_name CHECK (condition);` #### ALTER DOMAIN - **功能**:改变...
SQL(Structured Query Language)是用于管理和操作关系数据库的语言,它被广泛应用于MySQL、SQL Server、Access和Oracle等数据库管理系统中。以下是对SQL语句的主要功能的详细解释: 1. **数据操作** - **SELECT*...
- **COMMIT**:提交当前事务,使其对数据库的更改永久生效。 - **ROLLBACK**:回滚当前事务,撤销所有未提交的更改。 - **SET TRANSACTION**:定义当前事务的属性,如隔离级别。 5. **程序化SQL**: - **...
### ORACLE之常用问题解答:深入解析 #### 第一部分:SQL & PL/SQL ##### 查询特殊字符 在Oracle中,若需查询包含特殊字符(如通配符`%`与`_`)的数据,可使用`LIKE`子句并结合`ESCAPE`关键字来指定特殊字符的...
executeUpdate:返回int类型的值,代表的是,操作执行完成后,受影响的数据库的行计数(针对于insert,update,delete) executeQuery:返回的是ResultSet ResultSet:类似于指针或者游标的东西,里边保存的不是所有的...
预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下面我们就简单介绍些系统角色: CONNECT, RESOURCE, DBA这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自己设计数据库...
--(函数nvl() 求出员工的"年薪 + 提成(或奖金)问题") 45、select max(sal) from emp; -- (函数max() 求出emp表中sal字段的最大值) 46、select min(sal) from emp; -- (函数max() 求出emp表中sal字段的最小值) ...