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