Parametro de Saída PostgreSQL

18 respostas
khaue_viana_

Pessoal utilizo PostgreSQL e quero retornar um valor ao realizer um insert. Através

do CallableStatement.registerOutParameter sei que consigo setar um parâmetro.

Mas ao executar gera um exception: Este comando não declara um parâmetro de saída. Utilize {? = chamada…} para declarar um.

Como que declaro esse parâmetro de saída na minha string SQL?

Obs: Não utilizo Stored Procedure.

18 Respostas

khaue_viana_

pergunta dificil? :frowning:

khaue_viana_

A minha string sql está assim

INSERT INTO tab (c1,c2,c3) VALUES (v1,v2,v3) RETURNING id

so queria obter esse returning.

khaue_viana_

alguem por aqui?

josue_carrecon

khaue_viana_@hotmail.com:
A minha string sql está assim

INSERT INTO tab (c1,c2,c3) VALUES (v1,v2,v3) RETURNING id

so queria obter esse returning.

O que voce quer retornar (v1,v2 ou v3), por favor explique???

khaue_viana_

josue carrecon:
khaue_viana_@hotmail.com:
A minha string sql está assim

INSERT INTO tab (c1,c2,c3) VALUES (v1,v2,v3) RETURNING id

so queria obter esse returning.

O que voce quer retornar (v1,v2 ou v3), por favor explique???

Quero retornar o id, que está após o RETURNING na string.

khaue_viana_

Alguém para me ajudar?

duduribeiro

pq vc não usa esse comando?

SELECT CURRVAL( pg_get_serial_sequence('nome_tabela','nome_coluna_do_id'));

duduribeiro

isso só vai funcionar se sua coluna onde contem o id tiver uma sequence, ou for do tipo serial…

khaue_viana_

Pq quando executo até no próprio POSTGRESQL

E minha coluna é do tipo Serial

aparece isso:

ERRO: valor atual da sequência “tab_empresa_id_empresa_seq” ainda não foi definido nesta sessão

Ajuda!

duduribeiro

Aqui rodou normal. Tenho uma tabela chamada teste com uma coluna do tipo serial chamada id.
Executei o seguinte comando:

SELECT CURRVAL( pg_get_serial_sequence('teste','id') ); e me retornou o id certinho…

khaue_viana_

Sério kra?

A consulta ta certinha, putz, num sei o que ta acontecendo!

duduribeiro

como chama sua tabela e seu campo do tipo serial?

khaue_viana_

tab_empresa e id_empresa

pmlm

khaue_viana_@hotmail.com:
Pq quando executo até no próprio POSTGRESQL

E minha coluna é do tipo Serial

aparece isso:

ERRO: valor atual da sequência “tab_empresa_id_empresa_seq” ainda não foi definido nesta sessão

Ajuda!


E isso não será porque estás a executar antes de inserir os dados?

duduribeiro

você tem q executar Após o comando INSERT.

SELECT CURRVAL( pg_get_serial_sequence('tab_empresa','id_empresa') );
khaue_viana_

aauahuahuaa

perfeito rapaz, é isso msm!

Deu certo! :D

INSERT INTO tab_empresa (nm_fantasia) VALUES ('GUJ');

SELECT CURRVAL(pg_get_serial_sequence('tab_empresa','id_empresa')) ;
khaue_viana_

Obrigados aos dois que me ajudaram!

Abraços!

duduribeiro

blz cara =]…

o q precisar, to ae tentando ajudar rsrs…
abrcs

Criado 14 de fevereiro de 2011
Ultima resposta 15 de fev. de 2011
Respostas 18
Participantes 4