[u][/u]-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `splitStringTotalFunction`(
f_string varchar(1000),f_delimiter varchar(5)
) RETURNS int(11)
BEGIN
declare returnInt int(11);
if length(f_delimiter)=2 then
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')))/2;
else
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
end if;
END
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `splitStringFunction`(
f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8
BEGIN
declare result varchar(255) default '';
set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));
return result;
END
set i = 1;
if(i_inventoryID is not null and length(i_inventoryID) <> 0) then
while i <= splitStringTotalFunction(i_inventoryID,',')
do
set dictCode = splitStringFunction(i_inventoryID,',',i);
/*终端料仓库盘盈rfid字符串*/
call stockTerminalGainRfidsProcedure(dictCode,null,null,stockTerminalGainRfids);
if(stockTerminalGainRfids <> '' and stockTerminalGainRfids is not null) then
set stockGainRfids = concat('',stockTerminalGainRfids,'' ,',') ;
end if;
set i = i + 1;
end while;
end if;
set i = 1;
if(i_inventoryID is not null and length(i_inventoryID) <> 0) then
while i <= splitStringTotalFunction(i_inventoryID,',')
do
set dictCode = splitStringFunction(i_inventoryID,',',i);
/*实体库盘盈rfid字符串*/
call stockStoreGainRfidsProcedure(dictCode,null,null,stockStoreGainRfids);
if(stockStoreGainRfids <> '' and stockStoreGainRfids is not null) then
set rfid_temp = concat('',stockStoreGainRfids,'' ,',') ;
end if;
set i = i + 1;
end while;
end if;
if(stockGainRfids <> '' and stockGainRfids is not null) then
set stockGainRfids = concat(stockGainRfids,rfid_temp) ;
else
set stockGainRfids = rfid_temp ;
end if;
set @ch = substring(stockGainRfids, -1, 1);
if(@ch = ',') then
set stockGainRfids = left(stockGainRfids, CHAR_LENGTH(stockGainRfids) - 1);
end if;
分享到:
相关推荐
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...
Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三...
在MySQL数据库中,存储过程是一种预编译的SQL语句集合,它可以封装一系列的操作,用于执行复杂的业务逻辑。创建存储过程并循环添加记录是数据库管理中的常见任务,尤其是在需要批量插入数据时。以下将详细解释如何在...
本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。
一个简单易理解的mysql存储过程 循环表操作 使用游标
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
在存储过程中,还可以使用条件语句(如IF-ELSE)和循环结构(如WHILE或LOOP),使得处理逻辑更加灵活。 接下来,我们讨论触发器。触发器是一种特殊的存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)...
这一步可能需要对每个表进行循环,或者如果存储过程支持动态SQL,可以更高效地实现。 4. **自定义备份表**:为了允许用户选择要备份的特定表,存储过程需要接受参数,比如表名的列表,然后根据这些参数来决定哪些表...
2. 在存储过程中,可以使用流程控制语句如`IF...ELSE`、`CASE`、`WHILE`和`LOOP`来实现逻辑判断和循环。 3. 使用`BEGIN`和`END`来标记存储过程的开始和结束。 4. 使用`CALL`关键字来调用已创建的存储过程。 例如,...
MySQL存储过程是数据库管理系统中的一个重要特性,它允许程序员或数据库管理员预先定义一组SQL语句,形成一个可重用的逻辑单元。在这个“MySQL存储过程入门到精通”资料中,你将深入理解存储过程的原理、创建、调用...
存储过程可以包含控制流语句,如条件判断(IF-ELSE)和循环(WHILE, FOR),使得复杂的业务逻辑能够在数据库层面实现,而无需过多依赖应用程序。此外,存储过程还可以具有参数,允许灵活地传入和传出数据,增强了其...
### MySQL 查询存储过程详解 #### 一、存储过程概述 MySQL 存储过程是一种存储在 MySQL 服务器中的 SQL 代码段,它能够被多个客户端多次调用。存储过程的主要优势在于能够简化复杂的 SQL 查询,执行常见的任务,...
### MySQL 创建存储过程详解 #### 一、存储程序概述 **存储程序**是可以在MySQL服务器中定义并存储的一组SQL语句。它们的功能类似于过程化的编程语言中的函数或过程,可以封装复杂的逻辑,并且能够在数据库层面...
根据提供的文档信息,本文将深入解析《MySQL 5.0 存储过程》这一主题,重点探讨存储过程的概念、特点以及在 MySQL 5.0 中的应用。存储过程是数据库管理系统中一项重要的功能,它允许开发者编写可重用的 SQL 代码块,...
能学到什么:可以学会如何使用MySQL创建无参存储过程、有参存储过程、IF-ELSE存储过程、WHILE循环存储过程、CASE-WHEN条件控制存储过程、REPEAT UNTIL循环存储过程、LOOP循环存储过程。 阅读建议:提前安装好MySQL的...
1. **增强SQL的功能与灵活性**:存储过程可以使用流程控制语句,这使得它能够执行复杂的逻辑处理,比如条件分支和循环等。 2. **组件化编程**:一旦存储过程被创建,就可以在多个地方重复调用而无需重新编写相同的...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一组SQL语句并封装成一个可重复使用的对象。这个经典教程旨在深入探讨存储过程的各个方面,帮助读者掌握这一强大的数据库编程工具。 1. **存储...
MySQL存储过程 MySQL存储过程(Stored Procedure)是一种复杂的数据库对象,允许用户将多个SQL语句组合成一个单一的执行单元,以提高数据库的性能和可维护性。下面是 MySQL 存储过程的相关知识点: 存储过程的定义...
从给定的文件信息来看,文章主要探讨的是MySQL5.0版本中新引入的存储过程功能。存储过程在数据库管理系统中扮演着重要的角色,它允许开发者编写可重用的代码块,这些代码块可以执行一系列复杂的数据库操作。在MySQL...