`

oracle cursor 入门

 
阅读更多


前言:
 Oracle的对表操作中有一种类似于DataSet的对象操作方法CURSOR,它可以通过建立表的操作对象或者说表的指针对象来达到从表里面提取数据的操作。
说明:
 一般通过SQL语言可以针对某个表的某一行或多行数据进行操作比如说SELECT,UPDATE等。这些操作必须以SQL语句的语法格式来被解释器解释并执行。在实际变成中经常用到,特别是用编程语言来对数据库操作时更是必不可少。当然数据库也不是不能自己来做一些处理的,简单的数据操作的话,像ORACLE这样的数据库可以用自身的PL/SQL语言来实现。不仅执行速度快,而且节省网络。因为它是直接在数据库端执行的。
 CURSOR就是PL/SQL中的一种实现对表的对象化操作方法。
 他一共分为两种:
 显式型
 解释:顾名思义,就是在程序书写过程中利用创建表对象的过程中,明确的使用变量名。
 暗式型
 解释:不是用变量名,而用简单的语法来完成对象的操作。ORACLE里面已经定义好了,只需要调用就可以使用。

关于PL/SQL的书写格式,这里省略。
显式型的CURSOR在定义过程中必须写在定义区间
也就是说需要写在 IS  ..... BEGIN  或者  DECLARE .... BEGIN。
而执行的时候就要写在 BEGIN.....END了。

看不明白的话,就看例子了。

CREATE OR REPLACE PROCEDURE AAA
IS
 CURSOR BBB IS
  SELECT CCC FROM TABLE ;
 vBBB BBB%ROWTYPE;
BEGIN
 OPEN BBB;
 LOOP
  FETCH BBB INTO vBBB;
  EXIT WHEN BBB%NOTFOUND;
  DBMS_OUTPUT.PUT_LINE(vBBB);
 END LOOP;
 CLOSE BBB;
END;
/
 首相创建了一个PROCEDURE名字为AAA,然后在定义区间里面定义了一个CURSOR名字为BBB,
连接表TABLE并从中读取列CCC。之后定义了一个行类型的变量用于存储每一行的数据。
 到此,表的对象以及读取数据的条件还有数据存储用的变量就都定义好了。
 然后OPEN这个表对象,进入循环。每循环一次指针便会自动向后移动,将BBB里面的数据以行为单位读出存入vBBB。然后当BBB的指针到最后也就是说数据读到最后没有了的时候便退出循环并且关闭BBB。
DBMS_OUTPUT.PUT_LINE是用来在屏幕上打印vBBB用的。

 与之相同 OPEN  FETCH CLOSE 的语法格式看来挺麻烦的。这样的话就用FOR来代替也可以

BEGIN
 FOR vBBB IN BBB;
        LOOP
  DBMS_OUTPUT.PUT_LINE(vBBB);
 END LOOP;
END;
 这就省事多了。意思也一目了然。因为SURSOR定义了变来名字,用几次也OK。
 暗式型呢?

BEGIN
 FOR vBBB IN (SELECT CCC FROM TABLE)
        LOOP
  DBMS_OUTPUT.PUT_LINE(vBBB);
 END LOOP;
END;
 这届这样写就行了,但是每次都要从写。脱离了这个循环就没办法使用了。
 
 例:
 create or replace function GETString(device in varchar2) return varchar2 is
  wadmin varchar2(250);
begin
  declare
cursor userRows is select u.czymc from RMAINT_PERSON p,RMINFO u where p.id = u.czyh and DEVICEID = device;
temp varchar2(250);
begin
open userRows;
-- 循环开始
loop
  fetch userRows into temp;
  exit when userRows%notfound; -- 跳出条件
  wadmin := wadmin||','||temp;
end loop;
-- 循环结束
close userRows;
end;
  return(wadmin);
end GETString;

分享到:
评论

相关推荐

    oracle 游标入门

    ORACLE 游标的相关操作,轻轻松松学会ORACLE cursor

    Oracle从入门到精通

    Oracle 从入门到精通 第 2 页,共 106 页 5、给表加注释:COMMENT ................................... 6、约束条件:............................................. 2.5.视图 (VIEW) .........................

    Oracle 10g 学习笔记

    ├─01 Oracle入门 │ 01 Oracle 简介.txt │ 02 Oracle安装.txt │ 03 sqlplusw的使用.txt │ ├─02 简单SQL语句 │ simple_sql.sql │ ├─03 单行函数 │ single_function.sql │ ├─04 复杂查询 │ complex...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据...

    Toad 使用快速入门

    Toad 使用快速入门 目录 一.Toad功能综述 二.系统需求 三.安装指南 四.快速入门 1. Schema browser的用法简介 2. SQL Editor的使用介绍 3. Procedure Editor的用法介绍 4. 如何进行PLSQL的debug 5. 如何...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用...

    SQL21日自学通

    Developing Personal Oracle7 for Windows 95 Applications 525 Teach Yourself C++ Programming in 21 Days 525 Teach Yourself Tansact-SQL in 21 Days 525 Teach Yourself PL/SQL in 21 Days 525 杂志526 DBMS526...

    vc++ 开发实例源码包

    Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频播放。 C视频源代码 视频教程步骤源码 DDraw DirectX 实例 DES加密算法源代码 如题。 Detected memory leaks 检查内存泄漏源码 DigiStatic_src 自...

    PLSQLDeveloper下载

    本文主要介绍PL/SQL的编程基础,以使入门者对PL/SQL语言有一个总体认识和基本把握。 编辑本段主要特性  PL/SQL编辑器,功能强大——该编辑器具有语法加强、SQL和PL/SQL帮助、对象描述、代码助手、编译器提示、PL/...

    21天学习SQL V1.0

    21天学习SQL V1.0.pdf 66 SQL 21 日自学通(V1.0) 翻译人笨猪 ...日期/时间函数............................................................................................................ADD_MONTHS..................

    vc++ 应用源码包_1

    Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频播放。 C视频源代码 视频教程步骤源码 DDraw DirectX 实例 DES加密算法源代码 Detected memory leaks 检查内存泄漏源码 DigiStatic_src 自绘...

    vc++ 应用源码包_2

    Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频播放。 C视频源代码 视频教程步骤源码 DDraw DirectX 实例 DES加密算法源代码 Detected memory leaks 检查内存泄漏源码 DigiStatic_src 自绘...

    vc++ 应用源码包_6

    Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频播放。 C视频源代码 视频教程步骤源码 DDraw DirectX 实例 DES加密算法源代码 Detected memory leaks 检查内存泄漏源码 DigiStatic_src 自绘...

    vc++ 应用源码包_5

    Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频播放。 C视频源代码 视频教程步骤源码 DDraw DirectX 实例 DES加密算法源代码 Detected memory leaks 检查内存泄漏源码 DigiStatic_src 自绘...

    vc++ 应用源码包_3

    Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频播放。 C视频源代码 视频教程步骤源码 DDraw DirectX 实例 DES加密算法源代码 Detected memory leaks 检查内存泄漏源码 DigiStatic_src 自绘...

Global site tag (gtag.js) - Google Analytics