`

Oracle 10g数据库游标的使用学习三(实践)

 
阅读更多
需求说明
S132877699668612为服务模板ID,每一个服务模板下面有多条服务模板配置数据,如下:
/config/cpf/bm_tp_service_cfg/data/S132877699668612_common_1
/config/cpf/bm_tp_service_cfg/data/S132877699668612_pipeline_1
/config/cpf/bm_tp_service_cfg/data/S132877699668612_M101_1

但是现在数据库中出现了一些服务模板下面的配置数据缺失,主要是缺失_common_1和_pipeline_1,现在需要手动用sql脚本去弥补缺失

-- Created on 2012/12/20 by ZHENGTIAN 
declare
  --服务模板ID
  srv_tp_id varchar2(256);
  --服务模板URI
  srv_tp_uri varchar2(256);
  --服务模板配置ID
  srv_tp_cfg_id varchar2(256);
  --服务模板配置URI
  srv_tp_cfg_uri varchar2(2000);
  --是否存在common标志位
  common_flag integer;
  --是否存在pipeline标志位
  pipeline_flag integer;
  
  --common和pipeline的初始化数据
  common_init_data varchar2(4000) := '<common_config><start_cmd></start_cmd><stop_cmd></stop_cmd><forced_stop_cmd></forced_stop_cmd><check_cmd></check_cmd><restart_cmd></restart_cmd><ts_classpath></ts_classpath><log><file_prefix></file_prefix><level>debug</level><show_io_log>true</show_io_log><log4j-configuration><appender><class>DailyRollingFileAppender</class><name>dailyrollingfile</name><param><name>maxfilesize</name><value></value></param><param><name>datepattern</name><value>yyyy-MM-dd</value></param><param><name>intervalmin</name><value></value></param><param><name>maxbackupindex</name><value></value></param><param><name>flush_immediately</name><value>true</value></param><param><name>file</name><value>$LOGPATH/aierr/</value></param><layout><class>SimpleLayout</class></layout><param><name>max</name><value></value></param></appender><root><priority><value>trace</value></priority><appender-ref><ref>dailyrollingfile</ref></appender-ref></root></log4j-configuration><path>$LOGPATH/</path></log></common_config>';
  pipeline_init_data varchar2(4000) := '<pipe_line><pipe_line_configs><sysinfo /></pipe_line_configs><pipe_line_id>1</pipe_line_id><pipe_line_name>ts</pipe_line_name><pipe_line_type>business</pipe_line_type></pipe_line>';
  
  --服务模板查询条件
  srv_tp_prefix varchar2(256) := '/config/cpf/bm_tp_service/data/';
  --查询数据库中所有的服务模板的URI
  cursor cursor_srv_tp_sel is select t.uri from cfg_runtime_data t where t.uri like srv_tp_prefix || '%';
  
   --服务模板配置查询条件
  srv_tp_cfg_prefix varchar2(256) := '/config/cpf/bm_tp_service_cfg/data/';
  srv_tp_cfg_sql varchar2(512);
  cursor_srv_tp_cfg_sel sys_refcursor;
  
begin
  --循环结果集
  for flow_tp in cursor_srv_tp_sel loop
    srv_tp_uri := flow_tp.uri;
    --dbms_output.put_line('uri:' || srv_tp_uri);
    srv_tp_id := substr(srv_tp_uri,length(srv_tp_prefix)+1,length(srv_tp_uri));
    --dbms_output.put_line(srv_tp_id);
    
    --组装查询服务模板配置的sql
    srv_tp_cfg_sql := 'select t.uri from cfg_runtime_data t where t.uri like ''' || srv_tp_cfg_prefix || srv_tp_id || '%''';
    --dbms_output.put_line(srv_tp_cfg_sql);
    
    --初始化标志位
    common_flag := 0;
    pipeline_flag := 0;
    
    --查询服务模板配置
    open cursor_srv_tp_cfg_sel for srv_tp_cfg_sql;
    loop fetch cursor_srv_tp_cfg_sel into srv_tp_cfg_uri;
       exit when cursor_srv_tp_cfg_sel%notfound;
       srv_tp_cfg_id := substr(srv_tp_cfg_uri,length(srv_tp_cfg_prefix)+length(srv_tp_id)+1,length(srv_tp_cfg_uri));
       --dbms_output.put_line(srv_tp_cfg_id);
       if srv_tp_cfg_id = '_common_1' then common_flag := 1;
       end if;
       if srv_tp_cfg_id = '_pipeline_1' then pipeline_flag := 1;
       end if;
    end loop;
    
    if common_flag = 1 
    then
       insert into cfg_runtime_data(uri, app_code, data, lastup_date, is_compress)
       values(srv_tp_cfg_prefix || srv_tp_id || '_common_1', 'clound', RAWTOHEX(common_init_data), sysdate, 0); 
    end if;
    
    if pipeline_flag = 1 
    then
       insert into cfg_runtime_data(uri, app_code, data, lastup_date, is_compress) 
       values(srv_tp_cfg_prefix || srv_tp_id || '_pipeline_1', 'clound', RAWTOHEX(pipeline_init_data),sysdate, 0);
    end if;

  end loop;
   --提交
  --commit;
  dbms_output.put_line('修改完成!');
  exception
    when others then DBMS_output.PUT_LINE(sqlerrm);
    
end;

分享到:
评论

相关推荐

    oracle10g 函数返回游标类型

    在Oracle 10g数据库系统中,开发人员可以利用PL/SQL语言来创建复杂的存储过程、函数以及包,以执行数据库操作。其中,一个重要的功能是能够创建返回游标类型的函数,这种函数允许用户从数据库中检索并返回一组记录,...

    oracle 10g数据库java开发

    在学习和实践中,可以参考《Oracle 10g数据库Java开发》源代码,通过实际操作加深理解。同时,提供的"教程阅读器下载.url"和"爱书吧 电子书 教程 让更多人 读更多的书.url"链接可能包含更多相关的学习资源和教程,...

    Oracle10g数据库管理与应用系统开发光盘

    Oracle10g数据库管理系统是Oracle公司推出的一款强大的关系型数据库管理系统,主要应用于企业级的数据存储、管理和分析。在Oracle10g中,有许多关键的知识点和特性,对于数据库管理员(DBA)和应用开发者来说,深入...

    Oracle11g 数据库中文 文档

    Oracle 11g数据库是Oracle公司推出的一款关系型数据库管理系统,是10g版本的升级,提供了更高级别的性能、安全性和可管理性。这款数据库系统广泛应用于企业级数据存储和处理,支持复杂的事务处理、数据仓库以及...

    Oracle 10g数据库基础教程 [电子教案]

    Oracle 10g数据库是Oracle公司推出的企业级关系型数据库管理系统,它在数据库管理领域具有广泛的应用。本教程将深入探讨Oracle 10g的基础知识,帮助初学者掌握这一强大的数据库系统。 首先,我们从“第1章 oracle...

    Oracle 11g数据库应用简明教程

    Oracle 11g数据库是Oracle公司推出的一款关系型数据库管理系统,它在企业级应用中具有广泛的应用。本简明教程将深入浅出地讲解Oracle 11g的主要特性和使用方法,帮助读者快速掌握数据库管理和开发技能。 首先,让...

    oracle10G数据库应用教程

    总结,Oracle 10g数据库应用教程全面覆盖了数据库的生命周期,从安装到使用,再到维护,旨在帮助学习者掌握Oracle数据库的核心技术和管理方法,为实际工作中的数据库管理打下坚实基础。通过深入学习和实践,你将能够...

    Oracle10G数据库应用

    Oracle10G数据库应用是IT领域中的一个重要...掌握Oracle 10G数据库应用不仅需要理论知识,还需要大量的实践操作。通过逐步学习和实践,初学者可以逐步熟悉Oracle环境,为更高级的数据库管理和开发工作打下坚实基础。

    Oracle数据库基础教程[孙风栋等编著][习题解答

    在深入学习后,可以进一步探索Oracle的高级特性,如视图、存储过程、触发器、游标、分区表和物质化视图等,这些都极大地丰富了数据库的使用方式和功能。同时,Oracle提供的PL/SQL编程语言使数据库的逻辑处理更为灵活...

    oracle 10g OCP试题

    Oracle 10g OCP(Oracle Certified Professional)是Oracle公司为数据库管理员提供的专业认证,它证明了持证者对Oracle 10g数据库管理的深入理解和实践经验。这个认证包括了一系列的理论考试和实践测试,旨在确保...

    ORACLE10数据库基础教程

    Oracle 10g数据库是Oracle公司推出的一款关系型数据库管理系统,是许多企业和组织的...通过这个“ORACLE10数据库基础教程”,初学者可以逐步建立起对Oracle 10g数据库的全面认识,为更深入的学习和实践打下坚实的基础。

    Oracle 10g 学习课件

    Oracle 10g 学习课件是一套全面的教程,专为想要深入理解Oracle数据库管理系统的人们设计。Oracle数据库是全球广泛使用的大型企业级数据库系统,尤其在金融、电信和政府等行业中占据主导地位。Oracle 10g是其第十个...

    oracle11g数据库管理2 中文版教材 (1Z0-043教材)

    对于打算考取Oracle Certified Professional(OCP)认证的人来说,深入学习Oracle 11g数据库管理是非常重要的一步。 "Oracle11g数据库管理2 中文版教材 (1Z0-043教材)"是针对1Z0-043考试的官方教程,这本教材详细...

    Oracle10g技术文档

    8. **PL/SQL和数据库开发**:Oracle10g加强了PL/SQL语言的功能,包括异常处理、游标和包的使用。理解PL/SQL语法和最佳实践对于开发高效数据库应用非常重要。 9. **备份与恢复**:Oracle10g的备份和恢复策略包括传统...

    Oracle 10G 参考大全

    《Oracle 10G 参考大全》是针对Oracle数据库10版本的...对于任何需要管理和使用Oracle 10G数据库的人来说,这套资料都是必备的参考资料,无论你是新手还是经验丰富的专业人士,都能从中获取到宝贵的知识和实践经验。

    Oracle 10G的使用教程

    综上所述,Oracle 10G的使用教程涵盖了PLSQL编程的深度学习,备份与恢复的策略和实践,以及系统管理的关键技能。掌握这些知识,对于成为一位合格的Oracle DBA至关重要。在实际操作中,结合Oracle提供的文档和工具,...

    《精通Oracle 10g Pro*C/C++编程》源代码与学习笔记

    《精通Oracle 10g Pro*C/C++编程》是一本专为数据库开发人员设计的教程,作者王海亮和张立民通过这本书深入探讨了如何使用C或C++语言与Oracle 10g数据库进行高效交互。源代码与学习笔记的提供,为读者提供了实践操作...

    Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构(第2版)

    这本书全面覆盖了Oracle数据库9i、10g和11g版本的核心技术和最佳实践,旨在帮助读者深入理解Oracle数据库的内部工作机制,并提升在实际应用中的编程与管理技能。 首先,书中详细介绍了Oracle数据库的体系结构。这...

    Oracle10g.chm 中文版 帮助文档

    Oracle10g.chm中文版帮助文档是Oracle数据库系统用户的重要参考资料,它包含了关于Oracle10g数据库管理系统的所有核心功能、API(应用程序编程接口)以及详细的使用指南。Oracle数据库是全球广泛使用的大型关系型...

    Oracle 10g SQL和PL/SQL编程指南 配套程序

    这本书由杨忠民、蒋新民和晁阳三位专家联合编著,由清华大学出版社于2009年1月出版,为读者提供了全面的Oracle 10g数据库知识。 首先,SQL(Structured Query Language)是用于管理关系数据库的标准语言,Oracle 10...

Global site tag (gtag.js) - Google Analytics