【发布时间】:2014-07-16 11:56:12
【问题描述】:
我有很多函数和存储过程要从 MS SQL 服务器导出到 PostgreSQL
你能帮我实现这个功能并给我 PL/pgSQL for PostgreSQL 中的等效功能吗?
USE [METRICS]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[fnPSR_CtrlNouveauProjet]
(
@InstanceID int,
@Month_Param nvarchar(15)
)
RETURNS nvarchar(2)
AS
BEGIN
DECLARE @ReturnValue NVARCHAR(2), @Max_ID_Token int
DECLARE @Month_Param_Prev nvarchar(15)
SELECT @Month_Param_Prev = CASE WHEN @Month_Param like '%-08' THEN SUBSTRING(CONVERT(VARCHAR(10), DATEADD(MONTH, DATEDIFF(MONTH, 0, '01-'+@Month_Param) - 2, 0), 105),4,10)
ELSE SUBSTRING(CONVERT(VARCHAR(10), DATEADD(MONTH, DATEDIFF(MONTH, 0, '01-'+@Month_Param) - 1, 0), 105),4,10) end
DECLARE @KIS_FileName NVARCHAR(100)
SELECT
@KIS_FileName = KI.KIS_FileName
FROM
PSR_KIS_INSTANCE KI (NOLOCK)
WHERE
KI.ID_Instance = @InstanceID
SELECT @Max_ID_Token = MAX(KI.ID_Token) FROM DBO.PSR_KIS_INSTANCE KI (NOLOCK) WHERE KI.KIS_FileName = @KIS_FileName and KI.Reporting_Month = @Month_Param_Prev
IF (EXISTS(SELECT
KI.ID_Instance
FROM
PSR_KIS_INSTANCE KI (NOLOCK)
WHERE
KI.KIS_FileName = @KIS_FileName
and KI.Reporting_Month = @Month_Param_Prev
and KI.ID_Token = @Max_ID_Token))
BEGIN
SET @ReturnValue = ' '
END
ELSE
BEGIN
SET @ReturnValue = 'N'
END
RETURN @ReturnValue
END
【问题讨论】:
-
你能帮我实现这个功能,并给我在 PL/pgSQL for PostgreSQL 中的等效功能吗?你能先给我钱吗?
-
您至少可以发布一个适当的问题,其中包含表格定义和一些解释以及您尝试过的内容以及软件的确切版本号。
标签: sql-server postgresql tsql plpgsql