pgAdmin III записывает файлы с мусором, что приводит к сбою PSQL

pgAdmin III записывает файлы с мусором, что приводит к сбою PSQL

Я столкнулся с дилеммой: мне пришлось запустить несколько psqlконсольных команд, так как коллеге понадобилось использовать директиву psql \iв сохраненном скрипте для выполнения дополнительных SQL-операторов из другого файла. Но я заметил, что psql перегружает эти файлы из-за некоторых лишних символов мусора, которые pgAdmin записывает в них:

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

psqlздесь необходим, поскольку \iне является официальной частью SQL, поэтому он не будет работать, если вы отправите такую ​​команду напрямую интерпретатору базы данных, даже если у него есть способ получить доступ к файлам на локальном диске.

Чтобы не усложнять задачу, я хотел найти способ разрешить редактору SQL PgAdmin нормально работать с Postgres, чтобы мне не пришлось внезапно говорить другим людям на работе, что нужно загрузить и установить другой редактор, чтобы обойти эту проблему; они уже знают и используют pgAdmin.

Похожие вопросы:

решение1

К счастью, есть решение, которое не требует внесения изменений в psql.exe или чего-то подобного.

Если вы покопаетесь в параметрах PgAdmin III (Файл -> Параметры), под заголовком «Инструмент запросов» в разделе «Файл запроса», вы найдете флажок, переключающий опцию «Записывать BOM для файлов UTF».

Параметры PgAdmin III: Инструмент запроса: Запрос файла

После нажатия кнопки OK вы сможете сохранять файлы из PgAdmin, которые работают с упакованной версией psql.exe. Если у вас есть существующие файлы, в которых присутствует таблица UTF BOM, которая мешает psql правильно их читать, вы можете загрузить их из редактора SQL-запросов PgAdmin, а затем просто использовать опцию Save As, чтобы сохранить их на месте. Также должно сработать простое внесение небольших изменений, например добавление строки комментария и выполнение обычного Save (ctrl-S).

Связанный контент