O pgAdmin III grava arquivos com lixo, o que faz com que o PSQL falhe

O pgAdmin III grava arquivos com lixo, o que faz com que o PSQL falhe

Eu encontrei o dilema de precisar executar alguns psqlcomandos do console porque um colega precisava usar \ia diretiva do psql em um script salvo para executar instruções SQL adicionais de outro arquivo, mas notei que o psql estava engasgado com esses arquivos por causa de alguns caracteres extras de lixo que pgAdmin estava escrevendo para eles:

psql:C:/tmp/junk.sql:3: ERROR:  syntax error at or near "CREATE"
LINE 1: CREATE TABLE junktable (

psqlé necessário aqui porque \inão é uma parte oficial do SQL, portanto não será executado se você enviar um comando como esse diretamente ao intérprete do banco de dados, mesmo que haja uma maneira de acessar os arquivos em seu disco local.

Para manter as coisas simples, eu queria encontrar uma maneira de permitir que o editor sql do PgAdmin funcionasse bem com o Postgres, para que não estou dizendo de repente a outras pessoas no trabalho para baixar e instalar outro editor apenas para contornar isso; eles já conhecem e usam o pgAdmin.

Perguntas relacionadas:

Responder1

Felizmente, existe uma solução que não requer alterações no psql.exe ou algo parecido.

Se você vasculhar as opções do PgAdmin III (Arquivo -> Opções), sob o título "Ferramenta de consulta" em "Arquivo de consulta", encontrará uma opção de alternância da caixa de seleção para "Escrever BOM para arquivos UTF".

Opções do PgAdmin III: Ferramenta de consulta: Arquivo de consulta

Depois de clicar em OK, você poderá salvar os arquivos do PgAdmin que funcionam com a versão empacotada do psql.exe. Se você tiver arquivos existentes que tinham a tabela UTF BOM presente, o que impedia o psql de lê-los corretamente, você pode carregá-los do editor de consulta SQL do PgAdmin e então usar a opção Salvar como para salvá-los no lugar. Também deve funcionar apenas fazer uma pequena alteração, como adicionar uma linha de comentário e salvar regularmente (ctrl-S).

informação relacionada