1.  

  传入2个字符串变量,其中,每个字符串是用分号(;)分隔的字串形式,

  比如str1=’ab12;ab;cccc;tty’, str2=’1;6sf;8fffff;dd’,

  注意,字符串是用户输入的,不能固定值、长度、和分号个数。

2.  

  执行完毕存储过程后,要求根据分号提取字符串的字串,并一一插入到表Kc中。

  例如上面的str1, str2传入后,要求执行完毕存储过程后,表Kc中的值如下所示(开始表中没有数据)

代码如下:

 create proc insert_data
@str1 varchar(MAX),
@str2 varchar(MAX)
as
begin
declare @len1 int,
@len2 int,
@pos1 int,
@pos2 int,
@start_point1 int,
@start_point2 int,
@subString1 varchar(MAX),
@subString2 varchar(MAX)
select @len1 = len(@str1);
select @len2 = len(@str2);
select @start_point1 = 1;
select @start_point2 = 1;
while (1 > 0)
begin
select @pos1 = charindex(';', @str1, @start_point1);
select @pos2 = charindex(';', @str2, @start_point2);
if (@pos1 = 0 and @pos2 = 0)
begin
select @subString1 = substring(@str1, @start_point1, @len1-@start_point1+1);
select @subString2 = substring(@str2, @start_point2, @len2-@start_point2+1);
insert into Kc values(@subString1, @subString2);
break;
end
else if (@pos1 = 0)
begin
select @subString1 = NULL;
select @subString2 = substring(@str2, @start_point2, @pos2-@start_point2);
end
else if (@pos2 = 0)
begin
select @subString2 = NULL;
select @subString1 = substring(@str1, @start_point1, @pos1-@start_point1);
end
else
begin
select @subString1 = substring(@str1, @start_point1, @pos1-@start_point1);
select @subString2 = substring(@str2, @start_point2, @pos2-@start_point2);
end
insert into Kc values(@subString1, @subString2);
select @start_point1 = @pos1 + 1;
select @start_point2 = @pos2 + 1;
if (@start_point1 > @len1 and @start_point2 > @len2)
break
end
end

数据库lib7第4题创建存储过程的更多相关文章

  1. SQLServer创建用户、数据库、表、约束、存储过程、视图

    --创建登录账户和数据库用户 ' exec sp_grantdbaccess 'sysAdmin','aa' --给数据库用户赋权限 grant select,update,insert,delete ...

  2. 利用navicat创建存储过程、触发器和使用游标的简单实例

    利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报  分类: 数 ...

  3. SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过

    SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过     存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ...

  4. MYSQL数据库重点:自定义函数、存储过程、触发器、事件、视图

    一.自定义函数 mysql自定义函数就是实现程序员需要sql逻辑处理,参数是IN参数,含有RETURNS字句用来指定函数的返回类型,而且函数体必须包含一个RETURN value语句. 语法: 创建: ...

  5. Oracle数据库学习 视图、序列及存储过程

    视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查 ...

  6. Oracle 奇葩的问题:创建存储过程没有反应

    问题描述:需要在oracle 数据库中再创建一个数据库(数据库实例)然后作为临时数据库,一切成功: 现在需要在数据库中新建一个表空间然后创建用户,使用创建的用户登录创建一个存储过程,执行提交刷新一下, ...

  7. MySQL的一些基本查询,创建存储过程等

    常用的查询条件有1.比较:=,<,>,<=,>=,!=,<>,!>,!<              2.确定范围:between and,not bet ...

  8. SQL 创建存储过程,让主键自增

    1.  首先创建存储过程: 2.  然后分别创建序列,生成基金公司编号.基金代码.活期账号.理财账号.基金账户.合同号.要求如下: 基金公司编号,字母K+5位数字. 基金代码,字母V+6位数字. 活期 ...

  9. SQLServer之创建存储过程

    创建存储过程注意事项 在 SQL Server. Azure SQL Database.Azure SQL 数据仓库和并行数据库中创建 Transact-SQL 或公共语言运行时 (CLR) 存储过程 ...

随机推荐

  1. [转]Visual Studio 2010单元测试(1)--运行和定义普通单元测试

    Visual Studio 2010 运行和定义单元测试 在VS2010中,单元测试的功能很强大,使得建立单元测试和编写单元测试代码,以及管理和运行单元测试都变得简单起来,通过私有访问器可以对私有方法 ...

  2. Web API 接口说明文档

    1.采用 Web API Help Page 显示效果 2.swaggerui 创建文档接口 效果图 3.swagger ui 安装配置 nuget 安装 2.设置xml文件 3.配置根路径 预览sw ...

  3. 获取地址栏URL中参数, getQuerySting()方法

    今天同事用的以前的获取url地址参数获取不到.以前的方法失效了.后面发现是正则表达式bug: 第一种获取方法(针对普通情况的一般够用): function getQueryString(name) { ...

  4. 掌握ES6/ES2015核心内容

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

  5. mysql 索引优化,不走索引的原因

    1.WHERE字句的查询条件里有不等于号(WHERE column!=…),MYSQL将无法使用索引 2.类似地,如果WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)=…) ...

  6. Python实例4- 列表到字典的函数,针对好玩游戏物品清单

    假设征服一条龙的战利品表示为这样的字符串列表: dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby'] 写一个名为 ...

  7. python的collections应用为字典哈希

    import collections allNum=collections.defaultdict(int) allNum[1]+=1 allNum[5]+=1 print(allNum) 当然,de ...

  8. ssm整合:搭建环境

    解决配置中文过滤器后,存入数据库时依旧乱码问题:在web.xml中修改数据库url如下: <property name="jdbcUrl" value="jdbc: ...

  9. CSP-S 2019 Day 2 T3 树的重心

    CSP-S 2019 Day 2 T3 树的重心 题 给出了一个大小为\(n\)的树,树中结点从 1∼n 编号.小简单的课后作业是求出这棵树单独删去每条边后,分裂出的两个子树的重心编号和之和. \(n ...

  10. 理解 Python 语言中的 defaultdict

    众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined).但是有时候,字典中的每个键都存在默认值是非常 ...