Recursive SETOF function

Поиск
Список
Период
Сортировка
От Richard Rowell
Тема Recursive SETOF function
Дата
Msg-id 1101136693.18148.66.camel@richard
обсуждение исходный текст
Ответы Re: Recursive SETOF function
Список pgsql-sql
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
bar.uid=@var2)

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 =@child_provider) > 0   BEGINSET @cid =
@child_providerWHILE@cid IS NOT NULLBEGIN    INSERT @provider_ids VALUES (@cid)    SET @cid = (SELECT parent_id FROM
providersWHERE uid=@cid)END   END   RETURN
 
END

-- 



В списке pgsql-sql по дате отправления:

Предыдущее
От: "Passynkov, Vadim"
Дата:
Сообщение: Re: get sequence value of insert command
Следующее
От: "Passynkov, Vadim"
Дата:
Сообщение: Missing SELECT INTO ... DEFAULT VALUES in plpgsql for composite t ypes