- 浏览: 188402 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. oracle游标
1) 游标简介 使用游标,我们可以对具体操作数据,比如查询的结果,对行,列数据进行更加细致的处理。以及对其他DML操作进行判断等操作。 2) 显示游标 SQL> set serverout on; declare cursor cu_emp is select empno,ename,sal from emp; e_no number; e_name varchar2(10); e_sal number; begin open cu_emp; fetch cu_emp into e_no,e_name,e_sal; while cu_emp%found loop dbms_output.put_line('编号:'||e_no||',姓名:'||e_name||',基本薪资:'||e_sal); fetch cu_emp into e_no,e_name,e_sal; end loop; close cu_emp; end; 使用%type匹配类型 SQL> set serverout on; declare cursor cu_emp is select empno,ename,sal from emp; e_no emp.empno%type; e_name emp.ename%type; e_sal emp.sal%type; begin open cu_emp; fetch cu_emp into e_no,e_name,e_sal; while cu_emp%found loop dbms_output.put_line('编号:'||e_no||',姓名:'||e_name||',基本薪资:'||e_sal); fetch cu_emp into e_no,e_name,e_sal; end loop; close cu_emp; end; 使用行,查询要使用*查询要使用*查询 SQL> set serverout on; declare cursor cu_emp is select * from emp; e emp%rowtype; begin open cu_emp; fetch cu_emp into e; while cu_emp%found loop dbms_output.put_line('编号:'||e.empno||',姓名:'||e.ename||',基本薪资:'||e.sal); fetch cu_emp into e; end loop; close cu_emp; end; 带条件查询 SQL> set serverout on; declare cursor cu_emp is select * from emp where sal>2000 and sal<3000; e emp%rowtype; begin open cu_emp; fetch cu_emp into e; while cu_emp%found loop dbms_output.put_line('编号:'||e.empno||',姓名:'||e.ename||',基本薪资:'||e.sal); fetch cu_emp into e; end loop; close cu_emp; end; 3) 隐式游标 隐式游标的属性 返回值类型 意义 SQL%ROWCOUNT 整型 代表DML语句成功执行的数据行数 SQL%FOUND 布尔型 值为true代表插入、删除、更新或单行查询操作成功 SQL%NOTFOUND 布尔型 与SQL%FOUND 属性返回值相反 SQL%ISOPEN 布尔型 DML执行过程中为真,结束后为假 SQL> begin if sql%isopen then dbms_output.put_line('sql游标已打开'); else dbms_output.put_line('sql游标未打开'); end if; end; 运行结果: sql游标未打开 隐式游标rowcount属性 SQL> declare e_count number; begin select count(*) into e_count from emp; dbms_output.put_line('游标捕获的记录数:'||sql%rowcount); end; 运行结果: 1 使用rowcount判断是否更新 SQL> begin update emp set ename='newname' where empno=111; if sql%rowcount=1 then dbms_output.put_line('已更新'); else dbms_output.put_line('未更新'); end if; end; 使用found判断是否更新 SQL> begin update emp set ename='newname' where empno=111; if sql%found then dbms_output.put_line('已更新'); else dbms_output.put_line('未更新'); end if; end; 4) 动态游标 强类型动态游标 job='PRESIDENT'或者job='PRESIDENT1' SQL> declare type emptype is ref cursor return emp%rowtype; cu_emp emptype; e_count number; e emp%rowtype; begin select count(*) into e_count from emp where job='PRESIDENT1'; if e_count=0 then open cu_emp for select * from emp; else open cu_emp for select * from emp where job='PRESIDENT'; end if; fetch cu_emp into e; while cu_emp%found loop dbms_output.put_line('编号:'||e.empno||',姓名:'||e.ename||',基本薪资:'||e.sal); fetch cu_emp into e; end loop; close cu_emp; end; 弱类型动态游标 job='PRESIDENT'或者job='PRESIDENT1' SQL> declare type customType is ref cursor; e_count number; e emp%rowtype; s salgrade%rowType; cType customType; begin select count(*) into e_count from emp where job='PRESIDENT1'; if e_count=0 then open cType for select * from salgrade; fetch cType into s; while cType%found loop dbms_output.put_line('等级:'||s.grade||',最低薪资:'||s.losal||',最高工资:'||s.hisal); fetch cType into s; end loop; close cType; else open cType for select * from emp where job='PRESIDENT'; fetch cType into e; while cType%found loop dbms_output.put_line('编号:'||e.empno||',姓名:'||e.ename||',基本薪资:'||e.sal); fetch cType into e; end loop; close cType; end if; end;
发表评论
-
账户锁定:ORA-28000: the account is locked
2019-02-28 09:16 2189Caused by: java.sql.SQLExcept ... -
oracle中角色
2018-12-21 10:58 5861. oracle角色 角色是权限的集合,可以给用户直接分 ... -
oracle中权限
2018-12-21 10:12 5541. oracle权限 oracle权限分为系统权限和对象 ... -
oracle中用户
2018-12-21 09:53 5791. oracle用户 oracle用户分两种,一种是系统 ... -
oracle中程序包?
2018-12-21 09:40 6941. oracle程序包 引入的目的,是为了有效的管理函数 ... -
oracle中函数与存储过程
2018-12-21 09:37 7531. oracle函数 create function 函 ... -
oracle中触发器
2018-12-20 15:29 5881. oracle触发器 ---------------- ... -
oracle中控制语句
2018-12-20 09:15 5951. oracle控制语句 set serverout o ... -
oracle中约束!
2018-12-19 16:26 5541. oracle约束 1.1 主键约束 primary ... -
oracle中视图
2018-12-19 09:25 6231. 用户授权 查看当前用户的角色 SQL> se ... -
oracle中数据类型及函数
2018-12-19 09:22 6611. 字符串类型及函数 ----------------- ... -
oracle中table表操作
2018-12-18 11:47 7601. scott用户示例表 1) 部门表:dept 1D ... -
oracle中sequence序列
2018-12-18 11:47 5981. oracle序列 ----------------- ... -
oracle中tablespace表空间
2018-12-18 11:47 6531. oracle表空间 一个数据库可以有多个表空间,一个 ... -
oracle软件sqldeveloper的安装
2018-12-18 11:46 6761. PLSQL Developer 10安装 1) PLS ... -
oracle软件oracle11g的安装
2018-12-18 11:46 6701. oracle的下载 oracle官 ... -
密码过期:ORA-28001: the password has expired
2018-12-24 15:48 12431. 密码过期:ORA-28001: the password ...
相关推荐
Oracle游标是数据库管理系统中的一种重要机制,它允许我们逐行处理查询结果,尤其是在面对返回多行记录的SQL语句时。游标提供了一种控制流的方式,让我们能够按需处理每一行数据,而无需一次性加载所有数据到内存中...
以上就是Oracle中游标的基本用法。通过游标,开发者能够灵活地遍历查询结果,进行复杂的逻辑处理,从而实现更精细的数据操作。在实际开发中,熟练掌握游标的使用是提高代码效率和可维护性的重要手段。
1. **游标的类型**:Oracle中游标分为显示游标和隐式游标。显示游标通过`DECLARE`语句声明,用于执行复杂的查询操作;隐式游标由PL/SQL自动生成,用于简单的查询。 2. **游标的作用**:游标允许用户逐行处理数据,...
Oracle 中游标是以提高速度全部统一的单项游标,可以允许多用户异步读取,而且声明比较简单,就一句 declare cursor 游标名 is select 语句就可以了。 容错机制 -------- SQL 中的错误机制比较复杂,没有提供错误...
- 通过实例演示了如何使用存储过程或函数来执行分页查询,强调了Oracle中游标和函数在数据分页处理中的重要性。 整体来看,这些知识点覆盖了Oracle数据库结构定义、数据操作优化、以及Java环境中的数据库编程,非常...
Oracle PL/SQL 中游标声明中表名动态变化的方法 在 Oracle PL/SQL 中, quando 声明中表名动态变化是指在游标声明中使用动态表名,而不是硬编码的表名。这是一种灵活的方法,可以根据不同情况选择不同的表名。 在 ...
* PL/SQL 中游标操作包括声明游标、打开游标、提取游标、关闭游标。 * 游标的数据可以改变。 五、数据库设计 * 数据库设计一般分为三个阶段:概念设计、逻辑设计、物理设计。 * 数据库概念模型主要用于数据库概念...
7. **PL/SQL中游标的可修改性:** - 正确。PL/SQL中的游标可以被更新或修改。 8. **表与数据文件的关系:** - 正确。一个表可以分布在多个数据文件上,而一个数据文件也可以存储多个表的数据。 9. **HAVING子句...
PL/SQL中游标操作包括声明游标、打开游标、提取游标和关闭游标。 数据库中存储的基本对象是数据,数据库系统的核心是DBMS(Database Management System)。关系操作的特点是集合操作,关系代数中五种基本运算是并、...
Oracle企业版的高级安装涉及多个步骤,包括安装过程、数据库实例创建以及用户的管理。下面将详细阐述这些关键知识点。 首先,我们关注高级安装的选择。在安装Oracle时,选择“高级安装”模式允许用户进行更精细化的...
1. PL/SQL中游标操作包括打开(OPEN)、提取(FETCH)、关闭(CLOSE)和游标状态检查(%ISOPEN、%NOTFOUND、%FOUND)。 2. Oracle数据库完整性约束类型有NOT NULL(非空约束)、UNIQUE(唯一约束)、PRIMARY KEY...
在数据库管理中,Navicat是一款常用的图形化工具,它支持多种数据库管理系统,包括MySQL。本文将详细介绍如何在Navicat中创建存储过程、触发器以及使用游标进行数据操作。 1. **存储过程**: 存储过程是一组为了...
通过对Oracle数据库中游标管理的学习,我们可以更高效地处理查询结果集,从而提高应用程序的性能和灵活性。理解游标的类型及其使用方法对于Oracle数据库开发来说至关重要。希望本章内容能帮助大家更好地掌握这一技术...
17.4 oracle中游标的使用 365 17.4.1 显式游标与隐式游标 365 17.4.2 游标的属性 366 17.4.3 %type、%rowtype定义记录变量 367 17.4.4 参数化游标 368 17.4.5 游标中的循环 369 17.4.6 游标变量 371 17.5 小...
Inceptor 中游标主要分为静态游标和动态游标,其中静态游标可分为显式游标和隐式游标;动态游标可分为强类型动态游标和弱类型动态游标。 流程控制语句 PL/SQL 中的流程控制语句包括 IF、LOOP、WHILE、FOR、EXIT ...
以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中...