Динамический запрос Postgresql в режиме COPY с помощью команды psql - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь получить запрос на обслуживание из psql командной строки Windows с помощью оператора COPY (Windows 2012).Запрос создает запрос на обслуживание в качестве выходного файла.После этого я хочу импортировать запрос на обслуживание (reindex.sql) и выполнить с помощью планировщика.Но я не мог выяснить, почему я не мог выполнить скрипт.Должен быть трюк с запятыми, который я не смог бы решить.

psql -U postgres -c "COPY( SELECT 'REINDEX TABLE "' || schemaname || '"."' || relname || '";'FROM pg_stat_all_tables ORDER BY n_dead_tup DESC)TO 'E:\scripts\maintenance\reindex.sql';"

1 Ответ

0 голосов
/ 25 октября 2018

Использование format():

psql -U postgres -c ^
"COPY ( ^
SELECT format('REINDEX TABLE %s.%s', schemaname, relname) ^
FROM pg_stat_all_tables ^
ORDER BY n_dead_tup DESC) ^
TO 'E:\scripts\maintenance\reindex.sql'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...