博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
18.存储过程--SQL
阅读量:7114 次
发布时间:2019-06-28

本文共 1015 字,大约阅读时间需要 3 分钟。

好文要顶:

一、创建、使用存储过程


 Oracle版本:

CREATE PROCEDURE MailingListCount (ListCount OUT INTEGER)ISv_rows INTEGER;BEGINSELECT COUNT(*) INTO v_rowsFROM CustomersWHERE NOT cust_email IS NULL;ListCount := v_rows;END;

分析▼

这个存储过程有一个名为ListCount的参数。此参数从存储过程返回一个值而不是传递一个值给存储过程。关键字OUT用来指示这种行为。
Oracle支持IN(传递值给存储过程)、OUT(从存储过程返回值,如这里)、INOUT(既传递值给存储过程也从存储过程传回值)类型的参
数。存储过程的代码括在BEGIN和END语句中,这里执行一条简单的SELECT语句,它检索具有邮件地址的顾客。然后用检索出的行数设
置ListCount(要传递的输出参数)。

使用:

var ReturnValue NUMBEREXEC MailingListCount(:ReturnValue);SELECT ReturnValue;

分析▼

这段代码声明了一个变量来保存存储过程返回的任何值,然后执行存储过程,再使用SELECT语句显示返回的值。

 

 

SQL Server版本:

CREATE PROCEDURE MailingListCountASDECLARE @cnt INTEGERSELECT @cnt = COUNT(*)FROM CustomersWHERE NOT cust_email IS NULL;RETURN @cnt;

分析▼

此存储过程没有参数。调用程序检索SQL Server的返回代码支持的值。其中用DECLA RE语句声明了一个名为@cnt的局部变量(SQL Server中
所有局部变量名都以@起头);然后在SELECT语句中使用这个变量,让它包含COUNT()函数返回的值;最后,用RETURN @cnt语句将计数返
回给调用程序。

调用:

DECLARE @ReturnValue INTEXECUTE @ReturnValue=MailingListCount;SELECT @ReturnValue;

 

转载于:https://www.cnblogs.com/lbonet/p/7592022.html

你可能感兴趣的文章
Java Scoket之java.io.EOFException解决方案
查看>>
Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…
查看>>
Android应用程序启动过程源代码分析(5)
查看>>
Linux桌面版横评:八、中标普华桌面Linux 3.0.1
查看>>
让UpdatePanel支持文件上传(5):支持页面重定向的HttpModule
查看>>
Java线程:新特征-阻塞栈
查看>>
CentOS 5.5升级内核到2.6.35.4
查看>>
查询整个数据库中某个特定值所在的表和字段的方法
查看>>
JS把数组中相同元素组合成一个新的数组问题
查看>>
《Linux内核设计与实现》读书笔记(三)- Linux的进程
查看>>
AngularJS快速入门指南08:表格
查看>>
C++矩阵运算库推荐
查看>>
在存储过程中编写正确的事务处理代码(SQL Server 2000 & 2005)
查看>>
Android 控件在布局中按比例放置[转]
查看>>
内核通知链 学习笔记 【转】
查看>>
Input Method of Win32 System
查看>>
count(*) VS count(X)
查看>>
MS ASP.Net Ajax 服务端扩展
查看>>
android102 查询,插入联系人
查看>>
数据库邮件
查看>>