oq vc fala tem sentido porem no pgadmin para eu receber o conjunto de registro 
preciso de dois comandos:
SELECT reffunc('funccursor');
FETCH ALL IN funccursor;


levando em conta que a funcao ja esteja criada:

CREATE or replace FUNCTION reffunc(refcursor) RETURNS refcursor AS '
BEGIN
    OPEN $1 FOR SELECT * FROM teste;
    RETURN $1;
END;
' LANGUAGE plpgsql;

e a tabela tambem:

drop table teste
CREATE TABLE teste (col text,col1 text);
INSERT INTO teste VALUES ('123','4321');


claro que este exemplo esta bem simples, apenas para nivel de teste, mas minha 
functions sao bem mais completas algumas com amis de 100 linhas e funcionam no 
pgadmin, vc sabe ria fazer com que os dois comando sejam executados pelo 
jaava???
SELECT reffunc('funccursor');
FETCH ALL IN funccursor;


---------- Início da mensagem original -----------

      De: [EMAIL PROTECTED]
    Para: [email protected]
      Cc:
    Data: Thu, 26 Jan 2006 16:37:51 -0300
 Assunto: Re: [PostgreSQL-Brasil] JDBC - refcursor

> Em 26/01/06, Joªo Borges Claudino Junior<[EMAIL PROTECTED]> escreveu:
> > pessoal nao estou conseguindo funcionar chamadas de function com paramentro 
> > refcursor e retorno tambem refcursor:
> > Segui fazendo conforme descrito no manual:
> >             conn.setAutoCommit(false);
> >             // Chamada do procedimento.
> >             CallableStatement proc = conn.prepareCall("{ ? = call reffunc ( 
> > ? ) }");
> >             //proc.registerOutParameter(2,  
> > org.postgresql.jdbc2.optional.PGObjectFactory );
> >
> >             //oi erro acontece aqui...
> >             proc.registerOutParameter("asdasd", Types.OTHER);
> >             proc.setInt(2, -1);
> >             proc.execute();
> >             ResultSet results = (ResultSet) proc.getObject(1);
> >
> >
>
> Como diz a mensagem esse método não foi implementado ainda.
> Se a função retorna um conjunto de registros você pode fazer uma query
> normal, tipo select * from myfunc() e receber o resultado dela num
> ResultSet JDBC sem problema.
>
>
> >
> > Este método não foi implementado ainda.
> > org.postgresql.util.PSQLException: Este método não foi implementado ainda.
> >         at org.postgresql.Driver.notImplemented(Driver.java:413)
> >         at 
> > org.postgresql.jdbc3.AbstractJdbc3Statement.registerOutParameter(AbstractJdbc3Statement.java:339)
> >         at Cube.Conexao.ConsultaProcedure(Conexao.java:189)
> >         at Cube.Conexao.main(Conexao.java:105)
> >
> >
> >
> >
> >
> > minha function:
> > CREATE OR REPLACE FUNCTION public.reffunc(refcursor)
> >   RETURNS refcursor AS
> > '
> > BEGIN
> >     OPEN $1 FOR SELECT * FROM teste;
> >     RETURN $1;
> > END;
> > '
> >   LANGUAGE 'plpgsql' VOLATILE;
> >
> >
> >
> >  alguem sabe, sera que exite alguma atualizaçao do driver,ja fiz toda a 
> > migracao do oracle para o postgres, tenho experiencia em java, nunca tinha 
> > usado function do postgres, algume pode me ajudar???
> >
> > _______________________________________________
> > Grupo de Usuários do PostgreSQL no Brasil
> > http://www.postgresql.org.br
> >
>
>
> --
> Nabucodonosor Coutinho
> PostgreSQL Brasil - www.postgresql.org.br
> Detran-CE - www.detran.ce.gov.br
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> http://www.postgresql.org.br
>

dae galera............================~~~~~~~~~~~~

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a