#bash #shell #csv #psql
#bash #оболочка #csv #psql
Вопрос:
Я пытаюсь запустить запрос posgresql из скрипта bash и вернуть результат в виде файла csv в стандартный вывод. Я могу сделать это либо с помощью флага —csv, либо СКОПИРОВАТЬ В стандартный ВЫВОД С ЗАГОЛОВКОМ CSV без каких-либо проблем. Проблема возникает, когда я хочу ввести некоторые переменные, используя флаг -v. и это дает мне ошибку
ERROR: syntax error at or near ":"
LINE 5: WHERE b.regulator_id = ANY(string_to_array(:ids,' ')::varch...
Команда, которую я запускаю,
psql -U rs --csv -v ids="$(echo $deleted)" -c "COPY (
SELECT b.regulator_id, b.name
FROM branch b
WHERE b.regulator_id = ANY(string_to_array(:ids,' ')::varchar[])
GROUP BY b.regulator_id ) TO STDOUT" db
Каков был бы правильный способ вернуть результат запроса psql в виде csv и в стандартный вывод?
Комментарии:
1. Зачем вам нужен $(echo $deleted)? Вы не можете просто использовать «$deleted»
2. У меня это было раньше, но я просто менял вещи в надежде, что один из них сработает.
3. Я только что вернул его обратно в «$ deleted», но все та же ошибка
4. Что на самом деле находится в удаленной переменной?
5. Это список чисел, например 661060 557986 598185 524077 630420. Строка должна быть конкретной