PSQL выполнить хранимую функцию и сохранить результат в переменной - PullRequest
0 голосов
/ 21 ноября 2018

Мне нужно выполнить функцию sql и сохранить результат

#!/bin/bash  
RESULT=`psql -A -t postgresql://user:password@localhost:5432/db -c "select main.return_anything();" db`
echo $RESULT

И ожидать, что результат будет содержать 1.

Но я получаю результат

psql: warning: extra command-line argument "select main.return_anything();" ignored
psql: warning: extra command-line argument "db" ignored

И это просто чего-то ждет и не дает никакого результата.В чем проблема?

1 Ответ

0 голосов
/ 21 ноября 2018

Из psql manual :

psql [option...] [dbname [username]]

Итак, сначала параметры, затем, необязательно, имя_базы, а затем, необязательно, имя пользователя.

Попробуйте это:

RESULT=$(psql -A -t -c "select main.return_anything();" postgresql://user:password@localhost:5432/db db)

Примечание: отступы `устарели.Используйте $(...), который выглядит чище и допускает вложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...