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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions