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

Responder a