Thread: transport Procedural and Function from MS SQL Enterprise Manage to PostgreSQL

transport Procedural and Function from MS SQL Enterprise Manage to PostgreSQL

From
"XIE, Rong"
Date:
hallo,

I have PostgreSQL in Linux. I use it with pgAdminII in Wondows2000.
how can I transport Procedural and Function from MS SQL Enterprise Manage to
PostgreSQL.
Thanks!!!
rong


CREATE FUNCTION dbo.getICNroh (@Bogen_Nr smallint)
RETURNS smallint AS
BEGIN
    DECLARE @myRet int
--Rohwert der Skala 1 (ICN) ermitteln
    DECLARE @step01a smallint
    DECLARE @step02a smallint

    DECLARE @step01b smallint
    DECLARE @step02b smallint

    SELECT @step01a = Antwort FROM PAI_ANTWORTEN WHERE ITEM_NR = 75 AND
Bogen_Nr = @Bogen_Nr
    SELECT @step01b = Antwort FROM PAI_ANTWORTEN WHERE ITEM_NR = 115 AND
Bogen_Nr = @Bogen_Nr

    SELECT @step02a = Antwort FROM PAI_ANTWORTEN WHERE ITEM_NR = 4 AND
Bogen_Nr = @Bogen_Nr
    SELECT @step02b = Antwort FROM PAI_ANTWORTEN WHERE ITEM_NR = 44 AND
Bogen_Nr = @Bogen_Nr


    SELECT @myRet = ABS(@Step01a - @step01b)
              + ABS(@Step02a - @step02b)

--Wert zurückgeben
    RETURN @myRet
END






CREATE PROCEDURE sp_PAI_Werte
    @Bogen_Nr int
 AS


create table #tmpPAI_Rohwerte (Skala_Nr smallint primary key, Rohwert
smallint)

--Rohwerte ermitteln (außer Skala 1 ICN)
INSERT into #tmpPAI_Rohwerte
SELECT dbo.PAI_SKALEN.Skala_Nr, sum((CONVERT(tinyint,
                      dbo.PAI_ANTWORTEN.Antwort) + dbo.PAI_KEYcalc.toAdd) *
dbo.PAI_KEYcalc.Faktor) AS Rohwert
FROM dbo.PAI_SKALEN INNER JOIN
                      dbo.PAI_ITEMinSKALA ON dbo.PAI_SKALEN.Skala_Nr =
dbo.PAI_ITEMinSKALA.Skala_Nr INNER JOIN
                      dbo.PAI_ITEMS ON dbo.PAI_ITEMinSKALA.Item_Nr =
dbo.PAI_ITEMS.Item_Nr INNER JOIN
                      dbo.PAI_ANTWORTEN ON dbo.PAI_ITEMS.Item_Nr =
dbo.PAI_ANTWORTEN.Item_Nr INNER JOIN
                      dbo.PAI_KEYcalc ON dbo.PAI_ITEMinSKALA.keyDir =
dbo.PAI_KEYcalc.keyDir
WHERE (dbo.PAI_ANTWORTEN.Antwort <> ' ') and PAI_Antworten.Bogen_Nr =
@Bogen_Nr
GROUP BY dbo.PAI_SKALEN.Skala_Nr

--ICN Rohwert einfügen
IF EXISTS(SELECT * from #tmpPAI_Rohwerte WHERE Skala_Nr = 1)
    UPDATE #tmpPAI_Rohwerte SET Rohwert = dbo.getICNroh(@Bogen_Nr) WHERE
Skala_Nr = 1
ELSE
    INSERT INTO #tmpPAI_Rohwerte (Skala_Nr, Rohwert)
VALUES(1,dbo.getICNroh(@Bogen_Nr))

--T-Werte bereitstellen
SELECT dbo.PAI_SKALEN.Skala_Nr, dbo.PAI_SKALEN.Kuerzel_D AS Kuerzel,
dbo.PAI_SKALEN.Label_D AS Label, #tmpPAI_Rohwerte.rohwert as rohwert,
                      ROUND(50 + (#tmpPAI_Rohwerte.rohwert -
dbo.PAI_SKALEN.M) *10 / dbo.PAI_SKALEN.SD, 0) AS TWert
FROM dbo.PAI_SKALEN LEFT OUTER JOIN
                      #tmpPAI_Rohwerte ON dbo.PAI_SKALEN.Skala_Nr =
#tmpPAI_Rohwerte.skala_nr
GO