3

Я столкнулся с дилеммой необходимости запуска некоторых команд консоли 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 ответ1

2

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

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

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

Как только вы нажмете OK, вы сможете сохранить файлы из PgAdmin, которые работают с упакованной версией psql.exe. Если у вас есть файлы, в которых присутствовала таблица спецификации UTF, которая не позволяла psql правильно их читать, вы можете загрузить их из редактора SQL-запросов PgAdmin, а затем просто использовать опцию Сохранить как, чтобы сохранить их на месте. Это также должно работать, чтобы просто внести небольшое изменение, например добавить строку комментария и сделать обычное сохранение (Ctrl-S).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .