高分求助:Oracle库的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:37:28
ALTER PROCEDURE dbo.GetTopNews
(
@NewsKindID int,
@IntTop int
)
AS
declare @sql varchar(200)
set @sql='select top '+cast(@IntTop as varchar)+' * from News where NewsKindId='+cast(@NewsKindId as varchar)
exec @sql
RETURN

以上是Sql Server的一个存储过程:查询News表中某新闻类别中的前n条记录.
我想求助的是,这个存储过程用Oracle库该怎么写?????还有一个小环节,Oracle中的SQL语句似乎没有像Sql Server中的"top"关键字?!

看看

create or replace procedure GetTopNews
(
NewsKindID number,
IntTop number
)
is
stmt varchar(200):= 'select * from News '||
' where NewsKindId=:1 '||
' and rownum<:2 ';
begin
execute immediate stmt using NewsKindID,IntTop;
end GetTopNews ;

在where里面加rownum<5(你的传入参数是多少就是多少)

where rownum< n

ORACLE中是以ROWNUM来取前N条的