zoukankan      html  css  js  c++  java
  • 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;
     
    文章出处:http://www.diybl.com/course/7_databases/oracle/2007114/84247.html

  • 相关阅读:
    hdu 5366 简单递推
    hdu 5365 判断正方形
    hdu 3635 并查集
    hdu 4497 数论
    hdu5419 Victor and Toys
    hdu5426 Rikka with Game
    poj2074 Line of Sight
    hdu5425 Rikka with Tree II
    hdu5424 Rikka with Graph II
    poj1009 Edge Detection
  • 原文地址:https://www.cnblogs.com/jimeper/p/1389535.html
Copyright © 2011-2022 走看看