SQL一个带参数的存储过程写法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL一个带参数的存储过程写法相关的知识,希望对你有一定的参考价值。
CREATE PROCEDURE getnews AS
select top 10 * from yx_news order by news_updateTime DESC
GO
上面是一个查询存储过程没带参数,我想将那个输出10条做为参数,别的程序
调用的时候可以自定义输出条数.
不知道到怎么写.第一次接触不太清楚,希望有大家能帮我下,谢谢
一楼大哥,能不能写清楚点,我没看懂我是新手额,照顾下拉
<%
...数据库连接
Dim
gcSQL
:
gcSQL
=
"getnews
"
Dim
rs
:
Set
rs
=
conn.execute(gcSQL)
if
not
rs.eof
then
...
else
...
end
if
rs.close
%> 参考技术A 这个..呵呵.第一次就提出一个难的..
如果是一般的参数好办些.
CREATE PROC getnews
@num varchar(10)
as
declare @str varchar(200)
set @str='select top '+@num+' from yx_news order by news_update time desc'
exec(@str)
go本回答被提问者采纳 参考技术B 你这个不要用返回参数的形式,直接返回记录集就行了,存储过程就象你这样写,不用作任何改动。然后程序里用
<%
...数据库连接
Dim gcSQL : gcSQL = "getnews "
Dim rs : Set rs = conn.execute(gcSQL)
if not rs.eof then
...
else
...
end if
rs.close
%> 参考技术C 你的这个做法没有意义,一般存储过程主要是针对sql语句执行效率低和数据完整性等来说的,你用这种方法就单单为了查询一个表中的TOP信息,这样与存储过程的有点恰恰相反,因为这个方法实现存储过程中取出你所要的信息,同是也能用同样的方法更简便的从表中取出你要的信息 参考技术D CREATE OR REPLACE PROCEDURE 名字(
DATA IN VARCHAR2
)
IS
v_count NUMBER;
BEGIN
。。。
exception
。。。
end;
oracle 中用啥命令执行一个带参数的存储过程
具体如下:
1、第一步,创建一个新的存储过程,见下图,转到下面的步骤。
2、第二步,完成上述步骤后,修改存储过程。
此存储过程具有一个输入参数(pid)和一个输出参数,即通过用户id查询用户名并返回名称,见下图,转到下面的步骤。
3、第三步,完成上述步骤后,调试存储过程,找到新创建的存储过程,右键单击[test]按钮,见下图,转到下面的步骤。
4、第四步,完成上述步骤后,修改id值,然后单击左上角的“倒三角”按钮以开始调试,见下图,转到下面的步骤。
5、第五步,完成上述步骤后,按[CTRL +
N]进行单步调试,按[CTRL + O]单步调试,按[CTRL + T]退出调试,或者单击调试工具进行调试,见下图,转到下面的步骤。
6、第六步,完成上述步骤后,可以在窗口底部输入变量名称,以观察变量的变化,见下图,转到下面的步骤。
7、第七步,完成上述步骤后,可以查看调试结果,见下图。这样,就解决了这个问题了。
参考技术A如果是命令行,比如SQLplus,可以使用exec procedure_name(参数列表); 就可以执行这个存储过程
如果是SQL 窗口环境,可以直接使用一个匿名块执行
declare
变量声名.....
begin
procedure_name(参数列表);
.........................
end;
在命令窗口下执行
execute proc_name('参数1','参数2') 参考技术D declarevout varchar2(200);
begin
user.procedure('v1','v2'.....'vn','vout');-- 用户名.过程名 v1..vn 为传入参数vout 为输出参数(如果有多个输出,则声明多个并)v1..vout的位子和过程中的参数一一对应)
commit;
end;
以上是关于SQL一个带参数的存储过程写法的主要内容,如果未能解决你的问题,请参考以下文章