Skip to content

Problema a executar querys com WITH para Update Insert #19

Description

@carlosjr

Ao executar querys com Update Insert (upsert) utilizando WITH para a base do PostgresSql, esta interpretando como consulta devido ao regex abaixo. O postrgre retorna a seguinte mensagem de erro:

org.postgresql.util.PSQLException: Nenhum resultado foi retornado pela consulta.

Segue a query de exemplo:

'WITH upsert AS ( \
UPDATE integracao \
SET api_key = :api_key, \
client_key = :client_key, \
tipo = :tipo, \
discovery_docs = :discovery_docs, \
scopes = :scopes, \
token_autorizacao = :token_auth, \
data_alteracao = now() \
WHERE id = :id AND cnpj_contratante = :cnpj_contratante \
RETURNING *) \
INSERT INTO integracao (api_key, client_key, tipo, discovery_docs, scopes, token_autorizacao, cnpj_contratante, cpf_usuario) \
SELECT :api_key, :client_key, :tipo, :discovery_docs, :scopes, :token_auth, :cnpj_contratante, :cpf_usuario \
WHERE NOT EXISTS (SELECT * FROM upsert)'

if (sql.match(/^SELECT|^\(SELECT|^WITH/i)) {

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions