`

一个普通的oracle存储过程的例子

阅读更多
[size=large]
create or replace procedure P_TQA_F_NSPG(id_mth in number :=0) AS
v_id_mth number(6);   ---一个简单的存储过程,传入加工月份,声明了个临时变量
begin                 ----v_id_mth做判断传入加工月份用的
   
   if id_mth = 0 then 
       select to_number(to_char(sysdate,'yyyymm')) into v_id_mth from dual; 
    else
       v_id_mth := id_mth;
    end if;
    delete TQA_F_NSPG where id_mth = v_id_mth ;----先删除要加工的月份数据
    
    insert into TQA_F_NSPG(id_mth,      -----插入到加工表中数据
                           Nsrnbm,
                           nsr_mc,
                           Id_Nspgjl,
                          
                           Sk_Je,
                           Jj_Je,
                           swjg_dm,
                           mth_pg,
                           Name_Pgry)
                  select   v_id_mth,
                           a.nsrnbm,
                           a.nsr_mc,
                           2,
                          
                           case when b.zsxm_dm!='90' then b.je else 0 end, 
                           case when b.zsxm_dm='90' then b.je else 0 end,   
                           a.swjg_dm,
                           to_char(a.date_pgsj,'yyyymm'),
                           c.name_jcry
                   from TQA_D_NSPGJYS a,TQA_D_JYBSBSKQD b,TQA_D_NSPGSJB c where
                   a.no=b.no_jys and a.no_sj=c.no;
                   
      
                    
                    
          insert into TQA_F_NSPG(id_mth,        
                                  Nsrnbm,
                           nsr_mc,
                           Id_Nspgjl,
                        
                           Sk_Je,
                           Jj_Je,
                           swjg_dm,
                           mth_pg,
                           Name_Pgry)
                           
                     select v_id_mth,
                           a.nsrnbm,
                           a.nsr_mc,
                           case when a.id_nspgjl=3 then 3 else
                                case when a.id_nspgjl=4 then 4 else 
                                      case when a.id_nspgjl=1 then 1 else 0 end
                                 end 
                           end,
                           0,
                           0,
                           a.swjg_dm,
                           to_char(a.nspgrq,'yyyymm'),
                           c.name_jcry
                      
                    from  TQA_D_NSPGBG a,TQA_D_NSPGSJB c 
                    where  a.no_sj=c.no and (a.id_nspgjl=3 or a.id_nspgjl=4 or a.id_nspgjl=1);          
         
         
          
    commit;  ----提交
    
end P_TQA_F_NSPG;
[/size]
分享到:
评论

相关推荐

    oracle存储过程例子

    这篇博文“Oracle存储过程例子”可能提供了关于如何创建、调用和使用Oracle存储过程的实际示例。 首先,存储过程可以提高应用性能,因为它将多次执行的SQL语句预编译并存储在数据库中。每次调用时,只需要执行已...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    Oracle 存储过程调用 CallabledStatement 实用例子(IN OUT 传游标) 一、Oracle 存储过程简介 Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、...

    oracle的一个简单存储过程实例

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写包含一系列SQL语句和PL/SQL块的可重用代码段。在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储...

    比较完整的一个创建Oracle存储过程的例子

    以下是一个创建Oracle存储过程的详细步骤和相关知识点的解释。 1. **创建存储过程的语法**: 创建存储过程的基本语法是 `CREATE OR REPLACE PROCEDURE procedure_name (parameter_list) AS declaration_section ...

    ORACLE存储过程学习源码

    Oracle存储过程是数据库编程的重要组成部分,它允许程序员在数据库中执行复杂的业务逻辑和数据操作。这个"ORACLE存储过程学习源码"集合包含了从基础到高级的30个示例,是学习和掌握Oracle存储过程的理想资源。下面,...

    Oracle存储过程开发的要点

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,用于封装一系列SQL和PL/SQL代码,以实现特定的功能。在Oracle中,存储过程可以提高应用程序的性能,因为它减少了与数据库的交互次数,并允许在数据库级别...

    oracle 存储过程语法例子

    总结,这个例子中展示了Oracle存储过程的基本结构,包括包的创建、过程的定义、游标的使用、条件判断、动态SQL以及异常处理。这些都是在Oracle数据库环境中编写高级逻辑和数据操作时不可或缺的技能。通过理解和实践...

    使用java实现oracle存储过程

    使用java实现oracle存储过程。 共有3个小例子。实现的功能 1、无返回值的存储过程 如 insert 2、有返回值的存储过程(非列表)select id from tab 3、返回列表 如:select * from tab 顺便鄙视下csdn,作为一个it...

    oracle 存储过程 案例

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重复使用的程序单元。这个“Oracle存储过程案例”提供了丰富的学习材料,帮助用户从入门到精通掌握...

    oracle的存储过程如何返回结果集

    本文将详细介绍Oracle存储过程如何返回结果集的方法,并通过具体的例子进行说明。 #### 二、存储过程返回结果集的原理 在Oracle中,存储过程可以通过引用游标(Ref Cursor)来返回结果集。Ref Cursor是一种特殊...

    oracle 存储过程例子

    oracle 存储过程例子 自己写的所有oracle 的if while for

    oracle存储过程笔记

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,它允许开发者编写一组SQL和PL/SQL语句,形成一个可重用的程序单元。存储过程的概念类似于高级编程语言中的模块,通过参数传递来实现数据的交互,体现了模块...

    delphi调用Oracle的存储过程

    #### Oracle存储过程创建 首先,我们需要在Oracle数据库中创建一个存储过程。以下是一个示例存储过程`pkg_test`的创建脚本: ```sql CREATE OR REPLACE PACKAGE pkg_test AS TYPE myrctype IS REF CURSOR; ...

    访问ORACLE存储过程

    在.NET环境中,访问Oracle存储过程是一项常见的任务,用于执行数据库中的复杂操作,如数据处理、事务管理和业务逻辑。本文将详细介绍如何使用OracleClient数据提供者在C#中调用存储过程,包括带输入、输出参数的存储...

    Oracle存储过程、触发器

    Oracle存储过程和触发器是数据库管理系统中的重要组成部分,它们在数据处理和业务逻辑实现中扮演着关键角色。本文将深入探讨这两个概念以及它们在实际应用中的使用。 **Oracle存储过程** Oracle存储过程是一组预...

    oracle存储过程

    存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 定义总是很抽象。存储过程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL Server)。如果我们通过创建存储...

    Oracle 存储过程分页

    Oracle 提供了多种方法实现分页查询,下面我们将详细探讨Oracle存储过程中的分页实现。 1. **ROWNUM伪列** 在早期的Oracle版本中,ROWNUM伪列被广泛用于分页。ROWNUM是在结果集生成时自动分配的,表示每一行的顺序...

    Oracle_存储过程exception异常处理大全及实例经典最终.docx

    例如,在上述提供的存储过程中定义了一个名为 `no_result` 的异常,用于处理执行 SQL 语句后没有结果的情况。用户可以通过定义异常来捕捉特定的业务逻辑问题,从而更好地控制程序的执行流程。 #### 1.1.4 用户定义...

    Springboot调用Oracle存储过程的几种方式.docx

    `createStoredProcedureQuery()`方法允许我们直接创建一个用于调用存储过程的对象,然后设置输入/输出参数。例如: ```java public QueryResponse queryBill1(String pay_ID) throws Exception { QueryResponse...

Global site tag (gtag.js) - Google Analytics