• oracle:游标操作,cursor


    在游标中使用参数:

    CURSOR cursor_name(p_state IN state%TYPE) IS
        SELECT_statement;

    没有参数的写法是

    CURSOR cursor_name  IS
        SELECT_statement;

    对于括号里面的,IN 左边是参数的别名,IN 右边是参数的类型,对于输入的参数,可以设定默认值

    使用参数的语法

    OPEN cursor_name (parameter_value);
    
    [or]
    
    FOR record_name IN cursor_name(parameter_value)
    LOOP
       NULL;
    END LOOP;

    FOR UPDATE 和 WHERE CURRENT 

      当希望更新数据库的表时,只能使用游标 FOR UPDATE子句。因为使用SELECT 语句是,不会锁定任何数据行。

    使用FOR UPDATE 的目的是锁定希望更新的数据库表中数据行,以便于在执行完更新操作前,其他人不能更新操作。

    CURSOR cursor_name IS SELECT_statement 
        FOR UPDATE   [OF column_name];

    where current 语句只能在与 for update 语句一起使用。

    1 DECLARE
    2   CURSOR c_name IS  select_statement  FOR UPDATE OF col_name;
    3 BEGIN
    4   FOR r_name IN c_name
    5     LOOP
    6        UPDATE t_name SET col_name = value
    7        WHERE CURRENT OF c_name;
    8    END LOOP;
    9 END;

    第7行中的 current of  后跟游标名,通过游标指定的UPDATE OF 可以定位到需要更新的操作,这样就避免 WHERE  的匹配写法(where col_name= r_name.col_name)

  • 相关阅读:
    iOS8 新特性
    iOS Autoresizing Autolayout Size classes
    tabBar的内部控件
    导航控制器的根控制器 是滚动性&普通的frame区别
    选择排序&冒泡排序&折半查找
    站内搜索
    Shell安装
    Xcode themes
    扫码跳转AppStore
    iOS手机APP命名规范整理
  • 原文地址:https://www.cnblogs.com/Azhu/p/2677467.html
Copyright © 2020-2023  润新知