`
yhq1212
  • 浏览: 82476 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

oracle 存储过程返回游标

 
阅读更多
--过程部分
      procedure   get_Fpqk(diqu varchar2, jcdxmc varchar2,bcldwmc varchar2,kssj varchar2 ,jssj varchar2 ,beginRow number, endRow  number,  sumCount out number,cur   out   rc__type_fpjl)   is
      begin
                    --使用前先清空
         execute immediate 'truncate table  BIZ_Test';
          
           --默认SQL
           sqlValue:='select *from ( select diqu ,jcdxmc , bcldwmc  , BCLDWBH,
          nvl(sum(decode(fpbz,1,1,0)),0) as blue  ,nvl(sum(decode(fpbz,2,1,0)),0)  as yellow  ,nvl(sum(decode(fpbz,3,1,0)),0) as red
          from biz_fpjl [0]  group by diqu, bcldwmc ,bcldwbh ,jcdxmc    order by  jcdxmc )' ;


          whereValue:=' where  1=1 ';
        
        
          
             --判断是否存在时间,总数,未处理,有效牌数均可通过时间查询
              if   kssj is not null    then
                  whereValue:=whereValue||' and fpsj  >=to_date('''||kssj||''',''yyyy-mm-dd hh24:mi:ss'')'; 
              end if ;
           
              --结束时间 总数,未处理,有效牌数均可通过时间查询
             if   jssj is not  null    then
                  whereValue:=whereValue||' and fpsj  <=to_date('''||jssj||''',''yyyy-mm-dd hh24:mi:ss'')+1';    
             end if ;
  
             if   diqu is not  null    then
                 begin 
                  whereValue:=whereValue||' and diqu   = '''||diqu||'''';   
                end ;
             end if ;
            
                if   jcdxmc  is not  null    then
               begin 
                  whereValue:=whereValue||' and jcdxmc   = '''||jcdxmc||'''';   
                end ;
             end if ;
            
               if   bcldwmc  is not  null    then
               begin 
                  whereValue:=whereValue||' and bcldwmc   like  ''%'||bcldwmc||'%''';   
               
                end ;
             end if ;
            
                dbms_output.put_line('wherevalue'||whereValue||' and (fpbz=1 or fpbz =2 ) and clfs =''自动''');
        
          sqlValue1:=replace(sqlValue,'[0]',whereValue);--默认初始化
          --取红黄牌
          sqlValue2:=replace(sqlValue,'[0]',whereValue||' and (fpbz=1 or fpbz =2 ) and clfs =''自动''');
         
          --取有效拍
          sqlValue3:=replace(sqlValue,'[0]',whereValue ||' and zhuantai =0');
            
                      
       
                dbms_output.put_line('sql1'||sqlValue1);
                dbms_output.put_line('sql2'||sqlValue2);
                dbms_output.put_line('sql3'||sqlValue3);
          --初始化地区名称等信息 
         
          --执行监察信息数据初始化,初始产生 监察地区,类别,名称, 监察总数
           execute immediate ' insert into  BIZ_Test(diqu ,jcdxmc, bcldwmc,BCLDWBH,jc_yjps ,jc_jcps,jc_cfps)'||sqlValue1;
          
            dbms_output.put_line(
            ' 1 update BIZ_Test a set  ( a.diqu,a.jcdxmc ,a.bcldwmc,a.bcldwbh,a.wcl_YJPS , a.wcl_jcps,a.wcl_cfps) = ('||sqlValue2||'  b where    a.bcldwbh =b.bcldwbh  and rownum=1)
              where exists (select 1 from ('||sqlValue2||') b where    a.bcldwbh =b.bcldwbh  and rownum=1 )' ) ;
              dbms_output.put_line('插入基础信息成功 '); 
              dbms_output.put_line('未处理牌数更新成功 ');
            --更新 未处理牌数
             execute immediate 
             'update BIZ_Test a set  ( a.diqu,a.jcdxmc ,a.bcldwmc,a.bcldwbh,a.wcl_YJPS , a.wcl_jcps,a.wcl_cfps) = ('||sqlValue2||'  b where    a.bcldwbh =b.bcldwbh and rownum=1 )
              where exists (select 1 from ('||sqlValue2||') b where    a.bcldwbh =b.bcldwbh and rownum=1)'  ;
              dbms_output.put_line('未处理牌数更新成功 ');     
            
                  --更新 未处理牌数
            dbms_output.put_line(
             ' 2 update BIZ_Test a set  ( a.diqu,a.jcdxmc ,a.bcldwmc,a.bcldwbh,a.yx_YJPS , a.yx_jcps,a.yx_cfps) = ('||sqlValue3||'b  where    a.bcldwbh =b.bcldwbh and rownum=1  )
                  where exists (select 1 from ('||sqlValue3||') b where    a.bcldwmc =b.bcldwmc  and rownum=1)' );
            
            --更新有效牌数
              execute immediate 
              ' update BIZ_Test a set  ( a.diqu,a.jcdxmc ,a.bcldwmc,a.bcldwbh,a.yx_YJPS , a.yx_jcps,a.yx_cfps) = ('||sqlValue3||'b  where    a.bcldwbh =b.bcldwbh  and rownum=1)
                  where exists (select 1 from ('||sqlValue3||') b where    a.bcldwbh =b.bcldwbh and rownum=1 )'  ; 
               dbms_output.put_line('有效牌数 ');                      
            commit;
          
          execute immediate  'select count(1) from biz_test' into  sumCount;
             dbms_output.put_line( sumCount);
           
          --打开游标
           open   cur   for    'select * from (select a.* ,rownum row_num  from  biz_test a where rownum <= '||endRow||' ) temp where row_num >'||beginRow;
           --结束方法
       END get_Fpqk;
分享到:
评论

相关推荐

    Java调用oracle存储过程通过游标返回临时表

    如果存储过程返回游标,我们需要声明一个`OUT`参数来接收。 4. **执行存储过程**:通过`pstmt.execute()`执行存储过程。这将打开一个游标,我们可以从游标中获取结果。 5. **处理游标结果**:使用`...

    oracle存储过程返回游标数据集

    存储过程中通过返回数据集,通过游标方式实现,以及在java中如何接收的整个过程

    Oracle存储过程、游标、函数的详解

    ### Oracle存储过程、游标、函数的详解 #### 一、概述 在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作...

    java调用oracle存储过程(游标)相关

    以下是一个简单的示例代码片段,演示了如何调用一个返回游标的Oracle存储过程: ```java import oracle.jdbc.OracleCallableStatement; import oracle.jdbc.OracleResultSet; try (Connection conn = ...

    Oracle存储过程out游标

    Oracle存储过程中的“Out”游标是数据库编程中一种常用的技术,主要用于在PL/SQL块中返回结果集到调用者。在这个场景中,我们有三个文件:TESTPACKAGE.txt,CURSOR_TEST2.txt和OracleProcedure.java,分别涉及Oracle...

    oracle存储过程使用游标对多表操作例子

    本文将深入探讨如何在Oracle存储过程中使用游标进行多表操作,具体通过一个示例来展示这一过程。 ### 标题与描述分析 标题:“oracle存储过程使用游标对多表操作例子”直接指出了文章的主题是关于在Oracle环境下,...

    Oracle存储过程返回游标实例详解

    Oracle存储过程返回游标是一种常见的数据处理方式,它允许开发者在存储过程中执行SQL查询并返回结果集,供调用者进一步处理。游标在数据库编程中扮演着重要角色,尤其在处理多行记录时,提供了灵活的数据遍历手段。...

    Oracle存储过程游标详解

    "Oracle存储过程游标详解" Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。游标可以分为静态游标和REF游标两种类型。静态游标是指结果集已经确实(静态定义)的游标,可以进一步...

    Oracle存储过程实例使用显示游标

    在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...

    oracle 的函数、存储过程、游标、简单实例

    本主题将深入探讨Oracle中的几个核心概念:函数、存储过程、游标以及简单的实例,这些都是数据库管理员和开发人员日常工作中不可或缺的部分。 首先,我们来了解**Oracle函数**。函数是预定义的代码块,接受零个或多...

    oracle存储过程、游标、函数

    **一、Oracle存储过程** 存储过程是预编译的SQL语句集合,它们被存储在数据库中并可以按需调用。存储过程有以下几个优点: 1. **性能提升**:由于存储过程在首次创建时就被编译,因此后续调用时执行速度快。 2. **...

    Java获取Oracle存储过程返回的Cursor

    本篇文章将详细介绍如何在Java中通过ODBC6驱动获取Oracle存储过程返回的Cursor。 首先,我们需要创建一个Oracle存储过程,该过程定义了一个名为CURSOR_RESULT的REF CURSOR类型。在提供的示例中,我们有一个名为TEST...

    ibatis调存储过程返回游标

    本文将深入探讨如何使用iBatis调用存储过程并返回游标,这是一个在处理复杂数据库操作时常见的需求。 ### iBatis调用存储过程返回游标 #### 存储过程简介 存储过程是预先编译并存储在数据库中的SQL代码块,它可以...

    JAVA调用ORACLE存储过程游标使用

    Oracle存储过程可以封装复杂的业务逻辑,而游标则用于在结果集上进行迭代,特别是当结果集太大,不适合一次性加载到内存时。下面将详细介绍如何在Java中实现这一功能。 首先,确保你已经在Oracle数据库中创建了包含...

    Oracle存储过程返回结果集

    本篇将深入探讨如何在Oracle存储过程中创建并返回一个结果集,并结合Java代码展示如何在应用程序中使用这个结果集。 首先,我们需要理解`OUT`参数的概念。在Oracle存储过程中,`IN`参数用于传递数据到过程,`OUT`...

    oracle10g 函数返回游标类型

    ### 标题:“oracle10g 函数返回游标类型” 此标题直接指向了Oracle 10g环境下,如何设计和实现返回游标类型的数据的函数。游标是数据库中的一个重要概念,它允许用户在数据库中定位、检索、更新和删除数据行。当...

    ORACLE 游标 异常 存储过程

    在Oracle数据库中,游标(Cursor)是一种非常重要的概念,特别是在编写存储过程和函数时。游标允许我们处理单行或多行数据集,一次处理一行,这样可以进行精细化的数据操作。在本篇讨论中,我们将深入理解Oracle游标...

    利用游标返回结果集的的例子(Oracle 存储过程).doc

    这里使用了`CallableStatement`来执行存储过程,因为它可以处理返回游标的存储过程调用。`registerOutParameter`方法用于声明第1个参数为输出参数,并指定其类型为`OracleTypes.CURSOR`。执行存储过程后,我们通过`...

    java调用oracle存储过程返回结果集,Record,cursor参照.pdf

    Java调用Oracle存储过程返回结果集Record、Cursor参照 Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中...

Global site tag (gtag.js) - Google Analytics