| From: | "Darvin Zuch" <darvin(dot)zuch(at)autoprofile(dot)com> | 
|---|---|
| To: | <pgsql-general(at)postgreSQL(dot)org> | 
| Subject: | Advice on Transfering functions from MS-MSSQL Server | 
| Date: | 1999-10-29 20:26:59 | 
| Message-ID: | 000401bf224b$f47f2c90$10dba8c0@zuchdarvinjava.aprofile.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
Good Morning!
I've looked at the pgSQL docs but I'd like to get advice from someone thats
been "through the fire".
I'm attempting to move some code off of MS-SQL Server onto PostgreSQL.  Most
of my MS code is written in Microsofts T-SQL Functions.  I use a lot of
variables as well as Server-side cursors and temporary tables.    Does this
need to be done in C or pg tcl or PL/pgSQL or am I better doing this sort of
thing on the client side.  (thought I do need to protect the code as it is
proprietary)
Thanks in advance for any advice, below is a MS-SQL Function that is
simialar to the ones I need to transfer (with table & column names changed)
Darvin Zuch
mailto:darvin(dot)zuch(at)autoprofile(dot)com
CREATE PROCEDURE in_veBOXXERDecode @DINIV char(17), @DIROLOC int  AS
DECLARE @TDText varchar(30), @ENIGNEText varchar(30), @DOBText varchar(30),
@TransText varchar(30), @SRSText varchar(30), @ModelText varchar(30),
@TSERText varchar(30), @GBRAText varchar(30), @GVWRText varchar(30),
@Braketext varchar(30), @LEUFText varchar(30),  @HPText varchar(30),
@TypeText varchar(30), @MIRTText varchar(30), @DesignText  varchar(30),
@EARText char(4), @KAMText varchar(30),  @TDID int, @ENIGNEID int, @DOBID
int, @TransID int, @SRSID int,  @ModelID int, @TSERID int, @GBRAID int,
@GVWRID int, @BrakeID int, @LEUFID int,  @HPID int, @TypeID int, @MIRTID
int, @DesignID int, @EARID char(1), @KAMID int,  @nTDID int,@nENIGNEID
int,@nDOBID int,@nTransID int,@nSRSID int, @nModelID int,@nTSERID
int,@nGBRAID int,@nGVWRID int,@nBrakeID int,@nLEUFID int, @nHPID
int,@nTypeID int,@nMIRTID int,@nDesignID int, @TGDCount tinyint, @TGDQty
tinyint, @OriginID int
SELECT @TGDCount = 0
SELECT @KAMID=IM.KAMID, @KAMText=KAM.KAMText, @EARID=IM.EARID,
@EARText=EAR.EARText, @OriginID = Origin.OriginID
  FROM IM, KAM, EAR, Origin
  WHERE IM.IMValue = SUBSTRING(@DINIV,1,3) AND
	IM.EARID = SUBSTRING(@DINIV,10,1) AND
	KAM.KAMID = IM.KAMID AND
	EAR.EARID = IM.EARID AND
	Origin.HCSID = IM.HCSID AND
	Origin.OriginValue = SUBSTRING(@DINIV,11,1)
DECLARE in_vdDecodeBOXXER CURSOR FOR
SELECT VDS.TDID, VDS.ENIGNEID, VDS.DOBID, VDS.TransID, VDS.SRSID,
VDS.ModelID, VDS.TSERID, VDS.GBRAID, VDS.GVWRID, VDS.BrakeID, VDS.LEUFID,
VDS.HPID, VDS.TypeID, VDS.MIRTID, VDS.DesignID
  FROM VDS, TGD, PYTXTGD, HCS, IM
  WHERE VDS.HCSID = HCS.HCSID AND
	VDS.TGDID = TGD.TGDID AND
	VDS.VDSVALUE = SUBSTRING(@DINIV, TGD.START, TGD.LENGTH) and
	TGD.TGDID = PYTXTGD.TGDID AND
  	PYTXTGD.PYTXID = HCS.PYTXID AND
	HCS.HCSID = IM.HCSID AND
	IM.IMVALUE = SUBSTRING(@DINIV, 1,3) AND
	IM.EARID = SUBSTRING(@DINIV, 10,1)
OPEN in_vdDecodeBOXXER
FETCH in_vdDecodeBOXXER INTO @TDID, @ENIGNEID, @DOBID, @TransID, @SRSID,
@ModelID, @TSERID, @GBRAID, @GVWRID, @BrakeID, @LEUFID, @HPID, @TypeID,
@MIRTID, @DesignID
WHILE @@FETCH_STATUS = 0
  BEGIN
  SELECT @TGDCount = @TGDCount + 1
  SELECT @nTDID=Coalesce(@TDID,@nTDID),
         @nENIGNEID=Coalesce(@ENIGNEID,@nENIGNEID),
         @nDOBID=Coalesce(@DOBID,@nDOBID),
         @nTransID=Coalesce(@TransID,@nTransID),
         @nSRSID=Coalesce(@SRSID,@nSRSID),
         @nModelID=Coalesce(@ModelID,@nModelID),
         @nTSERID=Coalesce(@TSERID,@nTSERID),
         @nGBRAID=Coalesce(@GBRAID,@nGBRAID),
         @nGVWRID=Coalesce(@GVWRID,@nGVWRID),
@nBrakeID=Coalesce(@BrakeID,@nBrakeID),
         @nLEUFID=Coalesce(@LEUFID,@nLEUFID),
         @nHPID=Coalesce(@HPID,@nHPID),
         @nTypeID=Coalesce(@TypeID,@nTypeID),
         @nMIRTID=Coalesce(@MIRTID,@nMIRTID),
         @nDesignID=Coalesce(@DesignID,@nDesignID)
  FETCH in_vdDecodeBOXXER INTO @TDID, @ENIGNEID, @DOBID, @TransID, @SRSID,
@ModelID, @TSERID, @GBRAID, @GVWRID, @BrakeID, @LEUFID, @HPID, @TypeID,
@MIRTID, @DesignID
  END
CLOSE in_vdDecodeBOXXER
DEALLOCATE in_vdDecodeBOXXER
IF EXISTS (SELECT DINIV FROM BOXXER WHERE DINIV = @DINIV)
  UPDATE BOXXER
    SET TDID = @nTDID, ENIGNEID = @nENIGNEID, DOBID = @nDOBID,
	  TransID = @nTransID, SRSID = @nSRSID, ModelID = @nModelID,
          TSERID = @nTSERID, GBRAID = @nGBRAID, GVWRID = @nGVWRID,
	  BrakeID = @nBrakeID, LEUFID = @nLEUFID, HPID = @nHPID, TypeID = @nTypeID,
          DesignID = @nDesignID, KAMID = @KAMID, EARID= @EARID, DIROLOC =
@DIROLOC,
	  OriginID = @OriginID
    WHERE DINIV = @DINIV
ELSE
  INSERT INTO BOXXER
      ( DINIV, EARID, KAMID, ModelID, SRSID, TDID, ENIGNEID, DOBID, TransID,
TSERID, GBRAID, GVWRID, BrakeID, LEUFID, HPID, TypeID, DesignID, DIROLOC,
OriginID)
    VALUES
      (@DINIV,
@EARID,@KAMID,@nModelID,@nSRSID,@nTDID,@nENIGNEID,@nDOBID,@nTransID,@nTSERID
,@nGBRAID,@nGVWRID,@nBrakeID,@nLEUFID,@nHPID,@nTypeID,@nDesignID, @DIROLOC,
@OriginID)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Martin Weinberg | 1999-10-29 21:50:21 | drop view seems to have made database unusable . . help! | 
| Previous Message | Oren Teich | 1999-10-29 17:29:01 | Stability issues with postgres 6.5 |