`
siashuayongsheng
  • 浏览: 118020 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

游标带参数与不带参数

    博客分类:
  • Java
阅读更多
CREATE OR REPLACE PROCEDURE x_ne_change
AS
   CURSOR cur_new
   IS
      SELECT int_id, omc_id || ':' || msc_id || ':' || bsc_id AS related_id,
             omc_id, msc_id, bsc_id, ne_name, cell_id, lac, freq_band,
             trx_count, tch, sdcch, gprs_enabled, gprs_trx, dedicated_pdch,
             max_pdch, device_type, software_version, dumpfre_type, site_no,
             cell_no, rac, ncc, bcc, sms_cb_used, bsc_omc_int_id, omc_int_id,
             TIMESTAMP
        FROM appuser.K_C_CELL
       WHERE TIMESTAMP = '2004-04-23 8' AND cell_id < 2000;

   CURSOR cur_old (c_no NUMBER)
   IS
      SELECT int_id, omc_id || ':' || msc_id || ':' || bsc_id AS related_id,
             omc_id, msc_id, bsc_id, ne_name, cell_id, lac, freq_band,
             trx_count, tch, sdcch, gprs_enabled, gprs_trx, dedicated_pdch,
             max_pdch, device_type, software_version, dumpfre_type, site_no,
             cell_no, rac, ncc, bcc, sms_cb_used, bsc_omc_int_id, omc_int_id,
             TIMESTAMP
        FROM appuser.K_C_CELL
       WHERE TIMESTAMP = '2004-04-21 6' AND cell_id = c_no;
BEGIN
   FOR v_new IN cur_new
   LOOP
      FOR v_old IN cur_old (v_new.cell_id)
      LOOP
         BEGIN
            IF v_new.related_id <>; v_old.related_id
            THEN
               INSERT INTO TEST_NE_CHANGE
                           (omc_id, omc_int_id, ne_id,
                            old_value, now_value,
                            modify_item, modify_time
                           )
                    VALUES (v_new.omc_id, v_new.omc_int_id, v_new.cell_id,
                            v_old.related_id, v_new.related_id,
                            'related_id', v_new.TIMESTAMP
                           );

               COMMIT;
            END IF;

            IF v_new.tch <>; v_old.tch
            THEN
               INSERT INTO TEST_NE_CHANGE
                           (omc_id, omc_int_id, ne_id,
                            old_value, now_value, modify_item, modify_time
                           )
                    VALUES (v_new.omc_id, v_new.omc_int_id, v_new.cell_id,
                            v_old.tch, v_new.tch, 'TCH', v_new.TIMESTAMP
                           );

               COMMIT;
            END IF;
         END;
      END LOOP;
   END LOOP;
END;




CREATE OR REPLACE PROCEDURE w_ne_change
AS

   CURSOR cur_new
   IS
      SELECT int_id, omc_id || ':' || msc_id || ':' || bsc_id AS related_id,
             omc_id, msc_id, bsc_id, ne_name, cell_id, lac, freq_band,
             trx_count, tch, sdcch, gprs_enabled, gprs_trx, dedicated_pdch,
             max_pdch, device_type, software_version, dumpfre_type, site_no,
             cell_no, rac, ncc, bcc, sms_cb_used, bsc_omc_int_id, omc_int_id,
             TIMESTAMP
        FROM appuser.W_C_CELL
       WHERE TIMESTAMP = '2004-04-23 8' AND cell_id < 200;

   CURSOR cur_old
   IS
      SELECT int_id, omc_id || ':' || msc_id || ':' || bsc_id AS related_id,
             omc_id, msc_id, bsc_id, ne_name, cell_id, lac, freq_band,
             trx_count, tch, sdcch, gprs_enabled, gprs_trx, dedicated_pdch,
             max_pdch, device_type, software_version, dumpfre_type, site_no,
             cell_no, rac, ncc, bcc, sms_cb_used, bsc_omc_int_id, omc_int_id,
             TIMESTAMP
        FROM appuser.W_C_CELL
       WHERE TIMESTAMP = '2004-04-23 6' AND cell_id < 200;
BEGIN
   FOR v_new IN cur_new
   LOOP
      FOR v_old IN cur_old
      LOOP
         IF v_old.cell_id = v_new.cell_id
         THEN
            BEGIN
               IF v_new.related_id <>; v_old.related_id
               THEN
                  INSERT INTO TEST_NE_CHANGE
                              (omc_id, omc_int_id,
                               ne_id, old_value,
                               now_value, modify_item,
                               modify_time
                              )
                       VALUES (v_new.omc_id, v_new.omc_int_id,
                               v_new.cell_id, v_old.related_id,
                               v_new.related_id, 'related_id',
                               v_new.TIMESTAMP
                              );

                  COMMIT;
                 
               END IF;
            END;
         END IF;
      END LOOP;
   END LOOP;
END;




效率方面,你懂的
分享到:
评论

相关推荐

    sql总结.doc

    存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 (2)存储过程的基本写法...

    详解Hibernate呼叫Oracle的存贮过程和函数

    环境:Windows Server 2000、Red Hat ...使用这种方式开发可以要求开发人员不需要太了解Hibernate框架,但是需要开发人员非常熟悉数据库SQL脚本。因此,本示例的面向阅读与使用人员:非常熟悉数据库脚本的开发人员。

    Oracle9i的init.ora参数中文说明

    如果不设置该参数, 就会使用默认的双重货币符号; 否则就会启动一个值为双重货币符号的新会话。 值范围: 任何有效的格式名。。 默认值: 双重货币符号 nls_iso_currency: 说明: 为 C 数字格式元素指定用作国际货币...

    PL/SQL 基础.doc

    CHAR 定长(例子:CHAR(5) 如果不够5个字符的话就会用空白填充 ) ,可以不带长度规定(默认为1) VARCHAR2 变长((VARCHAR2(5)标识最长可以保存5个字符) 后面的长度规定必须要有 布尔型、BOOLEAN 日期型; DATE(后增加...

    《企业人事基本信息管理系统》 sql 期末大作业

    实验报告+sql数据库(含源码) ...事务至少有3类,分为回滚与不回滚,设置保存点 如果选择两个人一组,每个班最多不超过3组,并且同组的第二个人,根据本组的情况,最高不超过65分,第一个人最高不超过85分。

    PL/SQL Developer8.04官网程序_keygen_汉化

     2) 循环结构 这一结构与其他语言不太一样,在PL/SQL程序中有三种循环结构: a. loop … end loop;b. while condition loop … end loop;c. for variable in low_bound . . upper_bound loop … end loop;其中的...

    PLSQLDeveloper下载

    2) 循环结构 这一结构与其他语言不太一样,在PL/SQL程序中有三种循环结构: a. loop … end loop; b. while condition loop … end loop; c. for variable in low_bound . . upper_bound loop … end loop; 其中的...

    informix 实用大全

    33.9 优化器参数与提示 33. 10 校验停滞问题 33.11 磁盘配置 33.12 数据库与表格优化 33.13 更新统计信息以提高效果 33.14 并行数据查询 33.15 其他提高性能的方法 33.16 调整sql读取缓冲区长度 33....

    IQC电子基础知识培训

    注:车台CPU与遥控器CPU不作第3项功能测试 xxxxxxxxxxxxxxxxxxxxxxxxxx 文件编号:XXXXXXXXX 编制:xxx QA规范 来料检验 版本号: A 页 码:8 本页修改序号:00 名称:线路板 检 验 项 目 检 验 方 法 检 验...

    oracle数据库经典题目

    文本参数文件的修改是通过直接对文本的修改实现的,通过命令行是无法将修改后的参数值写入该文件中,而服务器初始化参数文件是不能直接修改的,必须通过ALTER SYSTEM语句来进行参数修改的。 7. 简述PL/SQL程序结构及...

    实验四 存储过程、触发器与索引

    创建一个带有输入参数的存储过程proc_abc,查询指定职工的销售记录,用户输入职工编号,存储过程返回职工名称、产品名称、销售日期、销售数量,假如执行存储过程时所提供的“职工编号”不存在,存储过程应给予一定的...

    基于LabVIEW的虚拟示波器

    前面板可以通过旋钮或者输入(形式不限)等多种形式控制信号的赋值、频率、相位、采样信息等基本信息; 信号波形图 前面板可以显示双通道的信号;波形图显示区域底色为白色;波形显示颜色为蓝色;如下图所示; 双...

    javabiginteger源码-r2dbc-mssql:使用TDS(表格数据流)协议的MicrosoftSQLServer的R2DBC驱动程

    参数化语句的执行(直接和游标执行) 广泛的类型支持(包括TEXT 、 VARCHAR(MAX) 、 IMAGE 、 VARBINARY(MAX)和国家变体,例外情况见下文) 下一步: 存储过程的执行 添加对 TVP 和 UDT 的支持 行为守则 该项目由 . ...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    注意——与所介绍主题相关的额外信息 章节测验——每章结束时的测验测试读者对所学知识的掌握程度。 目录 第1章 数据库基础 1.1 数据库定义 1.2 Ofacle Database 11g的体系结构 1.2.1 控制文件 1.2.2 联机重做日志...

    net学习笔记及其他代码应用

    接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它...

    php网络开发完全手册

    16.3.8 游标 273 16.3.9 存储过程的删除 275 16.4 触发器的设计 275 16.4.1 触发器的创建与触发 275 16.4.2 触发器的删除 276 16.5 PHP与存储过程、触发器 277 16.5.1 PHP调用存储过程 277 16.5.2 PHP调用触发器 277...

    Oracle Database 11g初学者指南--详细书签版

    CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Oracle Database 11g初学者指南 基本信息 原书名: Oracle Database 11g, A Beginner's Guide 原出版社: ...

    数据库设计和高级查询课程课件(SQL Server版)

    chapter6\理论部分\源代码\SG6-Source\示例3:不带参数的存储过程.sql chapter6\理论部分\源代码\SG6-Source\示例4-1:带参数的存储过程1.sql chapter6\理论部分\源代码\SG6-Source\示例4-2:带默认参数的存储过程2....

    SQL语法大全

    Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下: ----------------------------------------------------...

Global site tag (gtag.js) - Google Analytics