On Jan 25, 2008 9:09 PM, claudiofrk <[EMAIL PROTECTED]> wrote:
> CREATE PROCEDURE spTabela // store procedure SQLServer
> @tabela varchar(30)
> as
> begin
> declare @sql varchar(2000)
> set @sql = 'select * from ' + @tabela
> exec(@sql)
> end
A maneira mais facil provavelmente e' usando cursores:
CREATE OR REPLACE FUNCTION spTabela(tab varchar, meucursor refcursor)
RETURNS SETOF refcursor AS $$
BEGIN
OPEN meucursor FOR EXECUTE 'SELECT * FROM ' || tab;
RETURN NEXT meucursor;
END;
$$ language 'plpgsql';
E para usar isso, da sua aplicacao cliente:
BEGIN; -- *Precisa* estar numa transacao
SELECT * FROM spTabela('minhatabela', 'algumnome');
FETCH ALL FROM algumnome;
COMMIT;
Veja a documentacao do commando FETCH:
http://www.postgresql.org/docs/8.2/interactive/sql-fetch.html
-Roberto
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral