SqlServer2005的表值函数如何转换成ORACLE下的函数。急!!!
有如下SQLSERVER 表值函数 转换成ORACLE下的函数如何写?
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE FUNCTION [dbo].[GetTimeSteps](
@StartTime DATETIME, --起始时间
@EndTime DATETIME, --结束时间
@StepUnit INT, --时间单位 0-秒 1-分 2-时 3-日 4-周 5-月
@StepLong INT --时间步长
)
RETURNS @TimeSteps TABLE(
ID INT IDENTITY(1,1),
StartTime DATETIME,
EndTime DATETIME
)
AS
BEGIN
DECLARE @TimePos DATETIME
IF (@StepUnit=0) --秒
BEGIN
SELECT @TimePos=DATEADD(ms,-DATEPART(ms,@StartTime)+@StepLong*1000,@StartTime) --下一个开始时间点
WHILE (@StartTime<@EndTime)
BEGIN
IF (@TimePos>@EndTime)
BEGIN
INSERT INTO @TimeSteps VALUES(@StartTime,@EndTime)
BREAK
END
ELSE
INSERT INTO @TimeSteps VALUES(@StartTime,DATEADD(ms,-3,@TimePos))
SET @StartTime=@TimePos
SET @TimePos=DATEADD(ss,@StepLong,@TimePos)
END
END
(还有些类似没有写了)
RETURN
END