Oracle02_游标、集合、和OOP的概念(高级应用)

合集下载

oracle中游标的用法

oracle中游标的用法

什么是游标cursor?类似于编程语言里的指针,指向你要读取的记录类型:隐式游标系统定义好的,立刻可以使用:SQL显式游标用户自己定义的游标创建===》打开===》访问===》关闭游标的属性:%found :用来表明游标里是否还有记录%notfound :用来表明游标里是否没有记录%rowcount : 表示游标已经访问到的记录数%isopen :用来判断游标是否打开隐式游标:SQL> declare2 v_number number;3 begin4 select count(*) into v_number from emp;5 dbms_output.put_line(sql%rowcount);6* end;SQL> /1显示游标样例:SQL> l1 declare2 cursor emp_cursor is3 select ename from emp; //游标定义4 v_name emp.ename%type;5 begin6 open emp_cursor; //打开游标7 fetch emp_cursor into v_name; //访问游标8 while emp_cursor%found loop9 dbms_output.put_line(v_name);10 fetch emp_cursor into v_name;11 end loop;12 close emp_cursor; //关闭游标13* end;//利用%rowcount游标属性,进行循环输出控制SQL> l1 declare2 cursor emp_cursor is3 select ename from emp;4 v_name emp.ename%type;5 begin6 open emp_cursor;7 fetch emp_cursor into v_name;8 while emp_cursor%found loop9 dbms_output.put_line(v_name);10 exit when emp_cursor%rowcount >= 5;11 fetch emp_cursor into v_name;12 end loop;13 close emp_cursor;14* end;SQL> /定义有参数的游标://实现带有参数的游标,具体功能输出empno大于输入变量emp_no的员工名单列表SQL> l1 declare2 cursor emp_empno(v_empno in number) is3 select ename from emp where empno > v_empno;4 v_ename emp.ename%type;5 begin6 open emp_empno(&emp_no);7 fetch emp_empno into v_ename;8 while emp_empno%found loop9 dbms_output.put_line(v_ename);10 fetch emp_empno into v_ename;11 end loop;12 close emp_empno;13* end;SQL> ///实现多列输出:SQL> declare2 cursor emp_nasal is3 select ename,sal from emp;4 v_ename emp.ename%type;5 v_sal emp.sal%type;6 begin7 open emp_nasal;8 fetch emp_nasal into v_ename,v_sal;9 while emp_nasal%found loop10 dbms_output.put_line(v_ename || ': his salary is ' || to_char(v_sal,'L99,999.99'));11 fetch emp_nasal into v_ename,v_sal;12 end loop;13 close emp_nasal;14 end;15 /使用record来实现多列输出:TYPE type_name is record ( field_declaration, [field_ceclaration]);field_declaration: field_name (field_type | vairable%type)SQL> declare2 cursor emp_nasal is3 select ename,sal from emp;45 type emp_ns is record6 ( v_ename emp.ename%type,7 v_sal emp.sal%type); //定义record89 emp_ns_1 emp_ns; //定义record类型的变量emp_ns_110 begin11 open emp_nasal;12 fetch emp_nasal into emp_ns_1;13 while emp_nasal%found loop14 dbms_output.put_line(emp_ns_1.v_ename || ' : ' || emp_ns_1.v_sal);//record的所属变量引用15 fetch emp_nasal into emp_ns_1;16 end loop;17 close emp_nasal;18 end;19 /动态游标:强类型的动态游标弱类型的动态游标强类型动态游标示例:SQL> l1 declare2 type emp_type is record(3 emp_id emp.empno%type,4 emp_name emp.ename%type); //定义一个record:emp_type5 type emp_cursor is ref cursor return emp_type; //定义一个游标类型//红色区域表示固定关键字,emp_cursor是类型名,emp_type返回值类型;6 v_empno emp.empno%type := &out_empno;7 employee emp_type;8 employee_cursor emp_cursor; //定义一个游标类型的变量;9 begin10 if v_empno > 780011 then12 open employee_cursor for13 select empno,ename from emp where empno > v_empno;//定义具体的游标的记录集14 else15 open employee_cursor for16 select empno,ename from emp where empno < v_empno;17 end if;18 fetch employee_cursor into employee; //访问数据19 while employee_cursor%found loop20 dbms_output.put_line(employee.emp_id ||': ' ||employee.emp_name );21 fetch employee_cursor into employee;22 end loop;23 close employee_cursor; //关闭游标24* end;弱类型动态游标示例:SQL> l1 declare2 type emp_type is record (3 emp_id emp.empno%type,4 emp_name emp.ename%type);5 type emp_cursor is ref cursor;6 v_empno emp.empno%type := &out_empno;7 employee emp_type;8 employee_cursor emp_cursor;9 begin10 if v_empno > 780011 then12 open employee_cursor for13 select empno,ename from emp where empno > v_empno;14 else15 open employee_cursor for16 select empno,ename from emp where empno < v_empno;17 end if;18 fetch employee_cursor into employee;19 while employee_cursor%found loop20 dbms_output.put_line(employee.emp_id || ': ' || employee.emp_name);21 fetch employee_cursor into employee;22 end loop;close employee_cursor;23* end;//强类型和弱类型的区别就在于是否存在返回值类型;//如果有明确的返回值类型,那就是强类型动态游标//如果没有明确的返回值类型,那就是弱类型的动态游标;查看系统允许的最大游标数量:SQL> show parameter open_cursors;NAME TYPE V ALUE------------------------------------ ----------- ------------------------------open_cursors integer 300使用table:类似于其他编程语言中的数组结构;有两部分组成:主键: binary_integer 类型列:标量或者记录类型;语法格式:TYPE type_name IS TABLE OF[column_type | variable%type | table.column%type ][index by binary_integer];idetifier type_name;示例:SQL> l1 declare2 type emp_table_type is table of emp.ename%type index by binary_integer;3 emp_table emp_table_type;4 begin5 emp_table(1) := 'haha';6 if emp_table.exists(1) then7 insert into emp(empno,ename) values(1234,emp_table(1));8 end if;9 commit;10* end;SQL> /cursor for:SQL> begin2 for rows in (select ename,sal from emp) loop3 dbms_output.put_line(rows.ename)4 ;5 end loop;6 end;7 /。

oracle 游标的使用方法

oracle 游标的使用方法

oracle 游标的使用方法The use of Oracle cursors is an essential aspect of working with the Oracle database. 游标是一种在Oracle数据库中非常重要的使用方法。

A cursor allows the user to traverse through a result set and process each individual row. 游标允许用户遍历结果集并处理每个单独的行。

This is particularly useful when working with large datasets and needing to perform operations on each row or when only a single row needs to be processed at a time. 当处理大型数据集并且需要对每一行执行操作时,这是非常有用的。

In Oracle, there are two types of cursors: implicit and explicit. 在Oracle中,有两种类型的游标:隐式和显式。

Implicit cursors are automatically created by Oracle when a SELECT, INSERT, UPDATE, or DELETE statement is executed. 隐式游标在执行SELECT、INSERT、UPDATE或DELETE语句时,Oracle会自动创建。

This type of cursor is often used for simple queries where the user does not need to define and manage the cursor explicitly. 这种类型的游标通常用于简单的查询,用户不需要显式定义和管理游标。

Oracle游标

Oracle游标

【转】Oracle游标一. 游标PL/SQL 是用游标来管理 SQL 的 SELECT 语句的 . 游标是为了处理这些语句而分配的一大块内存 . 它提供了对一个结果集进行逐行处理的能力 , 可看作是一种特殊的指针 . 它与某个查询结果集相关联 , 可以指向结果集的任意位置 , 以便对指定位置的数据进行处理 . 使用它可以在查询数据的同时对数据进行处理.二. 游标的属性1.%FOUND: 判断当前游标是否正确的指向第一行记录,如果是则返回true,不是则返回false。

2.%NOTFOUND:与%FOUND相反3.%ISOPEN: 判断游标是否打开,如果是的话,就返回true,不是则返回false.4.%ROWCOUNT:判断当前游标在所指向的结果集中的提取的行数,不是所有的记录数.SQL%FOUND和SQL%NOTFOUND在执行任何DML语句前SQL%FOUND和SQL%NOTFOUND的值都是NULL,在执行DML语句后,SQL%FOUND的属性值将是:. TRUE :INSERT. TRUE :DELETE和UPDATE,至少有一行被DELETE或UPDATE.. TRUE :SELECT INTO至少返回一行当SQL%FOUND为TRUE时,SQL%NOTFOUND为FALSE。

另外,有两个变量属性1.%TYPE: 声明变量的类型与表中的某列的数据类型完全一致.它的好处有:一.是你不必知道某列的确切数据类型.二:当某列的数据类型改变时不用修改变量的数据类型.不但列名可以使用%TYPE,而且变量、游标、记录,或声明的常量都可以使用%TYPE.2.%ROWTYPE:声明变量的数据类型与表中的行记录数据类型一致. 对于自定义的记录, 则必须声明自己的域.三.游标的类型1.静态游标静态游标只是数据的一个快照,用户对记录所做的修改,增加或删除记录都不会反映到记录集中。

静态游标从不检测其他的更新、删除和插入情况。

oracle 游标用法

oracle 游标用法

oracle 游标用法Oracle游标是一种用于在PL/SQL中处理查询结果的机制。

游标可以让程序员逐行处理查询结果,而不是一次性将所有结果读入内存。

本文将详细介绍Oracle游标的用法。

一、游标概述1.1 游标的定义游标是一个指向查询结果集的指针,程序员可以使用它来逐行处理查询结果。

1.2 游标的类型Oracle支持显式和隐式两种类型的游标。

显式游标需要明确地声明和打开,而隐式游标则由Oracle自动管理。

1.3 游标的优点使用游标可以减少内存占用,提高程序性能。

同时,它也提供了更灵活的数据处理方式。

二、显式游标2.1 游标声明在PL/SQL中声明一个显式游标需要使用CURSOR关键字。

下面是一个例子:DECLARECURSOR c_emp IS SELECT * FROM emp;BEGIN-- do something hereEND;这个例子声明了一个名为c_emp的游标,它指向emp表中所有记录。

2.2 游标打开在使用之前,需要先打开一个已声明的游标。

可以使用OPEN语句来打开一个显式游标:DECLARECURSOR c_emp IS SELECT * FROM emp;BEGINOPEN c_emp;END;2.3 游标读取数据打开之后,我们可以使用FETCH语句来逐行读取游标指向的结果集。

FETCH语句可以用于一个或多个变量,它会将查询结果赋值给这些变量。

下面是一个例子:DECLARECURSOR c_emp IS SELECT * FROM emp;v_empno emp.empno%TYPE;v_ename emp.ename%TYPE;BEGINOPEN c_emp;FETCH c_emp INTO v_empno, v_ename;END;这个例子从c_emp游标中读取了一行数据,并将empno和ename 分别赋值给了v_empno和v_ename。

2.4 游标关闭在使用完毕后,需要关闭已打开的游标。

oracle__游标的高级应用全解

oracle__游标的高级应用全解
else
dbms_output.put_line('结果集已经处理完了');
exit;--及时退出
end if;
end loop;
end;
总结:有参数、无返回值的游标的说明
A:一般步骤(声明游标、打开游标、读取数据、关闭游标);
v_ename emp.ename%type,
v_sal emp.sal%type);
emp_record emp_record_type;
cursor ename_sal_cursor(c_deptno number,c_job varchar2)--声明带参数、有返回值的游标、并与SELECT语句相结合
from emp
where deptno=c_deptno
and job=c_job;
v_emp_record dj_cursor%rowtype;--基于游标的记录变量,可以接收多行数据
begin
open dj_cursor(20,'ANALYST');
loop
fetch dj_cursor into v_emp_record;
fetch cursor_name into name,job,sal;
end loop;
close cursor_name;--关闭游标
end;
--D:关闭游标
begin
…………………………
close cursor_name;
end;
------------2)显式游标属性
select ename,hiredate
from emp
where deptno=c_deptno and job=c_job;--条件用于接收参数变量

oracle游标的用法

oracle游标的用法

oracle游标的用法Oracle游标的用法本文将针对Oracle数据库中游标的用法进行详细讲解。

以下是一些常用的游标用法:1.隐式游标隐式游标是Oracle数据库默认为每个SQL语句自动创建的游标。

使用隐式游标时,我们可以通过%ROWCOUNT系统变量获取受影响的行数,通过%FOUND、%NOTFOUND和%ISOPEN系统变量判断该游标的状态。

示例代码:DECLAREl_count NUMBER;BEGINUPDATE employees SET salary = salary * ;l_count := SQL%ROWCOUNT;IF SQL%FOUND THENDBMS__LINE('成功更新了 ' || l_count || ' 条记录。

');END IF;END;2.显式游标显式游标是由程序员显式创建和控制的游标。

与隐式游标相比,显式游标提供了更大的灵活性,可以更好地处理大量的数据。

示例代码:DECLARECURSOR cursor_name IS SELECT * FROM employees;l_employee employees%ROWTYPE;BEGINOPEN cursor_name;LOOPFETCH cursor_name INTO l_employee;EXIT WHEN cursor_name%NOTFOUND;-- 对l_employee进行处理END LOOP;CLOSE cursor_name;END;在上述示例代码中,我们使用显式游标cursor_name查询了employees表的所有记录。

然后,通过循环获取每一条记录并对其进行处理,直到游标的%NOTFOUND属性为真时退出循环。

3.游标参数化游标参数化允许我们在游标声明中传递参数,以动态地定义游标查询的条件。

通过参数化游标,我们可以根据不同的条件查询不同的数据集。

示例代码:DECLARECURSOR cursor_name (param1 VARCHAR2, param2 NUMB ER) ISSELECT * FROM employees WHERE department_id = param1 AND salary > param2;l_employee employees%ROWTYPE;BEGINOPEN cursor_name('IT', 5000);LOOPFETCH cursor_name INTO l_employee;EXIT WHEN cursor_name%NOTFOUND;-- 对l_employee进行处理END LOOP;CLOSE cursor_name;END;在上述示例代码中,我们使用参数化游标cursor_name查询了部门ID为’IT’且薪水大于5000的员工信息。

Oracle游标详解

Oracle游标详解

Oracle游标详解1、游标的概念游标(CURSOR):游标是把从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有⼀个数据指针,在初始状态下指向的是⾸记录,利⽤fetch语句可以移动该指针,从⽽对游标中的数据进⾏各种操作。

2、游标的作⽤游标是⽤来处理使⽤SELECT语句从数据库中检索到的多⾏记录的⼯具。

借助于游标的功能,数据库应⽤程序可以对⼀组记录逐条进⾏处理,每次处理⼀⾏。

3、游标的类型显式游标(Explicit Cursor):显式游标需要定义声明,在使⽤前要打开和获取,使⽤完毕后要关闭。

多⽤于返回多⾏的SELECT语句隐式游标(Implicit Cursor):在执⾏⼀个SQL语句时,服务器将⾃动创建⼀个隐式游标,该游标是内存中的⼯作区,存储了执⾏SQL 语句的结果,可通过游标的属性获得SQL的执⾏结果及状态信息。

多⽤于只返回⼀⾏的SQL语句4、隐式游标(ORACLE在创建隐式游标时,默认的游标名为SQL)1)游标的主要属性(显⽰游标、隐式游标)%FOUND 布尔型属性,当SQL语句⾄少影响⼀⾏时为TRUE,否则为FALSE%NOTFOUND 布尔型属性,当SQL语句没有影响的⾏时为TRUE,否则为FALSE%ISOPEN 布尔型属性,当游标已打开时返回TRUE,否则为FALSE(对⽤户⽽⾔,隐式游标永远是false)%ROWCOUNT 数字型属性,返回受到SQL影响的⾏数注意:属性名与游标名之间没有空格。

游标的属性只能在PL/SQL块中使⽤,⽽不能在SQL语句中使⽤例1 将PRODUCTS表中类型为1的所有产品的单价打9折,并显⽰该更新所影响的⾏数.BEGINUPDATE productsSET unitprice=unitprice*0.9WHERE categoryid=1;IF SQL%FOUND THENdbms_output.put_line(‘更新了’||SQL%ROWCOUNT||’条记录’);ELSEdbms_output.put_line(‘没有更新记录’);END IF;END;5、显式游标1)定义游标在使⽤显⽰游标之前,必须先在声明部分定义游标,其定义语法如下:CURSOR cursor_name[(parameter,…)]IS select_statement;说明:参数parameter形式如下:para_name [IN] data_type [:=|DEFAULT value](2)打开游标当打开游标时,ORACLE会执⾏游标所对应的SELECT语句,并将结果存放到结果集,其定义语法如下:OPEN cursor_name[(parameter,…)];(3)提取数据语法如下:FETCH cursor_name INTO variable[,…];说明:对游标第⼀次执⾏FETCH语句时,它将⼯作区中的第⼀条记录赋给赋给变量,并使⼯作区内的指针指向下⼀条记录。

oracle游标详解

oracle游标详解

游标(CURSOR)是ORACLE系统在内存中开辟的一个工作区,在其中存放SELECT语句返回的查询结果.这个查询结果既可以是零记录,单条记录,也可以是多条记录.在游标所定义的工作区中,存在着一个指针(POINTER),在初始状态它指向查询结果的首记录.SQL是用于访问ORACLE数据库的语言,PL/SQL扩展和加强了SQL的功能,它同时引入了更强的程序逻辑。

PL/SQL支持DML命令和SQL的事务控制语句。

DDL在PL/SQL中不被支持,这就意味作在PL/SQL程序块中不能创建表或其他任何对象。

较好的PL/SQL程序设计是在PL/SQL块中使用象DBMS_SQL这样的内建包或执行EXECUTE IMMEDIATE命令建立动态SQL来执行DDL命令,PL/SQL编译器保证对象引用以及用户的权限。

下面我们将讨论各种用于访问ORACLE数据库的DDL和TCL语句。

查询SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,要与INTO 子句一起使用,查询的返回值被赋予INTO子句中的变量,变量的声明是在DELCARE中。

SELECT INTO语法如下:SELECT [DISTICT|ALL]{*|column[,column,...]}INTO (variable[,variable,...] |record)FROM {table|(sub-query)}[alias]WHERE............PL/SQL中SELECT语句只返回一行数据。

如果超过一行数据,那么就要使用显式游标(对游标的讨论我们将在后面进行),INTO子句中要有与SELECT子句中相同列数量的变量。

INTO子句中也可以是记录变量。

%TYPE属性在PL/SQL中可以将变量和常量声明为内建或用户定义的数据类型,以引用一个列名,同时继承他的数据类型和大小。

这种动态赋值方法是非常有用的,比如变量引用的列的数据类型和大小改变了,如果使用了%TYPE,那么用户就不必修改代码,否则就必须修改代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.0
OOP的概念
24
使用对象数据类型的优点: 更容易与Java、C++编写的对象应用程序 交互。 获取便捷。一次对象类型请求就可以从多 个关系表中获取信息,通过一次网络往复 即可返回。 可以把对象数据类型理解为在OOP语言中的 类。创建一个对象数据类型相当于创建一个 类,以后我们可以实例化,继承等等
3.0
嵌套表
嵌套表和联合数组类似,唯一不同是没有 INDEX BY binary_integer子句 嵌套表使用前需要初始化
DECLARE TYPE stutab IS TABLE OF varchar2(20); stu stutab := stutab('张三', '李四', '王五'); BEGIN for i in 1..3 loop dbms_output.put_line(stu(i)); end loop; END;
16
3.0
集合
集合类似于其他第3代语言中使用的数组 PL/SQL语言提供了3种不同的集合类型 联合数组(也称为索引表) 嵌套表 可变数组
17
3.0
联合数组
18
联合是具有Oracle的数据类型或用户自定义 类型的一维体 声明联合数组的语法格式
TYPE table_type IS TABLE OF type INDEX BY binary_integer ;
13
3.0
游标变量
声明一个引用游标类型
--强类型游标(指定返回类型) TYPE dept_cur IS REF CURSOR RETURN dept%rowtype; --弱类型游标(没有返回类型) TYPE mycur IS REF CURSOR ;
14
3.0
游标变量
声明游标变量
DECLARE TYPE dept_cur IS REF CURSOR RETURN dept%rowtype; cur1 dept_cur ; /*声明游标变量*/
3.0
游标
PL/SQL用游标(cursor)来管理 select语句 用来获取,定位结果集中的数据的指示器. 游标分类 静态游标
显式游标(explicit cursor) 显式游标 隐式游标( 隐式游标(implicit cursor) )
4
游标变量ቤተ መጻሕፍቲ ባይዱ
3.0
显式游标
显式游标的使用步骤 声明游标 声明游标(declare) 打开游标 打开游标(open) 读取数据 关闭游标 关闭游标(close)
3.0
联合数组
联合数组示例
19
DECLARE TYPE emp_name IS TABLE OF varchar2(10); /*声明类型*/ INDEX BY binary_integer; names emp_name; /*声明变量*/ BEGIN names(1) := '张飞' ; names(2) := '关羽' ; END
20
3.0
可变数组
可变数组的语法格式如下:
TYPE type_name IS VARRAY | VARYING ARRAY (max_size) OF element_type [NOT NULL]
21
3.0
可变数组
可变数组也需要初始化。需要注意赋值的 数量必须保证不大于可变数组的最大上限
DECLARE TYPE montharr IS VARRAY(12) OF varchar2(10); months montharr := montharr('January','February','March'); BEGIN months.extend(2); /*给months可变数组增加两个元素*/ months(4) := 'April'; months(5) := 'June'; FOR i IN 1..5 LOOP dbms_output.put_line(months(i)); END LOOP; END;
3.0
显式游标
读取数据
FETCH cursor_name [INTO variable_name,…n];
8
示例
BEGIN OPEN emp_cur ; FETCH emp_cur INTO name, job, sal ; /*从结果集中提取一行数据*/ WHILE emp_cur%FOUND LOOP dbms_output.put_line ( name || ' ' || job || ' ' || sal ) ; FETCH emp_cur INTO name, job, sal ; /*在循环中每次提取一行数据*/ END LOOP; CLOSE emp_cur ; END;
3.0
隐式游标
在PL/SQL程序段中使用SELECT语句进行 操作,PL/SQL语言会隐含地处理游标定义 示例:
DECLARE name varchar2(10); BEGIN select ename into name from emp where empno=7934; dbms_output.put_line( name ); END;
3.0
总结
25
1. 显式游标用于处理返回一到多行结果集的select语 句,显式游标首先要声明,在使用前要打开,使 用完要关闭。 2. 隐式游标即简单地编码select语句。当select语句 预计只返回一行时使用隐式游标。 3. 使用游标变量需要先声明引用游标类型,再定义 该种类型的游标变量。它不与特定的查询绑定在 一起,而是可以动态地打开不同的查询。处理结 果集的方式与显式游标基本相同。 4. 集合包括:联合数组、嵌套表、可变数组,它们 都是以数组的方式操纵数据,可以使用集合在 PL/SQL中完成一些复杂的操作。 5. Oracle 数据库是一种对象关系型数据库,它在关 系型数据库的基础上加入了面向对象的概念 3.0
15
打开游标变量
OPEN cur1 FOR select * from dept where deptno=10;
3.0
游标变量
示例
DECLARE TYPE dept_cur IS REF CURSOR RETURN dept%rowtype; cur1 dept_cur ; dept1 dept%rowtype; BEGIN OPEN cur1 FOR select * from dept where deptno=10; FETCH cur1 INTO dept1; dbms_output.put_line(dept1.deptno||' '||dept1.dname||' '||dept1.loc); OPEN cur1 FOR select * from dept where dname='SALES'; FETCH cur1 INTO dept1; dbms_output.put_line(dept1.deptno||' '||dept1.dname||' '||dept1.loc); CLOSE cur1; END;
11
3.0
隐式游标
使用隐式游标要注意以下几点 每个隐式游标必须有一个INTO INTO接受的变量类型要与列表的一致 隐式游标一次仅能返回一行数据,使用 时必须检查异常。最常见的异常有 “no_data_found”和“too_many_rows”
12
3.0
游标变量
游标变量是动态的,它不与特定的查询绑 定在一起。可以为任何兼容的查询打开游 标变量,从而提高更好的灵活性。 创建游标变量有两个步骤: 定义 REF CURSOR 类型,即引用游标 类型 声明这种类型的游标变量
22
3.0
OOP的概念
23
自Oracle9i以来,Oracle不再是单纯的关系 数据库管理系统了,它在关系数据库模型的 基础上,添加了一系列面向对象的特性,其 主要目的是把用户类型直接映射到数据库的 类型,从而方便编程。 Oracle面向对象的最基本元素是它的对象类 型,也就是Type Oracle中与面向对象技术相关的数据类型主 要有:对象类型,可变数组,嵌套表,对象 表,对象视图等
第二章
游标、集合、和OOP的概念
3.0
2010-8-15 威迅教育开发部监制
目标
1. 理解游标、集合的概念和作用 2. 掌握在PL/SQL中游标的基本用法 3. 了解Oracle数据库中OOP的基本概念
2
3.0
3
1. 2. 3. 4.
找出最高工资的编号,更新他的工资为70%. 输出姓名,原来工资,现在工资. Rs.next() st()
5
3.0
显式游标
声明游标
CURSOR cursor_name IS select_statement
6
示例
DECLARE CURSOR emp_cur IS select ename,job,sal from emp;
3.0
显式游标
打开游标
OPEN cursor_name;
7
示例
...... BEGIN OPEN emp_cur ; dbms_output.put_line( emp_cur%ROWCOUNT ); END;
3.0
显式游标
关闭游标
CLOSE cursor_name ;
9
示例
BEGIN …… CLOSE emp_cur ; END;
3.0
显式游标
10
游标的属性 %FOUND 检测当前游标指向的行是否有 数据 %NOTFOUND 与%FOUND相反 %ROWCOUNT 从游标中已提取的总行数 %ISOPEN 检测游标是否已打开
相关文档
最新文档