`

PL/SQL 总结(3)

阅读更多

使用游标

1)显示游标:

CURSOR name_cursor IS select statement;

2)打开游标:

OPEN name_cursor;

3)提取游标

FETCH name_cursor INTO variable1,variable2.............

4)关闭游标

CLOSE name_cursor;

显示游标的属性:

%ISOPEN:显示游标是否打开

%FOUND:是否从结果集中取到数据

%NOTFOUND:是否未从结果集中取到数据

%ROWCOUNT:已经取到的数据,不是说集合中间有多少数据,请这里注意;

DECLARE
CURSOR a_cursor IS SELECT id,name from test1;
v_id test1.id%TYPE;
v_name test1.name%TYPE;
BEGIN
OPEN a_cursor;
FETCH a_cursor INTO v_id,v_name;
dbms_output.put_line(v_id);
dbms_output.put_line(v_name);
CLOSE a_cursor;
END;

使用游标更新或者删除数据:

如果想通过游标更新或者删除数据的话,那么在定义游标的时候必须指定 FOR UPDATE

如下:

CURSOR my_cursor IS SELECT * FROM test1 FOR UPDATE;

UPDATE table_name SET column=xx WHERE CURRENT OF name_cursor;

DELETE table_name WHERE CURRENT OF name_cursor;

必须指定WHERE CURRENT OF name_current;

使用例外:

EXCEPTION

WHEN  e_name1 or e_name2 THEN

statement1;

WHEN 2_name3 THEN

statement2;

ELSE

statement3;

WHEN OTHERS THEN

statement4;

其中自定义异常是这样的:


 DECLARE
 e_name EXCEPTION;
 BEGIN
 RAISE e_name;
 EXCEPTION
 WHEN e_name THEN
 dbms_output.put_line('异常抛出');
 END;

使用复合数据:

TYPE my_record_type IS RECORD

DECLARE
TYPE my_record_type IS RECORD(
id test1.id%TYPE,
name test1.name%TYPE
);
r1 my_record_type;
BEGIN
SELECT id,name INTO r1 FROM test1 WHERE id=1;      
dbms_output.put_line(r1.id || r1.name);
END;


 DECLARE
 TYPE my_record_type IS RECORD(
 id test1.id%TYPE,
 name test1.name%TYPE
 );
 r1 test1%ROWTYPE;
 BEGIN
 SELECT * INTO r1 FROM test1 WHERE id=1;  

 dbms_output.put_line(r1.id || r1.name);
 END;
 /

使用PL/SQl表:

DECLARE
TYPE my_table_type IS TABLE OF NUMBER(2,0)
INDEX BY BINARY_INTEGER;
name_table my_table_type;
BEGIN
select id BULK COLLECT INTO name_table from test1;
dbms_output.put_line(name_table(1));
End;

使用PL/SQL记录表:

 DECLARE
 TYPE my_table_type IS TABLE OF test1%ROWTYPE
 INDEX BY BINARY_INTEGER;
 name_table my_table_type;
 BEGIN
 select * BULK COLLECT INTO name_table from test1;
 dbms_output.put_line(name_table(1).name);
 End;

DECLARE
TYPE my_table_type IS TABLE OF test1%ROWTYPE
INDEX BY BINARY_INTEGER;
name_table my_table_type;
BEGIN
select * BULK COLLECT INTO name_table from test1;   --count可以得到这个表的长度
FOR i in 1..name_table.count LOOP
dbms_output.put_line(name_table(i).name);
END LOOP;
End;

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/turkeyzhou/archive/2008/05/14/2443676.aspx

分享到:
评论

相关推荐

    oracle 9i pl/sql程序设计笔记

    通过上述对Oracle 9i PL/SQL程序设计笔记的总结,我们可以看到PL/SQL作为一种强大的数据库编程语言,提供了丰富的功能来支持数据处理、事务控制及业务逻辑的实现。掌握PL/SQL的不同块类型及其使用方法对于开发高效、...

    PL/SQL VCS插件安装包+PL/SQL

    总结来说,"PL/SQL VCS插件安装包+PL/SQL"提供了一种高效的方式来管理Oracle数据库中的PL/SQL代码,通过整合VSS或其他VCS系统,实现了版本控制功能,促进了团队协作,增强了代码的可维护性。无论是在小型项目还是...

    Oracle PL/SQL程序设计(第5版)(上下册)

    - **最佳实践**:总结出一系列实用的建议和技巧,帮助读者更好地理解和掌握PL/SQL的应用场景。 ### 结论 《Oracle PL/SQL程序设计(第5版)》是一本全面介绍Oracle 11g中PL/SQL特性的书籍,适合数据库开发人员、管理...

    Oracle PL/SQL实例精解 数据库建立代码

    总结起来,"Oracle PL/SQL实例精解 数据库建立代码"涵盖了数据库设计、对象创建、索引优化以及数据插入等多个方面,是学习和提升Oracle数据库管理技能的宝贵资源。通过解析和执行这些示例,开发者可以更好地理解和...

    PL/SQL基础编程,实例自写

    3. **性能优势**:在服务器端执行的PL/SQL代码,减少了网络数据传输,提高了应用程序的整体性能。 4. **模块化**:PL/SQL支持模块化编程,包括存储过程、函数、包和触发器,这使得代码更加易于管理和维护。 5. **...

    PL/SQL Developer 7.0

    总结,PL/SQL Developer 7.0是Oracle数据库开发者的得力助手,通过其丰富的功能和用户友好的界面,可以大幅提升开发效率和代码质量。结合“PLSQL用户指南”,开发者可以系统学习并掌握PL/SQL编程,从而在数据库应用...

    pl/sql程序设计ppt

    总结,PL/SQL提供了丰富的编程工具,如过程、函数、触发器和包,使开发者能更灵活地管理和操作数据库。通过学习和掌握这些概念,你可以创建高效、可维护的数据库应用程序。这份"pl/sql程序设计ppt"可能包含了对这些...

    PL/SQL Developer 64 bit

    根据提供的文件信息,我们将重点解析与“PL/SQL Developer 64 bit”相关的知识点,包括其功能、用途以及在数据库开发中的应用。 ### PL/SQL Developer 64位概述 #### 1. 什么是PL/SQL Developer? PL/SQL ...

    PLSQL.zip_oracl_oracle pl/sql ppt_pl sql ppt tutorial_pl/sql_pls

    3. **控制结构**:PL/SQL支持多种控制流程结构,如IF-THEN-ELSE、CASE、WHILE、FOR循环等,使得程序可以根据条件执行不同的代码路径。 4. **子程序**:PL/SQL支持函数和过程的创建,它们可以封装一系列的操作并在...

    Oracle PL/SQL programming(5th Edition)

    ### Oracle PL/SQL Programming知识点概览 #### 一、书籍基本信息 - **书名**:Oracle PL/SQL Programming(第五版) - **作者**:Steven Feuerstein 和 Bill Pribyl - **出版日期**:2009年10月1日 - **出版社**:...

    PL/SQL学习总结

    本文主要总结了 PL/SQL 的一些基本语句和操作,特别关注在 ORACLE 报表开发和 FROM 开发中的应用。 1. 日期处理: 在 PL/SQL 中,日期通常需要进行格式转换和截取操作。例如,`trunc()` 函数用于截取日期至指定时间...

    sql、pl/sql总结 例题

    以上总结了SQL与PL/SQL中关于表的管理、字段的修改与约束设置,以及复杂查询的多个知识点。这些基本操作是数据库管理和数据分析的基石,掌握它们对于理解和使用SQL语言至关重要。通过实际例题的练习,初学者可以加深...

    pl/sql数据库学习笔记

    下面是PL/SQL数据库学习笔记的知识点总结。 一、基本原则 *瀑布模型:需求分析→设计(概要设计,详细设计:SQL语句,变量(初始值是多少,最终值如何得到))→编码→测试→上线 二、Select into语句 *用于创建...

    PL/SQL 练习

    从给定的文件信息中,我们可以提炼出一系列与Oracle PL/SQL相关的知识点,涉及变量声明、数据查询、条件语句、异常处理以及数据库更新等核心概念。以下是对这些知识点的详细解析: ### 1. 变量声明与赋值 在PL/SQL...

    oracle sql and pl/sql

    根据提供的文件信息,我们可以推断出本书主要关注的是Oracle SQL 和 PL/SQL 的掌握与应用。下面将基于这些信息来生成相关的知识点。 ### Oracle SQL 和 PL/SQL 知识点 #### 一、Oracle SQL 概述 1. **定义**:...

    PL/SQL Developer如何连接64位的Oracle图解

    总结,要在64位Windows系统上使用PL/SQL Developer连接64位Oracle数据库,关键在于下载并配置32位的Oracle客户端,以及正确设置PL/SQL Developer的连接参数。遵循上述步骤,你就能在64位环境中顺利地使用PL/SQL ...

    PL/SQLdeveloper32位和64位带汉化及注册码

    总结起来,PL/SQL Developer是一款强大的Oracle数据库开发工具,其32位和64位版本的提供,满足了不同用户的需求,汉化及注册码的包含使得使用更加便捷。通过它,用户可以高效地进行PL/SQL编程,提升数据库管理和开发...

    PL/SQL Developer 8.0.4.1514注册码

    PL/SQL Developer是一款专为Oracle数据库设计的强大开发工具,它支持PL/SQL语言的开发、调试与管理。该工具不仅能够帮助开发者高效地编写和维护PL/SQL代码,还提供了诸如代码格式化、重构、性能分析等多种高级功能。...

Global site tag (gtag.js) - Google Analytics