zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    android 通知栏 notifcation
    通过ResultSet获取到rs的记录数的几种方法
    网上书城随笔
    jdbc 事务
    正则表达式
    String,StringBuffer与StringBuilder的区别??
    Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区
    算法
    呵呵
    Hibernate
  • 原文地址:https://www.cnblogs.com/Azhu/p/2677467.html
Copyright © 2011-2022 走看看