Oracle/PLSQL WHERE CURRENT OF Statement

Oracle/PLSQL: WHERE CURRENT OF Statement

If you plan on updating or deleting records that have been referenced by a Select For Update statement, you can use the Where Current Of statement.

译:如果你想删除或者更新被Select For Update引用的记录,你可以使用Where Current Of语句。

The syntax for the Where Current Of statement is either:

UPDATE table_name
    SET set_clause
    WHERE CURRENT OF cursor_name;

OR

DELETE FROM table_name
WHERE CURRENT OF cursor_name;

The Where Current Of statement allows you to update or delete the record that was last fetched by the cursor.

译:Where Current Of语句允许你更新或者是删除最后由cursor取的记录。

Updating using the WHERE CURRENT OF Statement

Here is an example where we are updating records using the Where Current Of Statement:

译:下面一个使用Where Current Of更新记录的例子:

CREATE OR REPLACE Function FindCourse
   ( name_in IN varchar2 )
   RETURN number
IS
    cnumber number;

    CURSOR c1
    IS
       SELECT course_number, instructor
        from courses_tbl
        where course_name = name_in
        FOR UPDATE of instructor;

BEGIN

open c1;
fetch c1 into cnumber;

if c1%notfound then
     cnumber := 9999;

else
     UPDATE courses_tbl
        SET instructor = ‘SMITH‘
        WHERE CURRENT OF c1;

    COMMIT;

end if;

close c1;

RETURN cnumber;

END;

 

Deleting using the WHERE CURRENT OF Statement

Here is an example where we are deleting records using the Where Current Of Statement:

译:下面一个使用Where Current Of删除记录的例子:

CREATE OR REPLACE Function FindCourse
   ( name_in IN varchar2 )
   RETURN number
IS
    cnumber number;

    CURSOR c1
    IS
       SELECT course_number, instructor
        from courses_tbl
        where course_name = name_in
        FOR UPDATE of instructor;

BEGIN

open c1;
fetch c1 into cnumber;

if c1%notfound then
     cnumber := 9999;

else
     DELETE FROM courses_tbl
        WHERE CURRENT OF c1;

    COMMIT;

end if;

close c1;

RETURN cnumber;

END;

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/skiwdhwhssh/p/10342264.html

时间: 2024-08-28 05:13:06

Oracle/PLSQL WHERE CURRENT OF Statement的相关文章

Oracle&PLSQL 安装及乱码问题解决

1,先到Oracle网站下载Instant Client ,如果有老版本,就不用下载了 下载回是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的目录即可.例如:D:/instantclient_11_2 2. 2.在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容: MWDB=(DESCRIPTION = 

oracle Plsql 运行update或者delete时卡死问题解决的方法

oracle Plsql 运行update或者delete时 遇到过Plsql卡死问题或者导致代码运行sql的时候就卡死. 在开发中遇到此问题的时候,本来把sql复制出来,在plsql中运行,Sql本身拼写无误,可是出现plsql卡死的情况, 在代码中,运行sql的地方打断点debug,发现运行sql,仍然没有响应.经过网上查资料,推測导致这样的情况的原因是 可能在PLSQL Developer运行update时没有commit,oracle将该条记录锁住了. 能够通过下面办法解决: 先查询锁定

MyEclipse+Weblogic+Oracle+PLSQL配置注意事项

Weblogic配置详情:<Weblogic安装与配置图文详解>Oracle+PLSQL配置详情:<PL/SQL访问远程Oracle服务器(多种方式)>MyEclipse配置:<Eclipse在开发Web项目时的配置优化>,<教你破解MyEclipse到2016年[图文详解]>虽然总结过以上开发环境的配置及优化,但是在使用的过程中依旧出现了或多或少.大大小小的问题,统一记录一下.1.MyEclipse导入工程.File-->Import-->Ge

Oracle/PLSQL: LENGTH Function-from cyber

Oracle/PLSQL: LENGTH Function This Oracle tutorial explains how to use the Oracle/PLSQL LENGTH function with syntax and examples. Description The Oracle/PLSQL LENGTH function returns the length of the specified string. Syntax The syntax for the LENGT

Oracle/PLSQL: LPAD Function-from cyber

Oracle/PLSQL: LPAD Function This Oracle tutorial explains how to use the Oracle/PLSQL LPAD function with syntax and examples. Description The Oracle/PLSQL LPAD function pads the left-side of a string with a specific set of characters (when string1 is

Oracle PLSQL 实例精解 中文版pdf

下载地址:网盘下载 <Oracle PLSQL 实例精解>是一本逐步分解的,详尽的pl/sql编程教程,使用真实场景的试验.范例和练习来介绍读者所需的pl/sql编程技能,涵盖oracle 11g的最新特性.作者的写作手法源自于在哥伦比亚大学教授pl/sql编程技术的经验,深度探索pl/sql编程技术,融合自己的最佳实践.使用本书,读者可以快速掌握pl/sql编程基本知识,并建立工程化的概念,是市面上难得的pl/sql教程.下载地址:网盘下载

oracle Plsql 执行update或者delete时卡死问题解决办法

oracle Plsql 执行update或者delete时 遇到过Plsql卡死问题或者导致代码执行sql的时候就卡死. 在开发中遇到此问题的时候,本来把sql复制出来,在plsql中执行,Sql本身拼写无误,但是出现plsql卡死的情况, 在代码中,执行sql的地方打断点debug,发现执行sql,仍然没有响应.经过网上查资料,猜测导致这种情况的原因是 可能在PLSQL Developer执行update时没有commit,oracle将该条记录锁住了. 可以通过以下办法解决: 先查询锁定记

Oracle/PLSQL CURSOR FOR Loop

Oracle/PLSQL: CURSOR FOR Loop The syntax for the CURSOR FOR Loop is: FOR record_index in cursor_nameLOOP      {.statements.}END LOOP; You would use a CURSOR FOR Loop when you want to fetch and process every record in a cursor. The CURSOR FOR Loop wil

Oracle:impdp导入等待statement suspended, wait error to be cleared

用数据泵impdp往开发数据库导数据,但导入到INDEX时感觉卡住不动了 Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX ----查看状态,Completed Objects: 33一直没有变化. Import> status Job: SYS_IMPORT_FULL_01   Operation: IMPORT                            Mode: FULL