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;

参考技术B exec procedure_name(params);行吗? 写在plsql块中,如果有返回值可以自己定义变量接收。 参考技术C

在命令窗口下执行

execute proc_name('参数1','参数2')

参考技术D declare
vout varchar2(200);
begin
user.procedure('v1','v2'.....'vn','vout');-- 用户名.过程名 v1..vn 为传入参数vout 为输出参数(如果有多个输出,则声明多个并)v1..vout的位子和过程中的参数一一对应)
commit;
end;

以上是关于SQL一个带参数的存储过程写法的主要内容,如果未能解决你的问题,请参考以下文章

sql 存储过程输入参数个数不定的写法

SQL Server 如何执行 带参数的 存储过程

sql server 存储过程如何调用存储过程

带参数的存储过程

带参数的存储过程

调用SQL的存储过程时怎样输入时间类型的参数