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.
A minha string sql está assim
INSERT INTO tab (c1,c2,c3) VALUES (v1,v2,v3) RETURNING id
so queria obter esse returning.
[quote=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.[/quote]
O que voce quer retornar (v1,v2 ou v3), por favor explique???
[quote=josue carrecon][quote=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.[/quote]
O que voce quer retornar (v1,v2 ou v3), por favor explique???[/quote]
Quero retornar o id, que está após o RETURNING na string.
pq vc não usa esse comando?
SELECT CURRVAL(
pg_get_serial_sequence('nome_tabela','nome_coluna_do_id'));
isso só vai funcionar se sua coluna onde contem o id tiver uma sequence, ou for do tipo serial…
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!
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…
Sério kra?
A consulta ta certinha, putz, num sei o que ta acontecendo!
como chama sua tabela e seu campo do tipo serial?
pmlm
#15
[quote=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![/quote]
E isso não será porque estás a executar antes de inserir os dados?
você tem q executar Após o comando INSERT.
SELECT CURRVAL( pg_get_serial_sequence('tab_empresa','id_empresa') );
aauahuahuaa
perfeito rapaz, é isso msm!
Deu certo!
[code]INSERT INTO tab_empresa (nm_fantasia) VALUES (‘GUJ’);
SELECT CURRVAL(pg_get_serial_sequence(‘tab_empresa’,‘id_empresa’)) ;[/code]
Obrigados aos dois que me ajudaram!
Abraços!
blz cara =]…
o q precisar, to ae tentando ajudar rsrs…
abrcs