I'm trying to port some TSQL to PLPGSQL.  The DB has a table with a
recursive foreign key that represents a tree hierarchy.  I'm trying to
re-create a TSQL function that pulls out all the ancestors of a given
node in the hierarchy.

I'm rather new to PLSQL and I have several questions.

1.  In TSQL, I can assign a scalar to the result of query like so:
  SET @var1 = (SELECT foo FROM bar WHERE [EMAIL PROTECTED])

How would I do this in PLSQL?

2.  In TSQL the "result table" can be inserted into manually.  IE:

CREATE FUNCTION foo () RETURNS @ttable TABLE( uid INTEGER) AS BEGIN 
        INSERT @ttable VALUES (1)
        RETURN
END

Is there a way to manually insert rows into the result table in PLSQL?


What follows is my TSQL function if that helps give context.  

CREATE FUNCTION svp_getparentproviderids (@child_provider INTEGER)
RETURNS @provider_ids TABLE ( uid INTEGER )
AS
BEGIN
    DECLARE @cid AS INTEGER
    IF (SELECT count(*) FROM providers WHERE uid [EMAIL PROTECTED]) > 0
    BEGIN
        SET @cid = @child_provider
        WHILE @cid IS NOT NULL
        BEGIN
            INSERT @provider_ids VALUES (@cid)
            SET @cid = (SELECT parent_id FROM providers WHERE [EMAIL PROTECTED])
        END
    END
    RETURN
END

-- 


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to