继续更新
--显示游标处理多行返回数据,隐式游标处理select into 和 dml 语句
--FETCH into
DECLARE
CURSOR emp_cursor IS
SELECT ename,sal FROM emp WHERE deptno ='s1';
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
OPEN emp_cursor;
LOOP
FETCH emp_cursor INTO v_ename,v_sal;
EXIT WHEN emp_cursor%NOTFOUND;
dbms_output.put_line(v_ename||','||v_sal);
END LOOP;
CLOSE emp_cursor;
END;
--FETCH BULK COLLECT INTO (LIMIT)
DECLARE
TYPE name_array_type IS VARRAY(5) OF VARCHAR2(10);
name_array name_array_type ;
CURSOR emp_cursor IS SELECT ename FROM emp;
rows INT:=5;
v_count INT:=0;
BEGIN
OPEN emp_cursor;
LOOP
FETCH emp_cursor BULK COLLECT INTO name_array LIMIT rows;
dbms_output.put_line('雇员名');
FOR i IN 1..(emp_cursor%ROWCOUNT-v_count) LOOP
dbms_output.put(name_array(i)||'');
END LOOP;
dbms_output.new_line;
v_count:=emp_cursor%ROWCOUNT;
EXIT WHEN emp_cursor%NOTFOUND;
END LOOP;
CLOSE emp_cursor;
END;
--定义记录变量提取数据
DECLARE
CURSOR emp_cursor IS
SELECT ename,sal FROM emp;
emp_record emp_cursor%ROWTYPE;
BEGIN
OPEN emp_cursor;
LOOP
FETCH emp_cursor INTO emp_record;
EXIT WHEN emp_cursor%NOTFOUND;
dbms_output.put_line(emp_record.ename||','||emp_record.sal);
END LOOP;
CLOSE emp_cursor;
END;
--游标定义参数 参数要在WHERE子句中
DECLARE
CURSOR emp_cursor(nos NUMBER(6)) IS
SELECT ename,sal FROM emp WHERE deptno =nos;
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
OPEN emp_cursor(10);
LOOP
FETCH emp_cursor INTO v_ename,v_sal;
EXIT WHEN emp_cursor%NOTFOUND;
dbms_output.put_line(v_ename||','||v_sal);
END LOOP;
CLOSE emp_cursor;
END;
--使用游标更新
DECLARE
CURSOR emp_cursor IS
SELECT ename,sal FROM emp FOR UPDATE;
v_ename emp.ename%TYPE;
v_oldsal emp.sal%TYPE;
BEGIN
OPEN emp_cursor;
LOOP
FETCH emp_cursor INTO v_ename,v_oldsal;
EXIT WHEN emp_cursor%NOTFOUND;
IF v_oldsal <2000 THEN
UPDATE emp SET sal =sal +1000 WHERE CURRENT OF emp_cursor;
END IF;
END LOOP;
CLOSE emp_cursor;
END;
DECLARE
CURSOR emp_cursor IS
SELECT ename,sal,dname FROM emp,dept
WHERE emp.deptno = dept.dno;
FOR UPDATE OF emp.deptno;--OF单个表加共享锁 NOWALT 避免等待锁
v_ename emp.ename%TYPE;
v_oldsal emp.sal%TYPE;
BEGIN
OPEN emp_cursor;
LOOP
FETCH emp_cursor INTO v_ename,v_oldsal;
EXIT WHEN emp_cursor%NOTFOUND;
IF v_oldsal<2000 THEN
UPDATE emp SET sal = sal+100 WHEN CURRENT OF emp_cursor;
END IF;
END LOOP;
CLOSE emp_cursor;
END;
--游标for循环
BEGIN
FOR emp_record IN
(SELECT ename FROM emp)LOOP
dbms_output.put_line(emp_record.ename);
END loop;
END;
--定义游标变量 return 返回
DECLARE
TYPE emp_record_type IS RECORD(
name VARCHAR2(10),salary NUMBER(6,2));
TYPE emp_cursor_type IS REF CURSOR;
RETURN emp_record_type;
emp_cursor emp_cursor_type;
emp_record emp_record_type;
BEGIN
OPEN emp_cursor FOR SELECT ename,sal FROM emp
WHERE deptno =20;
LOOP
FETCH emp_cursor INTO emp_record;
EXIT WHEN emp_cursor%NOTFOUND;
END LOOP;
CLOSE emp_cursor;
END:
分享到:
相关推荐
教程名称:Oracle高级开发课程之PL-SQL编程入门视频课程目录:【】PL_SQL编程课程_-lesson3【】PL_SQL编程课程_lesson5-2(完结)【】PL_SQL编程课程_最佳入门教程-intr1【】PL_SQL编程课程_最佳入门教程-lesson1【】...
SQL编程词典,SQL帮助,程序员的好帮手
SQL Server高级查询与T-SQL编程是数据库管理与开发中的核心技能,涵盖了多个关键知识点。以下是对这些主题的详细说明: 1. **数据库设计**: - **需求分析**:这是设计过程的第一步,旨在理解用户的需求,确定系统...
《SQL编程参考宝典电子书》是一本专为SQL学习者和开发者编写的全面指南,旨在帮助读者深入理解和掌握SQL语言的核心概念与实践技巧。在数据库管理领域,SQL(Structured Query Language)是不可或缺的语言,用于数据...
1.2 sq|编程 1.3数据类型 1.4查询处理 1.5子查询 1.6联接与集合操作 1.7聚合和旋转操作 2. SQL优化 2.1优化SQL的一般步骤 2.2 索引问题. 2.3两个常用的优化技巧 2.4常用SQL优化 2.5常用SQL技巧 3.优化...
1. 存储过程和函数:编写使用PL/SQL编程语言的存储过程和函数,以实现复杂的逻辑和业务规则。 2. 高级查询技术:使用Oracle SQL的高级特性,如分析函数、子查询、连接以及数据聚合等。 3. 事务处理:深入理解如何...
SQL 编程思想:基于 5 种主流数据库代码实现 SQL 编程思想是指使用结构化查询语言(SQL)对关系型数据库系统进行操作和管理的编程思想。SQL 是一种标准编程语言,用于管理关系型数据库系统,具有简洁明了的语法和...
《SQL Server 2000设计与T-SQL编程》这本书是针对数据库管理和开发人员的一份宝贵资源,尤其对于那些正在学习或已经使用Microsoft SQL Server 2000的读者来说,它提供了一套全面的知识体系。SQL Server作为一款强大...
T-SQL 编程基础
精通Oracle SQL【第2版】ORACLE SQL高级编程【第二版】学习笔记
Oracle.10g.Pl.SQL编程Oracle.10g.Pl.SQL编程Oracle.10g.Pl.SQL编程Oracle.10g.Pl.SQL编程Oracle.10g.Pl.SQL编程Oracle.10g.Pl.SQL编程Oracle.10g.Pl.SQL编程Oracle.10g.Pl.SQL编程Oracle.10g.Pl.SQL编程Oracle.10g....
Oracle PL/SQL编程详解主要涵盖了数据库编程的关键方面,旨在帮助开发者深入理解如何利用PL/SQL进行高效、模块化的数据库应用开发。PL/SQL是Oracle数据库系统专用的一种过程化编程语言,它结合了SQL的查询能力并扩展...
### T-SQL编程基础知识点详解 #### 一、T-SQL简介与基本概念 T-SQL(Transact-SQL)是Microsoft开发的一种SQL方言,主要用于SQL Server数据库管理系统中。它扩展了标准SQL的功能,提供了更丰富的编程能力,包括流程...
PL/SQL编程对象包括存储过程、函数、包、触发器、类型等。这些对象可以直接在数据库中创建和调用,提高了代码复用性和数据库的集成能力。 通过以上知识点,我们可以看到PL/SQL作为一种强大的数据库编程语言,既具备...
【T-SQL编程与应用】是关于数据库编程的重要主题,主要涵盖了T-SQL语言的基础知识。T-SQL,全称Transact-SQL,是SQL Server所使用的扩展SQL语言,用于执行数据库查询、更新、事务处理等多种任务。 T-SQL语言的基础...
全美经典-SQL编程习题与解答全美经典-SQL编程习题与解答全美经典-SQL编程习题与解答全美经典-SQL编程习题与解答
《Transact-SQL编程规范》概述了在使用T-SQL进行数据库编程时应当遵循的一系列准则,以提高代码的可读性、可维护性和性能。本文由郑佐编写,主要面向IT公司的设计开发人员,提供了关于T-SQL编程的基础原则和具体规范...
SQL编程 学习资料,描述数据库sql语言的历史,及基本语法,包括事务,游标、联合、聚簇、子查询等等
Java语言SQL编程接口