Снежинка Ключевое слово METADATA $ FILENAME не работает в снегу sql (Unix cmd), но работает в пользовательском интерфейсе снежинки - PullRequest
0 голосов
/ 28 марта 2020

Код снежинки

Работа в пользовательском интерфейсе

копировать в DWR_NA.GTR_STG.BASE_REF_CSV_STG (FILE_NM, ROW_NM, CSV_CONTENT, LOAD_STATUS) из (выберите METADATA $ FILNAME как , METADATA $ FILE_ROW_NUMBER как ROW_NM, $ 1 как CSV_CONTENT, 'P' как LOAD_STATUS FROM @ DWR_NA.GTR_STG.INT_REF_CSV_UNIX_STG)

Та же команда не работает в Unix снег sql

снег sql - c SF_DWR_connection -d $ SFDB -q «скопировать в DWR_NA.GTR_STG.BASE_REF_CSV_STG (FILE_NM, ROW_NM, CSV_CONTENT, LOAD_STATUS) из (выберите МЕТАДАННЫХ $ FILENAME как FILE_NM, МЕТАДАННЫХ $ FILE_ROW_NUMBER как ROW_NM , $ 1 как CSV_CONTENT, 'P' как LOAD_STATUS FROM @ DWR_NA.GTR_STG.INT_REF_CSV_UNIX_STG); "

Сообщение об ошибке 000904 (42000): SQL ошибка компиляции: строка ошибки 1 в позиции 104 неверный идентификатор 'METADATA'

Я пробовал выше sql с внутренним и внешним этапом, но не работает.

Пожалуйста, предложите.

1 Ответ

0 голосов
/ 28 марта 2020

Это просто экранирование символов $ в двойных кавычках. Вам нужно написать их как "\ $", поэтому, пожалуйста, попробуйте это:

snowsql -c SF_DWR_connection -d $SFDB -q "copy into
 DWR_NA.GTR_STG.BASE_REF_CSV_STG 
(FILE_NM,ROW_NM, CSV_CONTENT,LOAD_STATUS) from 
(select METADATA\$FILENAME as FILE_NM, 
METADATA\$FILE_ROW_NUMBER as ROW_NM, \$1 as CSV_CONTENT, 
'P' as LOAD_STATUS FROM @DWR_NA.GTR_STG.INT_REF_CSV_UNIX_STG);"
...