数据库lib7第4题创建存储过程
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题创建存储过程的更多相关文章
- SQLServer创建用户、数据库、表、约束、存储过程、视图
--创建登录账户和数据库用户 ' exec sp_grantdbaccess 'sysAdmin','aa' --给数据库用户赋权限 grant select,update,insert,delete ...
- 利用navicat创建存储过程、触发器和使用游标的简单实例
利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报 分类: 数 ...
- SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过 存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ...
- MYSQL数据库重点:自定义函数、存储过程、触发器、事件、视图
一.自定义函数 mysql自定义函数就是实现程序员需要sql逻辑处理,参数是IN参数,含有RETURNS字句用来指定函数的返回类型,而且函数体必须包含一个RETURN value语句. 语法: 创建: ...
- Oracle数据库学习 视图、序列及存储过程
视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查 ...
- Oracle 奇葩的问题:创建存储过程没有反应
问题描述:需要在oracle 数据库中再创建一个数据库(数据库实例)然后作为临时数据库,一切成功: 现在需要在数据库中新建一个表空间然后创建用户,使用创建的用户登录创建一个存储过程,执行提交刷新一下, ...
- MySQL的一些基本查询,创建存储过程等
常用的查询条件有1.比较:=,<,>,<=,>=,!=,<>,!>,!< 2.确定范围:between and,not bet ...
- SQL 创建存储过程,让主键自增
1. 首先创建存储过程: 2. 然后分别创建序列,生成基金公司编号.基金代码.活期账号.理财账号.基金账户.合同号.要求如下: 基金公司编号,字母K+5位数字. 基金代码,字母V+6位数字. 活期 ...
- SQLServer之创建存储过程
创建存储过程注意事项 在 SQL Server. Azure SQL Database.Azure SQL 数据仓库和并行数据库中创建 Transact-SQL 或公共语言运行时 (CLR) 存储过程 ...
随机推荐
- Werkzeug库——wrappers模块
Werkzeug库中的wrappers模块主要对request和response进行封装.request包含了客户端发往服务器的所有请求信息,response包含了web应用返回给客户端的所有信息.w ...
- 【codeforces 499C】Crazy Town
[题目链接]:http://codeforces.com/problemset/problem/499/C [题意] 一个平面,被n条直线分成若干个块; 你在其中的某一块,然后你想要要到的终点在另外一 ...
- node概览和安装
一.node是一个平台环境,可以运行js代码的服务器端平台. 设计最初node是用来解决并发问题的,现在可以用来放在服务端使用. node平台的有优点:运行速度快,支持高并发,轻便.小巧 但是与jav ...
- Django项目:CRM(客户关系管理系统)--78--68PerfectCRM实现CRM业务流程(bpm)报名缴费分页
# pagination.py # ————————68PerfectCRM实现CRM业务流程(bpm)报名缴费分页———————— from django.utils.safestring impo ...
- Django项目:CRM(客户关系管理系统)--73--63PerfectCRM实现CRM讲师下载作业
# teacher_urls.py # ————————62PerfectCRM实现CRM讲师讲课记录———————— from django.conf.urls import url from bp ...
- 《DSP using MATLAB》Problem 7.30
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- linux下文件操作之cp和mv
Linux CP文件夹略过目录的解决 root@QGY:/home/qgy# cp image/newimage_raw /mnt/4T/qin/cp: 略过目录'image/newimage_raw ...
- HTTP协议①介绍
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准. HTTP是一个基于TCP/IP通信 ...
- [转] Blob对象
Blob是计算机界通用术语之一,全称写作:BLOB(binary large object),表示二进制大对象.MySql/Oracle数据库中,就有一种Blob类型,专门存放二进制数据.在javas ...
- 傳説中的 jsonp
jsonp的由來 1 . 網頁上的東西衹要跨域了就不能傳送或者接受數據了.不管是什麽衹要是跨域.Ajax直接请求普通文件存在跨域无权限访问的问题, 2 . 但是src這個東西比較厲害了,請求哪裏都可以 ...