`
chenhua_1984
  • 浏览: 1254172 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

plsql编程学习之游标一

阅读更多
oralce plsql编程的游标

游标分类
1显示游标
2隐式游标

隐式游标,oracle自动管理,不用声明,打开和关闭,ORACLE自动处理,使用隐式游标%FOUND时,需要加上  SQL%FOUND
显示游标,需要自己声明,打开和关闭,使用%ROWCOUNT属性时,需要在前面加上游标名字 ,student_cur%ROWCOUNT

2声明游标
CURSOR cursor_name is select_statments;
打开游标
open cursor_name
读取数据
fetch cursor_name into variable_name,....variable_namen;
关闭游标
close cursor_name;

3游标属性
%ISOPEN

%FOUND

%NOTFOUND

%ROWCOUNT

4游标读取数据实例
select * from students;
set serveroutput on;

declare
	v_specialty students.specialty%type;
	v_sname  students.name%type;
	v_dob    students.dob%type;
	cursor  students_cur   --声明游标
	is
	select name ,dob from students where specialty=v_specialty; --游标体
begin
  v_specialty:='&specialty';
  open students_cur;  --打开游标
  dbms_output.put_line('学生姓名   出生日期');
  loop
  		fetch students_cur into v_sname,v_dob ; --读取游标的数据
  		exit when students_cur%NOTFOUND;        --假如没有数据那么退出
  		DBMS_OUTPUT.PUT_LINE(v_sname||'         '||v_dob);
  end loop;
  close students_cur;   --关闭游标
 end;
 

5根据游标修改当前行数据,语法 update tablename set ....where current of cursor_name;
select * from teachers;
declare
		v_title teachers.title%TYPE;
		CURSOR  teachers_cur
		is 
			select title from teachers for update;
	begin
			open teachers_cur;
			loop
				 fetch teachers_cur into v_title ;
				 exit when teachers_cur%NOTFOUND;
				 case
				 		when v_title='教授' then
				 			update teachers set wage=1.1*wage where current of teachers_cur;
				 		when v_title='高工' or v_title='副教授' then
				 		  update teachers set wage=1.1*wage where current of teachers_cur;
				 		else
				 		  update teachers set wage=wage+100 where current of teachers_cur;
				 	end case;
			end loop;
			close teachers_cur;
			commit;
			
	end;

6根据游标删除当前数据 delete from table where current of cursor_name;
 
select * from students;
declare
		v_specialty students.specialty%TYPE;
		v_sname students.name%TYPE;
		CURSOR  students_cur
		is 
			select name,specialty from students for update;
	begin
			open students_cur;
			 fetch students_cur into v_sname,  v_specialty ;
			
			while students_cur%FOUND loop
				if v_specialty ='计算机' THEN
					delete from students  where current of students_cur;
				end if;
				
				fetch students_cur into v_sname ,v_specialty;
				
			end loop;
			close students_cur;
	end;
 
分享到:
评论

相关推荐

    Oralce PLSQL存储过程之游标实践!

    ### Oracle PL/SQL 存储过程之游标实践详解 #### 一、引言 在Oracle数据库中,PL/SQL(Procedural Language for SQL)是一种强大的编程语言,它允许开发者编写复杂的数据库逻辑。其中,**游标**是PL/SQL中处理查询...

    PLSQL编程(游标).docx

    在PL/SQL编程中,游标(Cursor)是一种非常重要的数据处理工具,它允许程序员逐行处理查询结果集。游标对于那些需要遍历数据库记录并进行操作的情况尤其有用。以下将详细介绍PL/SQL中游标的使用方法: 1. **声明...

    plsql基础(游标)

    1. **显式游标**:需要手动打开、读取和关闭。 2. **隐式游标**:在使用`SELECT ... INTO`语句时自动创建和管理。 #### 三、游标的声明与使用 ##### 3.1 声明游标 声明游标的基本语法如下: ```plsql DECLARE ...

    PLSQL游标编程培训内含实例

    建议按照PPT的讲解逐步学习,动手实践每个例子,以便更好地掌握PLSQL游标编程技巧。同时,解决实际问题时应考虑性能因素,因为频繁使用游标可能会对数据库性能产生影响,所以要谨慎选择何时使用游标。

    北风网项目培训PLSQL编程之BBS实战项目第二讲

    本讲“北风网项目培训PLSQL编程之BBS实战项目第二讲”旨在深入浅出地介绍如何利用PL/SQL进行企业级的数据库编程,特别针对BBS(Bulletin Board System,电子公告板)系统进行实战演练。 在BBS实战项目中,PL/SQL的...

    精通Oracle 10g PLSQL编程

    Oracle 10g PLSQL编程是数据库管理员和开发人员必须掌握的关键技能之一。PL/SQL,全称为Procedural Language/Structured Query Language,是Oracle数据库系统中的过程化语言,它结合了SQL的查询功能和传统编程语言的...

    Oracle PLSQL语言初级教程之游标

    Oracle PL/SQL是一种强大的数据库编程语言,它扩展了SQL的功能,允许开发者编写具有复杂逻辑的存储过程和函数。在PL/SQL中,游标是一种重要的工具,用于处理单行或多行查询结果。本教程主要关注Oracle PL/SQL中的...

    精通Oracle10g PLSQL编程.rar

    Oracle 10g PLSQL编程是数据库管理员和开发人员必须掌握的关键技能之一。PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库提供的一个编程语言,它结合了SQL的强大查询能力与过程编程的灵活性...

    PLSQL 操作学习文档

    在“精通Oracle.10g.Pl.SQL编程.pdf”这份文档中,可能会深入讲解Oracle 10g版本下的PLSQL编程,包括更多的高级特性、最佳实践和实际案例。通过系统学习这些内容,你将能够熟练地使用PLSQL Developer进行数据库开发...

    7.10(plsql编程_序列_索引_游标_存储过程).sql

    plsql编程、普通变量、引用变量、记录型变量、loop循环、if判断、序列、索引、游标、存储过程,这些知识在这个sql文件里都有体现

    北风网项目培训PLSQL编程之BBS实战项目第一讲

    在"北风网项目培训PLSQL编程之BBS实战项目第一讲"中,你将深入理解以下PL/SQL的基础概念和语法: 1. **变量与常量**:了解如何声明并初始化PL/SQL中的变量和常量,以及它们在程序执行过程中的作用。 2. **流程控制...

    ORACLE_PLSQL编程.pdf

    ### ORACLE_PLSQL编程知识点概览 #### 一、PL/SQL的概念与重要性 **1.1 SQL与PL/SQL的区别与联系** - **SQL(Structured Query Language)**: 是一种标准化的语言,主要用于管理和操作关系型数据库系统。SQL主要...

    Oracle+Database+11g+PLSQL编程实战(书+源码)

    总之,"Oracle Database 11g PLSQL编程实战"是一本全面介绍Oracle 11g数据库与PL/SQL编程的实用教程,无论你是初学者还是有一定经验的数据库管理员,都能从中获益匪浅,提升自己的数据库开发技能。

    北风网项目培训PLSQL编程之BBS实战项目第五讲

    在本课程“北风网项目培训PLSQL编程之BBS实战项目第五讲”中,我们将深入探讨Oracle数据库系统中的核心编程语言——PL/SQL。PL/SQL是Oracle为数据库管理员和开发人员设计的一种过程化语言,它将SQL语句集成在编程...

    plsql语法编程实例

    通过"Oracle 10g SQL操作和PLSQL编程指南光盘"中的实例,你可以深入理解这些概念,并通过实践提升技能。例如,你可能会遇到如何使用PL/SQL编写一个计算平均值的函数,如何处理数据库事务,或者如何利用游标实现复杂...

    Oracle PLSQL编程精简版

    Oracle PLSQL编程是一种用于在Oracle数据库环境中开发存储过程、函数、触发器和其他数据库对象的编程语言。它结合了SQL的查询能力与PL/SQL的结构化编程特性,为数据库管理员和开发者提供了强大的工具来实现复杂的...

    基于oracle数据库的PLSQL编程以及存储过程的创建和使用资料.zip

    本资料主要关注PLSQL编程以及在Oracle中创建和使用存储过程。 PL/SQL是Oracle特有的编程语言,它扩展了SQL的功能,允许开发者编写复杂的业务逻辑和控制流程。在PL/SQL中,你可以声明变量、定义过程和函数、处理异常...

    PLsql编程指导书

    #### 一、Oracle PL/SQL编程基础 ##### 1.1 PL/SQL简介 PL/SQL(Procedural Language for SQL)是Oracle公司为关系数据库设计的一种标准的数据访问语言。它将过程化的编程结构与SQL语句无缝集成在一起,使得开发者...

    plsql编程个人认为比较好的基础事例

    PL/SQL(Procedural Language for SQL)是Oracle数据库的一种内置过程语言,它结合了SQL的数据操作能力与传统程序设计语言的过程控制功能,是一种非常强大的数据库端编程工具。通过使用PL/SQL,开发者可以在数据库内部...

    PLSQL编程开发用户指南

    本“PLSQL编程开发用户指南”旨在为开发者提供全面、实用的PL/SQL学习资料,帮助读者深入理解和掌握这一强大的数据库编程工具。 PLSQL由三个主要组成部分构成:声明部分、执行部分和异常处理部分。声明部分用于定义...

Global site tag (gtag.js) - Google Analytics