- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle游标使用方法及语法大全当查询返回结果超过一行时,就需要一个显式游标,此时用户不能使用select into语句。PL/SQL管理隐式游标,当查询开始时隐式游标打开,查询结束时隐式游标自动关闭。显式游标在PL/SQL块的声明部分声明,在执行部分或异常处理部分打开,取出数据,关闭。
使用游标语法:
例:
SET SERVERIUTPUT ON
DECLARE R_emp EMP%ROWTYPE;
CURSOR c_emp IS select * from emp;
BEGIN
OPEN c_emp;
Loop
FETCH c_emp into r_emp;
EXIT WHEN C_EMP%NOTFOUND;
Dbms_output.put_line(\’Salary of Employee\’||r_emp.ename||\’is’\)
End loop;
Close c_emp;
End;
%ROWTYPE也可以用游标名来定义,这样的话就必须要首先声明游标:
For record_name IN(corsor_name[(parameter[,parameter]…)]
|(query_difinition) loop
Statements
End loop;
下面我们用for循环重写上面的例子:
在游标FOR循环中使用查询
在游标FOR循环中可以定义查询,由于没有显式声明所以游标没有名字,记录名通过游标查询来定义。
可以看出与SQL中的子查询有没什么区别。
游标中的更新和删除
在PL/SQL中依然可以使用UPDATE和DELETE语句更新或删除数据行。显示游标只有在需要获得多行数据的情况下使用。PL/SQL提供了仅仅使用游标就可以执行删除或更新记录的方法。
UPDATE或DELETE语句中的WHERE CURRENT OF子串专门处理要执行UPDATE或DELETE操作的表中取出的最近的数据。要使用这个方法,在声明游标时必须使用FOR UPDATE子串,当对话使用FOR UPDATE子串打开一个游标时,所有返回集中的数据行都将处于行级(ROW-LEVEL)独占式锁定,其他对象只能查询这些数据行,不能进行UPDATE、DELETE或SELECT...FOR UPDATE操作。
在多表查询中,使用OF自居来锁定特定的表,如果忽略了OF子句,那么所有表中选择的数据行都将被锁定。如果这些数据行已经被其他会话锁定,那么正常情况下oracle将等待,直到数据行解锁。
在UPDATE和DELETE中使用WHERE CURRENT OF子串的语法如下:
:?? DELCARE
CURSOR c1 IS
SELECT empno,salary FROM emp
WHERE comm IS NULL
FOR UPDATE OF comm;
v_comm NUMBER(10,2);
BEGIN
FOR r1 IN c1 LOOP
IF r1.salary500 THEN
v_comm:=r1.salary*0.25;
ELSEIF r1.salary1000 THEN
v_comm:=r1.salary*0.20;
ELSEIF r1.salary3000 THEN
v_comm:=r1.salary*0.15;
ELSE v_comm:=r1.salary*0.12;
END IF;
UPDATE emp
SET comm=v_comm
WHERE CURRENT OF c1;
END LOOP;
END
=====================================================
oracle 隐式游标,显示游标,游标循环
动态SELECT语句和动态游标,异常处理,自定义异常
游标的概念: ??? 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。 游标有两种类型:显式游标和隐式游标。在前述程序中用到的SELECT...INTO...查询语句,一次只能从数据库中提取一行数据,对于这种形式的查询和DML操作,系统都会使用一个隐式游标。但是如果要提取多行数据,就要由程序员定义一个显式游标,并通过与游标有关的语句进行处理。显式游标对应一个返回结果为多行多列的SELECT语句。 游标一旦打开,数据就从数据库中传送到游标变量中,然后应用程序再从游标变量中分解出需要的数据,并进
您可能关注的文档
- 031第八讲_组态王与数据库连接.doc
- 32套全部答案整理英语B.doc
- 44(基于MSCOMM控件的Modem通信的实现).doc
- 51CTO下载-2004年下半年数据库系统工程师试卷(含答案).doc
- SQL SERVER 2008 R2升级R2 SP1或者SQL SERVER 2008从10.50.1600升级10.5.2500详细过程全程图解.doc
- SQL Server 2008 安装过程中遇到性能计数器解决方法.doc
- SQL Server 2008新建登录名的方法步骤.doc
- 光学4-3(基础物理课堂讲稿下第二十一讲).ppt
- 广东工业大学单片机第4章.汇编语言程序设计知识[new].ppt
- 数字化图书馆解决方案初学者.doc
最近下载
- 大连市跨境电商综合实验区建设的SWOT分析【论文范文】.doc VIP
- “一带一路”下我国物流企业与跨境电商协同发展研究论文.doc VIP
- bga返修台_zm-r5860说明书8800元.pdf VIP
- 药物外渗的预防及处理试题.docx
- 2025年辽宁中考英语试题【附答案】.doc
- 传统企业向跨境电商转型的模式及运营机理论文.doc VIP
- 老年保健卫生知识竞赛100题及答案.pdf VIP
- 西南18J515_室内装修 标准图集.pdf VIP
- Dell戴尔Dell Latitude 12 Rugged Extreme – 7214 用户手册.pdf
- 全球价值链与跨境电商研究.pptx VIP
文档评论(0)