`
hudeyong926
  • 浏览: 2032677 次
  • 来自: 武汉
社区版块
存档分类
最新评论

3>存储过程维护项目数据

阅读更多
DROP PROCEDURE IF EXISTS repalceSizeService;
CREATE PROCEDURE repalceSizeService()
BEGIN
declare _size_level int(10); 
declare _price int(10); 
declare _code_business VARCHAR(30); 
declare done int;

-- 定义游标
DECLARE rs_cursor CURSOR FOR 
select item_code_business,size_level,price from imc_channelbusiness_service_item_size_price where type_code=@old;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

open rs_cursor; 
cursor_loop:loop
   FETCH rs_cursor into _code_business,_size_level,_price; -- 取数据
   
   if done=1 then
    leave cursor_loop;
   end if;
   	
-- 更新表
   update imc_channelbusiness_service_item_size_price set price=_price where size_level =_size_level and item_code_business=_code_business and type_code=@new;

end loop cursor_loop;
close rs_cursor;

END;

 set @old = 'ZETY5317788667869077';
 set @new = 'ZETY5317788849451086';
 call repalceSizeService();

DELIMITER $$

DROP PROCEDURE IF EXISTS updateStockMoves $$

CREATE PROCEDURE updateStockMoves()
-- 
-- 实例
-- MYSQL存储过程名为:updateStockMoves
--
BEGIN
declare _stock_sup_id int(10);
declare _enter_time datetime ; 
declare _qty double ;
declare _out_time datetime ;
declare _stock_mv_id int(10);    
declare done int;

-- 定义游标
DECLARE rs_cursor CURSOR FOR 
SELECT a.stock_sup_id,a.enter_time,a.qty,b.out_time 
from pre_doc_item a 
left join prepare_doc b on a.pre_doc_id=b.pre_doc_id order by a.pre_item_id asc;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

-- 获取昨天的日期
--if date_day is null then
--   set date_day = date_add(now(),interval -1 day);
--end if;

open rs_cursor; 
cursor_loop:loop
   FETCH rs_cursor into _stock_sup_id, _enter_time, _qty, _out_time; -- 取数据

   if done=1 then
    leave cursor_loop;
   end if;
     
	 select min(stock_mv_id) into _stock_mv_id from stock_moves where mv_time is null and job_id is null 
	 and stock_sup_id=_stock_sup_id 
	 and in_time=_enter_time and abs(qty)= _qty;

	 insert into temp_updateStockMoves_select(stock_sup_id,enter_time,qty,out_time,stock_mv_id) SELECT _stock_sup_id,_enter_time,_qty,_out_time,_stock_mv_id; 
	
-- 更新表
   update stock_moves set mv_time=_out_time where mv_time is null and job_id is null 
	 and stock_sup_id=_stock_sup_id 
	 and in_time=_enter_time and abs(qty)= _qty and stock_mv_id=_stock_mv_id;
   update stock_moves set mv_time=_out_time where mv_time is null and job_id is null 
	 and stock_sup_id=_stock_sup_id 
	 and in_time=_enter_time and abs(qty)= _qty and stock_mv_id=(_stock_mv_id+1);

insert into temp_updateStockMoves_update(stock_mv_id,mv_time) select _stock_mv_id,_out_time;

insert into temp_updateStockMoves_update(stock_mv_id,mv_time) select _stock_mv_id+1,_out_time;
	
end loop cursor_loop;
close rs_cursor;

END$$

DELIMITER ;
分享到:
评论

相关推荐

    一个项目的存储过程.sql

    总的来说,"一个项目的存储过程.sql"文件是项目数据库逻辑的核心部分,它封装了项目的数据库交互逻辑,对于理解和维护项目数据库的运行至关重要。深入研究和理解这些存储过程,可以帮助我们更好地把握项目的数据处理...

    浅析Oracle存储过程触发器在数据同步中的应用

    在实际项目中,我们发现利用Oracle存储过程和触发器进行数据同步不仅可以提高数据同步的效率,还可以有效避免数据冲突和不一致的问题。下面我们将通过一个具体的案例来展示存储过程和触发器是如何被应用在数据同步中...

    240页公共数据治理运营支撑与数据应用模型设计项目实施技术方案.docx

    数据采集管理是指对公共数据的管理和维护过程。 4.5 数据整合 该项目的数据整合是指对公共数据的整合和资源化。数据整合包括数据整合、功能拓展和数据应用三个方面。数据整合是指对公共数据的整合和资源化。功能...

    mysql存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...

    mysql存储过程_游标_项目练习

    MySQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集,它可以被保存和重复使用,提高了数据库的效率和可维护性。在本项目实践中,我们将深入学习和运用MySQL的存储过程,同时结合游标这一重要工具进行...

    医疗项目数据字典

    在这个特定的场景中,我们关注的是一个名为"医疗项目数据字典"的资源,特别适用于Oracle数据库系统。 Oracle数据库是全球广泛使用的数据库管理系统,以其高性能、高可靠性以及对企业级应用的支持而著名。数据字典在...

    atf项目-用oracle存储过程修复 六月份的数据

    本案例中提到的"atf项目"显然遇到了六月份数据的问题,需要通过Oracle的存储过程来修复。以下将详细介绍相关知识点。 1. Oracle存储过程: Oracle存储过程是一组预先编译的PL/SQL语句,可以用于执行复杂的数据库...

    单位写的11个优秀存储过程

    本篇文章将深入探讨存储过程的概念、重要性以及如何在实际项目中应用。 首先,我们要理解存储过程的基本构成。一个存储过程由一系列的SQL语句组成,包括SELECT、INSERT、UPDATE、DELETE等,以及控制流程语句(如IF-...

    Oracle触发器与存储过程高级编程-第3版itpub.rar

    3. 存储过程的编写与调用:学习如何创建参数化存储过程、返回值的处理、游标的应用及异常处理机制。 4. 触发器与存储过程的性能优化:如何避免触发器导致的性能问题,以及存储过程的调优策略。 5. 实战案例:书中应...

    数据仓库项目 设计文档

    3. **数据采集**:《××项目数据采集程序设计说明书》详细解释了从不同源系统获取数据的过程,这可能包括ETL(提取、转换、加载)工具的使用,数据清洗,以及如何处理异构数据源的问题。数据采集是数据仓库生命周期...

    sqlserver存储过程解密工具

    SQL Server存储过程是一种预编译的SQL代码集合,它们允许数据库开发者封装复杂的业务逻辑和数据操作,提高数据库应用的性能和可维护性。然而,由于存储过程的源代码通常是不可见的,对于需要查看或修改这些过程的...

    公共数据治理运营支撑与数据应用模型设计项目实施技术方案.docx

    1. 数据采集执行过程:数据采集执行过程包括数据采集、数据传输、数据处理和数据存储等步骤。 2. 数据采集监控:数据采集监控的目的是为了实时监控数据采集的过程,确保数据采集的安全性和可靠性。 3. 数据采集...

    数据仓库项目管理实践

    数据仓库项目管理实践是IT领域中的一个重要主题,它涉及到如何有效地规划、实施和维护一个用于存储和分析大量组织数据的系统。数据仓库是企业决策支持系统的基础,它整合了来自不同业务系统的数据,以供分析和报告...

    Oracle存储过程最基本的开发规范

    2. **标准封装**:基于单一数据表的操作采用标准存储过程进行封装,避免重复逻辑出现在多个存储过程中。 #### 八、数据访问规范 1. **逻辑划分**:后台数据按逻辑划分为多个SCHEMA,不同SCHEMA间的数据不可直接互相...

    存储过程生成工具存储过程生成工具

    3. **代码复用**:存储过程可以被多个应用程序调用,减少了代码量,便于维护。 4. **事务处理**:存储过程支持事务管理,可以确保数据的一致性和完整性。 5. **减少网络流量**:相比于多次单独的SQL语句执行,一个...

    db2 存储过程实例

    在"DB2存储过程练习"文件中,可能包含了一系列的存储过程示例,如数据的插入、更新、查询等操作,这些实例可以帮助初学者更好地理解如何在实际项目中运用存储过程。 总结,DB2的存储过程是数据库开发的重要工具,...

    项目数据分析报告费用构成.docx

    在进行项目数据分析时,费用构成是决定项目预算和成本控制的关键因素。以下是对这一主题的详细阐述: 一、基本服务费用 1. 数据收集:数据是分析的基础,收集过程可能涉及购买第三方数据、调研、问卷调查、访谈或...

    xx数据中心项目建设方案.doc

    数据中心项目建设方案是指为满足业务发展的需求,规划、设计、建设和实施数据中心的整个过程。该方案涵盖了项目的背景、意义、目标、任务、需求分析、系统设计、实施、测试和维护等方面。 数据中心项目建设方案的...

    pb中执行oracle存储过程脚本

    标题中的“pb中执行oracle存储过程脚本”指的是在PowerBuilder(简称PB)环境中调用Oracle数据库的存储过程。...同时,他们还需要熟悉Oracle数据库的管理和维护,包括存储过程的编写、调试和优化。

    sql2005存储过程解密工具

    1. 维护与升级:当接手一个已有项目,而原始开发者已经离职,加密的存储过程可能阻碍进一步的维护和升级。 2. 性能优化:为了分析存储过程中的性能瓶颈,可能需要查看其源代码进行调试和优化。 3. 安全审计:为了...

Global site tag (gtag.js) - Google Analytics