Oracle 函数返回游标的方法及应用
Oracle游标使用方法及语法大全

【训练1】 用游标提取emp表中7788雇员的名称和职务。
Sql代码:
1.SET SERVEROUTPUT ON
2.DECLARE
3.v_ename VARCHAR2(10);
4.v_job VARCHAR2(10);
5.CURSOR emp_cursor IS
6.SELECT ename,job FROM emp WHERE empno=7788;
当系统使用一个隐式游标时,可以通过隐式游标的属性来了解操作的状态和结果,进而控制程序的流程。隐式游标可以使用名字SQL来访问,但要注意,通过SQL游标名总是只能访问前一个DML操作或单行SELECT操作的游标属性。所以通常在刚刚执行完操作之后,立即使用SQL游标名来访问属性。游标的属性有四种,如下所示。
游标有两种类型:显式游标和隐式游标。在前述程序中用到的SELECT...INTO...查询语句,一次只能从数据库中提取一行数据,对于这种形式的查询和DML操作,系统都会使用一个隐式游标。但是如果要提取多行数据,就要由程序员定义一个显式游标,并通过与游标有关的语句进行处理。显式游标对应一个返回结果为多行多列的SELECT语句。
End loop;
Close c_emp;
End;
%ROWTYPE也可以用游标名来定义,这样的话就必须要首先声明游标:
For record_name IN(corsor_name[(parameter[,parameter]…)]
|(query_difinition) loop
Statements
End loop;
下面我们用for循环重写上面的例子:
在游标FOR循环中使用查询
在游标FOR循环中可以定义查询,由于没有显式声明所以游标没有名字,记录名通过游标查询来定义。
oracle中游标的用法

oracle中游标的用法游标是Oracle数据库中一种重要的数据类型,用于处理查询结果集中的数据。
使用游标可以方便地遍历查询结果,进行数据处理和操作。
下面是关于Oracle中游标的用法的参考内容。
一、游标的定义与声明在Oracle数据库中,游标可以在PL/SQL块中使用,用于与查询结果进行交互。
游标的使用分为显示游标和隐式游标两种方式:1. 显示游标:显示游标需要先定义游标类型,然后声明游标变量,并使用OPEN、FETCH和CLOSE等操作进行操作。
示例代码如下:```sql-- 定义游标类型TYPE cursor_type IS REF CURSOR;-- 声明游标变量cursor_var cursor_type;-- 打开游标OPEN cursor_var FOR SELECT * FROM table_name;-- 循环获取游标数据LOOPFETCH cursor_var INTO variable1, variable2...;EXIT WHEN cursor_var%NOTFOUND;-- 对游标数据进行处理END LOOP;-- 关闭游标CLOSE cursor_var;```2. 隐式游标:隐式游标由Oracle自动管理,不需要程序员定义和声明,系统会自动为每一个SELECT语句分配一个隐式游标。
隐式游标无法手动控制游标操作,只能通过向结果集添加条件来限制查询结果。
示例代码如下:```sql-- 查询结果会被自动赋值给隐式游标SELECT * FROM table_name;-- 循环处理查询结果LOOP-- 对查询结果进行处理-- 退出循环条件END LOOP;```二、游标的属性和操作1. 游标属性:(1) %FOUND:如果游标指向的结果集中有数据,则返回真;否则返回假。
(2) %NOTFOUND:如果游标指向的结果集中没有数据,则返回真;否则返回假。
(3) %ROWCOUNT:返回游标当前处理的行数。
Oracle函数返回游标的方法及应用

Oracle函数返回游标的方法及应用在Oracle中,游标是一种使用SELECT语句检索数据的数据库对象。
Oracle提供了一些内置函数来返回游标,这些函数可以用于各种应用和场景。
下面将介绍几个常用的Oracle函数返回游标的方法及其应用。
1.SYS_REFCURSORSYS_REFCURSOR是Oracle提供的一种特殊类型,可以用于返回游标。
它允许在PL/SQL程序中打开和操作游标,然后将其作为参数传递给其他过程或函数。
SYS_REFCURSOR的使用如下:```CREATE OR REPLACE FUNCTION get_employee_cursorRETURNSYS_REFCURSORISemp_cursor SYS_REFCURSOR;BEGINOPEN emp_cursor FOR SELECT * FROM employees;RETURN emp_cursor;END;```在上述例子中,`get_employee_cursor`函数返回一个SYS_REFCURSOR类型的游标,该游标打开并检索了employees表中的所有数据。
其他过程或函数可以调用这个函数来获取该游标,并使用FETCH语句获取数据。
2.CURSOR返回值在PL/SQL中,可以使用`CURSOR`来定义一个游标类型的变量,并将其作为函数的返回值。
这种方式主要用于在PL/SQL代码中处理游标。
下面是一个示例:```CREATE OR REPLACE FUNCTION get_employee_cursorRETURN employees%ROWTYPEISemp_cursor employees%ROWTYPE;BEGINSELECT * INTO emp_cursor FROM employees;RETURN emp_cursor;END;```在这个例子中,`get_employee_cursor`函数返回一个employees表中的行数据,使用`%ROWTYPE`声明了一个与employees表结构相匹配的记录类型变量emp_cursor。
Oracle数据库的游标和for循环使用

Oracle数据库的游标和for循环使⽤1. 游标的概念和作⽤游标是 sql 的⼀个内存⼯作区,由系统或⽤户以变量的形式定义游标的作⽤就是⽤于临时存储从数据库中提取的数据块(结果集)。
它有⼀个指针,从上往下移动(fetch),从⽽能够遍历每条记录。
⽤牺牲内存来提升 SQL 执⾏效率,适⽤于⼤数据处理。
(摘抄⾃https:///qq_34745941/java/article/details/81294166)。
2.游标结构图3.具体⽤法 游标有四⼤属性,分别是1. “SQL%ISOPEN” :布尔类型。
判断游标是否打开 2.“SQL%FOUND”:布尔类型。
判断上⼀条fetch语句是否有值,有则为true,否则为false; 3.“SQL%NOTFOUND”:布尔类型。
与2相反,常⽤作退出循环的条件。
4.“SQL%ROWCOUNT”:整型。
当前成功执⾏更改的数据⾏数。
3.1 静态游标 3.1.1 隐式游标 使⽤DML操作(增删改)或select……into……会⾃动创建隐式游标,名称是“sql”,该游标会⾃动声明,打开和关闭。
⽆需⼈为开启或关闭。
create or replace procedure ATest(O_Result Out VarChar2)isv_id staff.id%type;begininsert into staff(id,name) values(1,'张三');if sql%found thenO_Result:='添加成功';end if;update staff set name ='李四'where id =1;if sql%found thenO_Result:='更新成功';end if;delete from staff where id =1;if sql%found thenO_Result:='删除成功';end if;select id into v_id from staff;if sql%found thenO_Result:='查询成功';end if;if sql%isopen thenO_Result:='游标为开启状态,但不可能⾛到这⼀步'; --游标只有在执⾏上述增删改操作才会开启并⾃动关闭elseO_Result:='游标为关闭状态';end if;exceptionwhen Others thenbeginO_Result:='N_SQLCODE is '||SQLCODE||' and SQLERRM is '||SQLERRM;rollback;end;end; 3.1.2 显式游标 显⽰游标⼜分为不带参数和带参数两种 ⽆参:create or replace procedure ATest(O_Result Out VarChar2)isv_cur_info staff%rowtype;cursor v_cur is--声明游标为staff表的数据集select*from staff;beginopen v_cur; --打开游标fetch v_cur into v_cur_info; --赋值给游标O_Result:='ID:'||v_cur_info.id||',Name:'||v_cur_;--输出值close v_cur; --关闭游标exceptionwhen Others thenbeginO_Result:='N_SQLCODE is '||SQLCODE||' and SQLERRM is '||SQLERRM;rollback;end;end;输出结果: ID:1,Name:张三带参:create or replace procedure ATest(O_Result Out VarChar2)isv_cur_info staff%rowtype;cursor v_cur(v_id staff.id%type) is--声明游标为staff表的数据集select*from staff where id =v_id; --参数:v_idbeginopen v_cur(1); --打开游标fetch v_cur into v_cur_info; --赋值给游标O_Result:='ID:'||v_cur_info.id||',Name:'||v_cur_;close v_cur; --关闭游标exceptionwhen Others thenbeginO_Result:='N_SQLCODE is '||SQLCODE||' and SQLERRM is '||SQLERRM;rollback;end;end;输出结果: ID:1,Name:张三 3.2 动态游标 3.2.1 ⾃定义类型游标 ⾃定义游标类型声明写法:TYPE ref_type_name IS REF CURSOR[RETURN return_type];ref_type_name代表我们⾃定义类型的名称,cursor是系统默认的return_type代表数据库表中的⼀⾏,或⼀个记录类型,是⼀个返回类型;返回值不是必要的,⽆返回值则称为弱类型,更加灵活;有返回值称为强类型,减少错误;弱类型写法:create or replace procedure ATest(O_Result Out VarChar2)isv_cur_info staff%rowtype;type v_cur_type is ref cursor; --⾃定义游标类型v_cur v_cur_type;beginopen v_cur for--打开游标并声明select*from staff where id<5;loop --开始循环fetch v_cur into v_cur_info; -- 赋值exit when v_cur%notfound; --判断没有值就退出循环O_Result:= O_Result||chr(10)||'ID:'||v_cur_info.id||',Name:'||v_cur_;end loop;close v_cur;exceptionwhen Others thenbeginO_Result:='N_SQLCODE is '||SQLCODE||' and SQLERRM is '||SQLERRM;rollback;end;end;另⼀种写法:create or replace procedure ATest(O_Result Out VarChar2)isv_sql varchar(1000);v_param staff.id%type:=5;v_cur_info staff%rowtype;type v_cur_type is ref cursor; --⾃定义游标类型v_cur v_cur_type;beginv_sql:='select * from staff where id <:id';open v_cur for v_sql --打开游标并声明using v_param; --绑定参数⽅法loop --开始循环fetch v_cur into v_cur_info; -- 赋值exit when v_cur%notfound; --判断没有值就退出循环O_Result:= O_Result||chr(10)||'ID:'||v_cur_info.id||',Name:'||v_cur_;end loop;close v_cur;exceptionwhen Others thenbeginO_Result:='N_SQLCODE is '||SQLCODE||' and SQLERRM is '||SQLERRM;rollback;end;end;强类型写法:三个注意事项:1.强类型⽆法使⽤绑定参数⽅法 2.for后⾯必须是sql,不能是字符串,如上⾯的v_sql; 3.参数必须对应;create or replace procedure ATest(O_Result Out VarChar2)isv_cur_info staff%rowtype;type v_cur_type is ref cursor return staff%rowtype ; --⾃定义游标类型v_cur v_cur_type;beginopen v_cur for--打开游标并声明select*from staff where id <5;loop --开始循环fetch v_cur into v_cur_info; -- 赋值exit when v_cur%notfound; --判断没有值就退出循环O_Result:= O_Result||chr(10)||'ID:'||v_cur_info.id||',Name:'||v_cur_;end loop;close v_cur;exceptionwhen Others thenbeginO_Result:='N_SQLCODE is '||SQLCODE||' and SQLERRM is '||SQLERRM;rollback;end;end; 3.2.2 系统类型游标 简写⼿动声明⾃定义游标的过程type v_cur_type is ref cursor return staff%rowtype ; --⾃定义游标类型v_cur v_cur_type;等同于 v_cur sys_refcursor;4.效率问题没有实际测试过,根据其他博客总结是这样:⼀般来说批量处理的速度要最好,隐式游标的次之,单条处理的最差以下是⽰例:1、批量处理open游标;loopfetch游标bulk collect into集合变量(也就是table类型哦) limit 数值; -- ⼀般 500 左右exit when条件--(变量.count = 0,如果⽤ sql%notfound 不⾜ limit 的记录就不会被执⾏哦)close游标;2、隐式游标for x in (sql 语句) loop... 逻辑处理end loop;3、单条处理open游标;loopfetch游标into变量;exit when条件end loop;close游标;————————————————原⽂链接:https:///qq_34745941/java/article/details/81294166批量处理的关键字不是很了解,下次学习下在记录起来;隐式游标写法最简洁明了,类似于程序中的for循环写法;单条处理⼤概就是上⾯那些范例的写法。
oracle cursor正确用法

oracle cursor正确用法Oracle Cursor正确用法什么是Oracle Cursor在Oracle数据库中,Cursor(游标)是一种用于检索和操作结果集的数据库对象。
它可以被视为内存中的一个指针,用于指向查询结果集的当前行。
通过游标,我们可以对查询结果进行遍历和操作。
Cursor的声明和打开(OPEN)使用Cursor之前,需要先声明并打开它。
采用以下步骤:1.声明Cursor:CURSOR cursor_name IS query;–cursor_name是游标的名称,可以根据实际情况自行命名。
–query是查询的语句,可以是简单的SELECT语句,也可以包括一些复杂的逻辑。
2.打开Cursor:OPEN cursor_name;–cursor_name是要打开的游标名称。
Cursor的使用遍历结果集可以使用LOOP语句来遍历Cursor的结果集。
LOOPFETCH cursor_name INTO variable1, variable2, ...;EXIT WHEN cursor_name%NOTFOUND;-- 进行一些逻辑操作END LOOP;•FETCH语句用于获取当前行的数据,将其赋值给变量。
•EXIT WHEN cursor_name%NOTFOUND用于在结果集遍历完后跳出循环。
关闭Cursor在使用Cursor之后需要关闭它,释放资源。
CLOSE cursor_name;Cursor的参数传递Cursor还可以作为过程的参数进行传递。
通过传递Cursor,可以在不同的过程中复用相同的查询逻辑。
PROCEDURE procedure_name(cursor_name IN OUT SYS_REF CURSOR) IS...总结通过声明、打开、遍历和关闭Cursor,我们可以有效地操作Oracle数据库中的结果集。
同时,Cursor还可以作为过程的参数进行传递,在不同的过程中复用相同的查询逻辑。
Oracle显示游标的使用及游标for循环

Oracle显⽰游标的使⽤及游标for循环下⾯给⼤家介绍在什么情况下⽤隐式游标,什么情况下⽤显⽰游标:1.查询返回单⾏记录时→隐式游标;2.查询返回多⾏记录并逐⾏进⾏处理时→显式游标--显⽰游标属性declareCURSOR cur_emp IS SELECT * FROM emp;row_emp cur_emp%ROWTYPE;BEGINOPEN cur_emp;FETCH cur_emp INTO row_emp;WHILE cur_emp%FOUNDLOOPdbms_output.put_line(row_emp.empno||'----'||row_emp.ename);FETCH cur_emp INTO row_emp;END LOOP;close cur_emp;END;--使⽤显式游标修改数据(给所有的部门经理加薪1000)DECLARECURSOR emp_cur ISSELECT empno,ename,sal FROM emp WHERE job='MANAGER' FOR UPDATE;emp_row emp_cur%ROWTYPE;BEGINOPEN emp_cur;LOOPFETCH emp_cur INTO emp_row;IF emp_cur%NOTFOUND THENEXIT;ELSEUPDATE emp SET sal=sal+1000 WHERE CURRENT OF emp_cur;END IF;END LOOP;COMMIT;CLOSE emp_cur;END;·注意:1、如果游标打开之前或关闭之后,使⽤游标属性,Oracle会抛出⼀个INVALID_CURSOR错误(ORA-01001);2、如果在第⼀次fetch后结果集是空的,%found=false,%NotFound=true,%ROWCOUNT=0;3、如果使⽤了BULK COLLECT,那么%ROWCOUNT的值可能不是0或1,实际上他返回的是提取到相关集合的⾏数。
oracle 存储过程 游标的写法

在 Oracle 数据库中,游标(Cursor)是用于从结果集中逐行检索数据的数据库对象。
下面是一个使用游标的基本存储过程的示例:sqlCREATE OR REPLACE PROCEDURE fetch_employee_data AS-- 声明游标CURSOR employee_cursor ISSELECT employee_id, first_name, last_name, salaryFROM employees;-- 声明变量来存储从游标中检索的数据v_employee_id employees.employee_id%TYPE;v_first_name employees.first_name%TYPE;v_last_name st_name%TYPE;v_salary employees.salary%TYPE;BEGIN-- 打开游标OPEN employee_cursor;-- 循环遍历游标中的每一行数据LOOP-- 从游标中检索数据到变量中FETCH employee_cursor INTO v_employee_id, v_first_name, v_last_name, v_salary;-- 退出循环如果游标中没有更多的数据EXIT WHEN employee_cursor%NOTFOUND;-- 在此处处理每一行数据,例如打印或执行其他操作DBMS_OUTPUT.PUT_LINE('Employee ID: ' || v_employee_id || ', Name: ' || v_first_name || ' ' || v_last_name || ', Salary: ' || v_salary);END LOOP;-- 关闭游标CLOSE employee_cursor;EXCEPTIONWHEN OTHERS THEN-- 处理异常情况,例如打印错误消息DBMS_OUTPUT.PUT_LINE('An error occurred: ' || SQLERRM);END fetch_employee_data;/上面的存储过程名为 fetch_employee_data,它声明了一个名为 employee_cursor 的游标,用于从 employees 表中检索员工的 ID、姓名和薪水。
oracle回退语句

oracle回退语句摘要:1.简介2.Oracle回退语句的类型3.Oracle回退语句的使用方法4.Oracle回退语句的注意事项5.总结正文:1.简介Oracle回退语句是Oracle数据库管理系统中的一种重要命令,用于在执行某些操作后,撤销该操作并恢复到之前的状态。
它可以确保数据的一致性和完整性,防止误操作造成数据损失。
在实际应用中,回退语句的使用频率非常高,熟练掌握回退语句的使用对于Oracle数据库管理员和开发人员来说至关重要。
2.Oracle回退语句的类型Oracle回退语句主要有以下几种类型:- ROLLBACK:回滚当前事务,撤销已执行的操作。
- ROLLFORWARD:将当前事务向前推进,继续执行已提交的操作。
- SAVEPOINT:设置一个事务保存点,用于回滚到该点。
- RELEASE SAVEPOINT:释放一个事务保存点,不再回滚到该点。
- COMMIT:提交当前事务,将已执行的操作永久保存在数据库中。
3.Oracle回退语句的使用方法以下是一些Oracle回退语句的使用示例:- 回滚当前事务:```ROLLBACK;```- 将当前事务向前推进:```ROLLFORWARD;```- 设置事务保存点:```SAVEPOINT savepoint_name;```- 回滚到事务保存点:```ROLLBACK TO SAVEPOINT savepoint_name; ```- 释放事务保存点:```RELEASE SAVEPOINT savepoint_name;```- 提交当前事务:```COMMIT;```4.Oracle回退语句的注意事项- 在使用回退语句时,要确保事务已正确地启动和结束。
- 在执行ROLLBACK或ROLLFORWARD语句时,需要具有相应的权限。
- 在使用事务保存点时,不同的数据库版本可能有所不同,需参照相应文档进行操作。
5.总结Oracle回退语句是Oracle数据库管理系统中非常重要的一部分,掌握回退语句的使用对于保证数据的一致性和完整性具有重要意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle函数返回游标的方法及应用简析
王凤利康俊霞
河北北方学院张家口职业技术学院
【摘要】Oracle函数除了可以返回数值类型和字符类型等常用数据类型的数
据以外,还可以返回游标类型的数据,在某些情况下,返回游标类型的函数为我们
解决一些应用中的难题。
本文就是通过一个实例来介绍返回游标函数的创建过程。
【关键字】Oracle,函数,包,游标。
1 问题的提出
在油田信息系统建设过程中,遇到了这样一个问题:输油站泵运行数据表(DHC05)的结构为:时间(SJ)、单位名称(DWMC)、泵号(BH)、泵压(BY1)、电压(DY)、电流(DL)、排量(PL),主键为:时间、单位名称、泵号,每整点对运行泵取一次数据,不存储不运行泵(运行时间为0)的数据。
现要输出如下报表:
报表的查询条件为单位名称和日期(yyyymmdd格式字符串)。
运行泵号及泵台数根据各单位实际运行情况而定。
2 系统简介
系统采用B/S三层体系结构,数据库采用Oracle9.2版本,WEB服务器采用IIS6.0版本,客户端采用IE6.0及以上版本。
报表采用了统一的制表解释程序进行输出,该解释程序可以从一个单一的Oracle查询语句中提取数据,报表的输出样式为简单的二维表。
3 解决方案
根据目前的系统现状,要想直接利用当前系统输出本报表是不可能的,经过分析认为共有以下几种解决方案:
a)修改数据表结构
将原始数据表的结构进行调整,把时间、单位名称作为主键,将同一时刻的各个泵的数据逐个列出作为数据列,大致结构为:时间、单位名称、1号泵泵压、1号泵电压、1号泵电流、1号泵排量、2号泵泵压、2号泵电压、2号泵电流、2号泵排量、…。
本方案违背了数据库设计的基本原则,因各个单位的泵数不相等,只能按最大泵数进行数据库结构设计,当站库继续扩大、泵数继续增加时需要对数据库结构和所有用到该数据表
的程序及数据录入界面进行调整,所以本方案不可行。
b)建立中间表
原始数据表不变,增加中间表,中间表以时间、单位名称作为主键,将同一时刻的各个泵的数据逐个列出作为数据列,大致结构为:时间、单位名称、1号泵泵压、1号泵电压、1号泵电流、1号泵排量、2号泵泵压、2号泵电压、2号泵电流、2号泵排量、…。
通过存储过程将原始数据导入到中间表中,报表解释程序直接从中间表提取数据。
有一些人采用了本方案,通过建立中间表,制作了一定数量的报表,解决了一些实际问题,但对于本文中提到的问题,本方案有一定的缺陷:随着站库的扩大和泵台数的增加,需要不断调整中间表的结构;当本类需求比较多时,每个报表都要增加一个中间表,没有一个成批处理的解决办法,当这类需求比较少时可以采用本方案来快速完成任务,但当本类需求比较多时则不是一个好的解决办法。
c)单独编写报表输出程序
通过编写一个单独的WEB页面来输出本表。
本方案虽然可以较好地完成本表的输出任务,但不能用本方法来处理大量的同类需求,并且对报表的修改和调试都比较困难,报表制作完成以后不能形成可重复使用的成果,所以本方案也不是一个理想的处理方案。
d)重新编写报表解释程序
重新编写报表解释程序,用以实现多条查询语句结果数据的提取及嵌套报表的输出。
本方案是一个比较彻底地解决报表输出问题的方法,当报表解释程序可以实现多条查询语句结果数据的提取及嵌套报表的输出时,所有的报表制作问题都可以使用该解释程序来处理。
但该程序的开发周期长,而且嵌套报表的实现难度大,在经费不增加的前题下不能采用本方案。
e)编写函数并修改报表解释程序
编写一个Oracle函数,将要展示的所有查询结果通过游标返回,将原来在报表解释程序中的查询语句用函数调用来替换,修改报表解释程序中表头处理代码,实现本类报表表头的展示功能,结合返回的结果集,完成报表输出功能。
本方案通过编写一个返回游标类型数据的函数并对报表解释程序进行简单的修改,能够快速圆满地完成本类报表的输出功能,在目前系统环境下算是一个比较好的解决方案。
4 具体实现
根据查询数据的特点,数据查询语句可以使用Left Join语句来实现,查询语名的写法大致为:
SELECT to_char(z.sj, ‘hh:mi’)
a.bh, a.by1, a.dy, a.dl, a.pl,
b.bh, b.by1, b.dy, b.dl, b.pl,
c.bh, c.by1, c.dy, c.dl, c.pl,
…
FROM (SELECT DISTINCT sj, dwdm
FROM dhc05
WHERE dwdm = 数据查询单位代码 and
to_char(sj, ‘yyyymmdd’) = 数据查询日期) z
LEFT JOIN dhc05 a ON a.sj = z.sj and a.dwdm = z.dwdm and a.bh = ‘1号泵’
LEFT JOIN dhc05 a ON b.sj = z.sj and b.dwdm = z.dwdm and b.bh = ‘2
号泵’
LEFT JOIN dhc05 a ON c.sj = z.sj and c.dwdm = z.dwdm and c.bh = ‘3号泵’
…
ORDER BY z.sj;
所以在函数中应首先查询可能的泵号数据,再根据泵号数据,及数据查询条件,拼写出整个查询语句。
为了能够实现各种同类应用的需求,将查询语句中的所有可变部份全部以参数的形式进行传递。
为了能够实现返回游标的函数,定义了一个包,将函数定义在包中。
5 结论
Oracle游标类型是一个比较特殊的数据类型,该数据类型不仅可以在程序中使用,同其它数据类型一样,游标也可以做为函数返回值的数据类型,通过对游标类型返回值的处理可以为我们解决一些复杂的问题。
本文通过一个实际问题的解决过程,介绍了Oracle函数返回游标类型数据的实现及应用方法,为同类问题的解决提供了一种比较有效的解决方法。
参考文献
[1] 《Oracle8 PL/SQL 程序计设》机械工业出版社Scott Urman著译友翻译组译
[2] 《PL/SQL User's Guide and Reference 10g Release 1》Oracle Database Documentation 10g
Release 1
Kang Junxia
Department of Computer,Zhangjiakou Technical College
【Abstract】 Oracle function may not only numerical value type and character type ,but also may return to the date of cursor type. In some
case ,the function of returning to cursor type may settle some
difficult subject .This text introduce the course.
【Key word】 Oracle, function, bundle, cursor。