цитирование
ющийэтот примерУ меня возникли проблемы с использованием переменных PostgreSQL в * .sql сценарии:
Я хочу перебрать несколько файлов данных XML, используя скрипт BASH
скрипт BASH назначает имена файлов XML переменной, которая передается в скрипт SQL
SQL-скрипт, вызываемый этим BASH-скриптом, загружает эти данные в PostgreSQL
Если я получу файлы XML напрямую, проблем не будет; Однако я не могу получить доступ к этой переменной в моем сценарии SQL:
В моем сценарии SQL (hmdb.sql
) Я могу получить доступ к переменной PSQL:bash_var
(передано из скрипта BASH):
\echo '\nEXTERNAL VARIABLE (= "datafile", HERE):' :bash_var '\n'
и / или напрямую ссылаться на файл XML,
datafile text := 'hmdb/hmdb.xml';
но не как переменная:
datafile text := 'bash_var';
hmdb.sh
#!/bin/bash
DATA_DIR=data/
for file in $DATA_DIR/*.xml
do
bash_var=$(echo ${file##*/})
echo $bash_var
psql -d hmdb -v bash_var=$bash_var -f hmdb.sql
done