Я пытаюсь запустить параметризованные запросы из сценария оболочки, и мне нужно предоставить параметры.
Я пытаюсь выполнить команду:
bq --location=US query --use_legacy_sql=False \
--parameter='gender::M' \
--parameter='states:ARRAY<STRING>:["WA", "WI", "WV", "WY"]' \
'SELECT name, sum(number) as count
FROM `bigquery-public-data.usa_names.usa_1910_2013`
WHERE gender = @gender
AND state IN UNNEST(@states)
GROUP BY name
ORDER BY count DESC
LIMIT 10;'
Если вы копируете / вставляете как в оболочке, это работает.
Вот что я пытаюсь запустить:
В файле script.sh
runQuery(){
states="'$1'"
bq --location=US query --use_legacy_sql=False --parameter='gender::M' --parameter=$states \
'SELECT name, sum(number) as count
FROM `bigquery-public-data.usa_names.usa_1910_2013`
WHERE gender = @gender
AND state IN UNNEST(@states)
GROUP BY name
ORDER BY count DESC
LIMIT 10;'
}
runQuery 'states:ARRAY<STRING>:["WA", "WI", "WV", "WY"]'
Но это не работает.
Вот журнал ошибок:
Я почти уверен, что это связано с тем фактом, что параметр имеет как одинарные, так и двойные кавычки, а в некоторых точках происходит ошибка при обработке 'состояний: ARRAY: ["WA", "WI", "WV", "WY"] ' но я просто не могу найти, как это решить.
Заранее спасибо!