Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Reutilização de parâmetros em uma PreparedStatement

Bom dia!

Tenho uma dúvida sobre o uso de parâmetros no PreparedStatement. Supondo que eu tenha algo do tipo:

INSERT INTO PRODUTO(NOME,DESCRICAO,CODIGO,CODIGO_CURTO) VALUES (nome,descricao,codigo,SUBSTR(codigo,1,3))

Ou seja, eu quero cadastrar em CODIGO o codigo completo que tem, digamos, 10 caracteres e em CODIGO_CURTO apenas os 3 primeiros.

Há alguma forma de se repetir um parâmetro, ou necessariamente eu tenho que não só repetir o parâmetro como também prestar atenção na ordem, pois muitas vezes ao se passar queries de consulta para otimização, os DBAs/DAs acabam trocando a ordem dos itens na cláusula WHERE para melhor utilização de índices ou até por convenção da empresa entre outras razões.

TIA,

WB::

1 resposta
solução!

Olá Wilson. No caso do JDBC e do preparedStatement, a inserção dos parâmetros ocorrem na ordem que foi definida, por exemplo:

stmt.setString(1, obj.getNome());
stmt.setString(2, obj.getDescricao());
stmt.setString(3, obj.getCodigo());
stmt.setString(4, obj.getCodigoCurto());

Se a ordem da consulta foi alterada pelo DBA, então o código do preparedStatment também terá quer ser alterado.

Há algumas formas de contornar isso: