Skip to content

Problema a executar querys com WITH para Update Insert #19

@carlosjr

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