Oracle创建各式的存储过程(簡單案例)
2016-04-19 16:31
567 查看
创建各式的存储过程
1. 只返回单一记录集的存储过程
2.没有输入输出的存储过程
(UserName,[PassWord],RegisterTime,RegisterIP) values(9,9,'2013-01-02',9) 这行代码。
3.有返回值的存储过程
4.有输入参数和输出参数的存储过程
解释:@UserName为输入参数,@UserID为输出参数。 运行结果为@userID为COOUT(*)即
=1。
5.
同时具有返回值、输入参数、输出参数的存储过程
结果:@userID为COOUT(*)即
=1,Retun Value=1。
6.同时返回参数和记录集的存储过程
这句代码的结果集,同时@userID为COOUT(*)即 =1,Retun Value=9。
7.返回多个记录集的存储过程
。
1. 只返回单一记录集的存储过程
-------------创建名为GetUserAccount的存储过程---------------- create Procedure GetUserAccount as select * from UserAccount go -------------执行上面的存储过程---------------- exec GetUserAccount结果:相当于运行 select * from UserAccount 这行代码,结果为整个表的数据。
2.没有输入输出的存储过程
-------------创建名为GetUserAccount的存储过程---------------- create Procedure inUserAccount as insert into UserAccount (UserName,[PassWord],RegisterTime,RegisterIP) values(9,9,'2013-01-02',9) go -------------执行上面的存储过程---------------- exec inUserAccount结果:相当于运行 insert into UserAccount
(UserName,[PassWord],RegisterTime,RegisterIP) values(9,9,'2013-01-02',9) 这行代码。
3.有返回值的存储过程
-------------创建名为GetUserAccount的存储过程---------------- create Procedure inUserAccountRe as insert into UserAccount (UserName,[PassWord],RegisterTime,RegisterIP) values(10,10,'2013-01-02',10) return @@rowcount go -------------执行上面的存储过程---------------- exec inUserAccountRe解释:这里的@@rowcount为执行存储过程影响的行数,执行的结果是不仅插入了一条数据,还返回了一个值即 return value =1 ,这个可以在程序中获取,稍后在c#调用存储过程中会有说到。
4.有输入参数和输出参数的存储过程
-------------创建名为GetUserAccount的存储过程---------------- create Procedure GetUserAccountRe @UserName nchar(20), @UserID int output as if(@UserName>5) select @UserID=COUNT(*) from UserAccount where UserID>25 else set @UserID=1000 go -------------执行上面的存储过程---------------- exec GetUserAccountRe '7',null
解释:@UserName为输入参数,@UserID为输出参数。 运行结果为@userID为COOUT(*)即
=1。
5.
同时具有返回值、输入参数、输出参数的存储过程
-------------创建名为GetUserAccount的存储过程---------------- create Procedure GetUserAccountRe1 @UserName nchar(20), @UserID int output as if(@UserName>5) select @UserID=COUNT(*) from UserAccount where UserID>25 else set @UserID=1000 return @@rowcount go -------------执行上面的存储过程---------------- exec GetUserAccountRe1 '7',null
结果:@userID为COOUT(*)即
=1,Retun Value=1。
6.同时返回参数和记录集的存储过程
-------------创建名为GetUserAccount的存储过程---------------- create Procedure GetUserAccountRe2 @UserName nchar(20), @UserID int output as if(@UserName>5) select @UserID=COUNT(*) from UserAccount where UserID>25 else set @UserID=1000 select * from UserAccount return @@rowcount go -------------执行上面的存储过程---------------- exec GetUserAccountRe2 '7',null结果:返回执行 select * from UserAccount
这句代码的结果集,同时@userID为COOUT(*)即 =1,Retun Value=9。
7.返回多个记录集的存储过程
-------------创建名为GetUserAccount的存储过程---------------- create Procedure GetUserAccountRe3 as select * from UserAccount select * from UserAccount where UserID>5 go -------------执行上面的存储过程---------------- exec GetUserAccountRe3结果:返回两个结果集,一个为 select * from UserAccount,另一个为 select *from UserAccount where UserID>5
。
相关文章推荐
- Oracle VM + centos7.1+openstack kilo 多结点安装教程---keystone的安装(3)
- Oracle存储过程简介
- Oracle数据库备份脚本
- 安装oracle 11G-----( ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务)的解决方法
- oracle 删除大量数据的方法
- Oracle 表空间调整脚本
- Oracle 调整重做日志(redo)大小
- Oracle 业务表添加时间戳触发器
- Oracle 11g不同情形下的登录分析
- 完全卸载oracle
- Oracle 常用命令-创建表空间
- Oracle 查看表对应注释
- Oracle存储过程的commit和rollback,sqlerrm
- Oracle表空间操作
- Oracle12c连接问题[ORA-28040]
- 在命令行下进行Oracle用户解锁
- Oracle中的插入问题
- oracle函数trunc的使用
- Oracle表压缩技术
- Oracle 中 decode 函数用法