`

Oracle 存储过程与函数

 
阅读更多
CREATE OR REPLACE PROCEDURE pro_scmcbs_i6bill_filldata(group_code    org_group.code%type,
                                                       stockorg_code org_stockorg.code%type) AS
  cursor cur is
    select pk_cbsnode, pk_projectclass, pk_costprojectid
      from temp_scmcbs_mapping;
BEGIN
  for v_temp in cur loop
    dbms_output.put_line(v_temp.pk_cbsnode);
    update ia_i6bill_b
       set ccbsnodeid = v_temp.pk_cbsnode
     where dr = 0
       and vbdef1 = v_temp.pk_costprojectid
       and cprojectid in
           (select pk_project
              from bd_project
             where dr = 0
               and pk_projectclass = v_temp.pk_projectclass)
       and cbillid in
           (select cbillid
              from ia_i6bill ia_i6bill
              join org_group org_group
                on ia_i6bill.pk_group = org_group.pk_group
              join org_stockorg org_stockorg
                on org_stockorg.pk_stockorg = ia_i6bill.cstockorgid
             where ia_i6bill.dr = 0
               and org_group.code = group_code
               and org_stockorg.code = stockorg_code);
  end loop;
  commit;
END;
------------------------------------------------------------------------------------------------

CREATE OR REPLACE PROCEDURE pro_scmcbs_mapping_fill_new AS

  cursor cur_costproject is
    SELECT code, name, PK_DEFDOC
      FROM bd_defdoc
     WHERE PK_DEFDOCLIST = '1002A310000000004QPT';

  cursor cur_projectclass is
    select pk_projectclass, type_code, type_name
      from bd_projectclass
     where type_code in ('01', '02', '03', '04', '05', '90');

  cursor cur_cbs is
    select pk_cbsnode, code, name from bd_cbsnode;

  v_cbs_code   temp_scmcbs_mapping.cbs_code%type;
  v_pk_cbsnode temp_scmcbs_mapping.pk_cbsnode%type;
  v_name       temp_scmcbs_mapping.cbs_name%type;

BEGIN

  for cur in cur_costproject loop
    for cur_ in cur_projectclass loop
      v_cbs_code := f_compute_contrast(cur.code, cur_.type_code);
      insert into temp_scmcbs_mapping
        (pk_costprojectid,
         costproject_code,
         costproject_name,
         pk_projectclass,
         projectclass_code,
         projectclass_name,
         pk_cbsnode,
         cbs_code,
         cbs_name)
      values
        (cur.pk_defdoc,
         cur.code,
         cur.name,
         cur_.pk_projectclass,
         cur_.type_code,
         cur_.type_name,
         v_pk_cbsnode,
         v_cbs_code,
         v_name);
    end loop;
  end loop;
  commit;
  for cur in cur_cbs loop
    update temp_scmcbs_mapping
       set pk_cbsnode = cur.pk_cbsnode, cbs_name = cur.name
     where cbs_code = cur.code;
  end loop;
  commit;
exception
  WHEN NO_DATA_FOUND THEN
    raise_application_error(-20009, 'NO_DATA_FOUND');
END;








分享到:
评论
1 楼 1140566087 2013-03-06  
提前预览看看。。沙发抢了

相关推荐

    oracle存储过程与函数

    函数(Function)与存储过程类似,但有两点不同:一是函数必须返回一个值,二是函数可以在SQL语句中直接使用。以下是一个示例,根据员工编号获取员工名称的函数: ```sql create or replace function getEnameById...

    Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作)

    函数与存储过程相似,但函数必须返回一个值,而存储过程可以不返回。函数可以被用作查询的一部分,提升SQL语句的灵活性。 1. **创建函数**:使用`CREATE FUNCTION`语句定义函数,例如: ```sql CREATE OR REPLACE...

    java调用oracle存储过程或者函数

    1. 参数类型匹配:确保Java中的参数类型与Oracle存储过程或函数中的参数类型一致,否则可能导致转换异常。 2. 注意游标处理:有些存储过程可能返回游标,需要特别处理。 3. 事务管理:根据业务需求,可能需要手动...

    Oracle存储过程、函数和包

    ### Oracle存储过程、函数和包的关键知识点 #### 1. 存储过程和函数的认识 - **定义**:存储过程和函数是特定类型的PL/SQL块,它们被存储在数据库中,作为命名的对象存在。 - **命名存储**:与普通的PL/SQL块不同,...

    oracle存储过程_函数_语法_大全_详解

    本文将详细介绍Oracle存储过程与函数的创建、使用方法以及常见操作。 #### 二、创建存储过程 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。存储过程的优点包括提高性能、减少网络流量、...

    ORACLE存储过程,函数,包,游标

    函数与存储过程类似,也是预编译的代码块,但它们必须返回一个值。在Oracle中,你可以创建用户定义的函数,接收参数并返回计算结果。函数常用于计算、转换或提取数据,它们可以直接在SQL查询中使用,提供了一种灵活...

    oracle 存储过程 函数 dblink

    ### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...

    oracle实验8-存储过程与函数的创建.doc

    Oracle实验报告

    JAVA 与ORACLE 存储过程及函数

    在“JAVA与存储过程.txt”文件中,可能包含了具体的示例代码,解释了如何在Java中调用Oracle存储过程和函数,以及如何处理输入和输出参数。这些示例可能涉及到了`Connection`, `PreparedStatement`, `ResultSet`等...

    oracle存储过程函数生成DEMO

    - 函数与存储过程类似,但必须返回一个值。它们常用于计算或处理数据后返回结果。 - 创建Oracle函数使用`CREATE OR REPLACE FUNCTION`语句,例如: ```sql CREATE OR REPLACE FUNCTION function_name (param1 ...

    oracle存储过程和函数PPT

    函数与存储过程类似,也是预编译的代码块,但它们的主要区别在于函数必须返回一个值,而存储过程可能不返回任何值。函数可以作为查询的一部分被嵌入到SQL语句中,提高了代码的可读性和效率。比如,你可以创建自定义...

    Oracle编程存储过程、函数和包

    讲解了oracle的编程存储过程、函数和包

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

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

    oracle存储过程和函数写法

    oracle 的存储过程和函数的语法 如下

    oracle函数调用存储过程

    ### Oracle函数调用存储过程详解 #### 背景与目的 在开发Oracle应用程序时,经常需要使用到存储过程和函数。这两种类型的数据库对象各有优势,可以满足不同的业务需求。有时候,为了更好地组织代码和提高复用性,...

    存储过程、函数、触发器和包

    存储过程、函数、触发器和包

    Oracle 存储过程,函数和包.doc

    Oracle 存储过程、函数和包 Oracle 存储过程和函数是 Oracle 数据库中的一种程序单元,它们可以执行特定的数据库操作和业务逻辑。以下是 Oracle 存储过程、函数和包的相关知识点: 1. 创建和删除存储过程 要创建...

    oracle 存储过程学习

    ### Oracle 存储过程与函数详解 #### 6.1 引言 Oracle数据库中的存储过程和函数是PL/SQL编程的重要组成部分。它们是数据库中存储的命名块,可以通过调用其名称来执行预定义的任务。这些命名块有助于实现业务逻辑、...

    java中调用oracle的存储过程和函数

    2. **函数**:与存储过程类似,但是主要用来返回一个值。 3. **CallableStatement**:是`PreparedStatement`的子接口,用于执行存储过程或函数。 #### 二、环境搭建 为了能够在Java中调用Oracle数据库中的存储过程...

    hibernate query调用oracle存储过程

    以下是一个简单的示例,展示了如何调用一个不带参数的Oracle存储过程: ```java Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); session....

Global site tag (gtag.js) - Google Analytics