存储过程和存储函数
来源:互联网 发布:数据挖掘专业课程 编辑:程序博客网 时间:2024/05/21 10:17
1 mysql
在操作子程序时,由于需要使用分号";",所以要使用delimiter先重新定义分界符为//。以下/**/包含的内容表示注释
delimiter // /*使用delimiter // 把定界符由“;”设置为“//” 。 注意“delimiter”和“//”之间的空格。*/
/* 1 创建子程序(存储过程和存储函数的统称)*/
create procedure p1( out cnt int)
begin
select count(*) into cnrfrom baseinfo_tbl;
end
// /* 提交以上语句 */
create function f1( s char(20)) returns char(50)
begin
return concat('Hello, ',s,'!');
end
// /* 提交以上语句 */delimiter ; /* 把定界符重新设置为 “;” “delimiter”和“;”之间的空格*/
/* 2 调用子程序*/
select f1('world'); /* 调用函数*/
call p1(@a); /* 调用存储过程*/
select @a;
3 显示指定子程序的结构
show create function f1;
show create procedure p1;
4 显示所有的子程序
show function status;
show procedure status;
注:关于参数的in,out,inout。in表示仅作为输入,out表示仅作为输出,inout表示作为输入和输出。
一般的存储过程的参数默认是in方式。存储函数只能使用in方式。
2 sqlserver
(1)创建存储过程
--本过程使用了pubs数据库,所以开头要加如下语句
use pubs
go
CREATE procedure get_sales_for_title
@title varchar(80) = NULL, --this is the input paramater.
@ytd_sales int output
as
if @title is NULL
begin
print 'error: Your must specify a title value.'
return
end
-- Get the sales for the specified title
select "YTD_SALES" = ytd_sales
from titles
where title = @title
set @ytd_sales = @@rowcount
return
GO
--调用存储过程
declare @ytd int
execute get_sales_for_title @title='Sushi, Anyone?', @ytd_sales = @ytd output
select @ytd as ytd
显示结果
YTD_SALES
4095
ytd
1
- 存储过程和存储函数
- 存储函数和存储过程
- 存储过程和存储函数
- 存储过程和存储函数
- 存储过程和函数
- 存储过程和函数
- 存储过程和函数
- 存储过程和函数
- 存储过程和函数
- 函数和存储过程
- 存储过程和函数
- 存储过程和函数
- 存储过程和函数
- 存储过程和函数
- 存储过程和函数
- 存储过程和函数
- 存储过程和函数
- 存储过程和函数
- java中用到json
- 双向链表的创建
- frame在360浏览器兼容模式时显示白色
- ios 离线实现
- Linux下安装Nginx1.8.0
- 存储过程和存储函数
- 对#Hello,2015征文#+Android 热敏打印机打印二维码(图片)博客的尝试
- 多进程学习1
- HiveSql(1)mapjoin、分区表
- 数据库设计
- Android APK反编译实战
- spark中 进行高维矩阵的SVD分解(2)
- QT中的PRI文件
- Oracle EBS OM销售订单行状态“施实”处理方法