Шаг ввода таблицы Не заменяет переменные

Я запускаю следующий код на этапе ввода Pentaho Kettle:

SELECT * FROM ${TABELA} WHERE TS_SAMPLETM BETWEEN TO_DATE('${HOJE}', 'DD/MM/YYYY') AND TO_DATE('${SEMANAPASSADA}','DD/MM/YYYY')

Однако, когда я запускаю задание через этот сценарий оболочки:

#!/bin/sh
cd /home/rafael/data-integration/
export HOJE=$(date +"%d/%m/%Y")
export SEMANAPASSADA=$(date -d "7 days ago" +"%d/%m/%Y")
export tabela=tabela1

sh kitchen.sh -file=/home/rafael/data-integration/Job_Oracle_MySql.kjb -param:TABELA=$TABELA -param:HOJE=$HOJE -param:SEMANAPASSADA=$SEMANAPASSADA

Шаг «Ввод таблицы» не заменяет переменные.


person RafaelCampos    schedule 17.12.2015    source источник
comment
Чтобы включить замену переменных, вы должны установить флажок Заменить переменные в скрипте? вариант внизу. Вы пробовали это?   -  person Brian.D.Myers    schedule 18.12.2015
comment
Это проверено. Когда я пытаюсь запустить Spoon и вручную устанавливаю переменные, он работает отлично.   -  person RafaelCampos    schedule 18.12.2015
comment
попробуйте превратить $ {TABELA} в "$ {TABELA}"   -  person Marlon Abeykoon    schedule 18.12.2015


Ответы (1)


Ваша проблема заключается в ошибках в сценарии оболочки, а не в ошибках Pentaho или Table Input Step. Если вы попытаетесь вставить echo перед sh в последней строке, вы увидите выполняемую команду:

echo sh kitchen.sh -file=/home/rafael/data-integration/Job_Oracle_MySql.kjb -param:TABELA=$TABELA -param:HOJE=$HOJE -param:SEMANAPASSADA=$SEMANAPASSADA

Для меня это выводы:

sh kitchen.sh -file = / home / rafael / data-integration / Job_Oracle_MySql.kjb -param: TABELA = -param: HOJE = 18/12/2015 -param: SEMANAPASSADA =

Проблемы в вашем shellscript:

  1. деликатный случай. Заменить $TABELA на $tablea
  2. для меня способ вызова даты неправильный, но это зависит от вашей ОС, которую вы не поставили. Мне нужно написать export SEMANAPASSADA=$(date -v -7d +"%d/%m/%Y")

После этих изменений, когда я запускаю скрипт, он выводит:

sh kitchen.sh -file = / home / rafael / data-integration / Job_Oracle_MySql.kjb -param: TABELA = tabela1 -param: HOJE = 18/12/2015 -param: SEMANAPASSADA = 11/12/2015

что, вероятно, ближе к тому, что вы хотите.

person bolav    schedule 18.12.2015