2017-01-31 19 views
0

У меня есть таблица с полем запроса, содержащая select sql и другое поле «parameters», содержащее параметры sql. Я объединил эти два поля в новое поле, содержащее правильный select sql statement. Теперь мне нужно выполнить это новое поле, содержащее select sql, получить возврат из select (выходные поля) и создать файл excel.Как запустить инструкцию sql в поле в Pentaho?

ответ

1

Используйте Table-Input, если вас интересует набор результатов запроса. Table-Input поддерживает параметры SQL, поэтому вам не нужно самостоятельно создавать инструкцию. Replace-In-String и отключение по экранам на вашем пути. Кроме того, есть переменная замена, на всякий случай, если вы не можете жить с одним шаблоном.

Обновление 21:14 GMT

Я не очень люблю, как вы пытаетесь подготовить ЗЕЬЕСТ, но здесь мы идем, предполагая, что это одно заявление, которое мы имеем:

Создать задание с записью «Старт» и 2 «Записи трансформации» (T1, T2). Пусть T1 создает поле, содержащее инструкцию SELECT, и использует шаг Set-Variables, чтобы сделать оператор доступным для T2 как переменную SELECT. В T2 используйте шаг «Таблица-Вход», ссылающийся на $ {SELECT} в текстовой области оператора SQL. Не забудьте включить параметр «Заменить переменные в скрипте».

Отныне это вопрос вкуса. Я бы предпочел создать файл CSV, используя Text-File-Output. Используя правый разделитель полей, Excel откроет файл после двойного щелчка по нему. Преимущество Text-File-Output состоит в том, что вам необязательно указывать поля, которые вы не знаете во время разработки. Пустой список полей будет обрабатывать только все входящие поля. Сопоставим с общей проекцией в Table-Input, которая создаст необходимые поля из извлеченных столбцов вниз по течению.

Если вы должны подготовить книгу Excel, вам нужно будет learn about metadata injection. Тем не менее, это будет отдельный проект для новичка. В папке установки чайника есть образцы. И есть очень active community, если вы попали в беду.

+0

Marabu, моя таблица имеет поле «запрос», содержащее «select * from table», а другое поле «параметры», содержащее «где cdclient = 12345». Я создал новое поле под названием «Sql», содержащее конкатенацию полей «query» + «parameters» (формирование Select Select Sql Statement). Теперь я хочу выполнить это поле «Sql», получить возврат из select (выходные поля) и создать файл excel. –

+0

В чем же ваша проблема? Как преобразовать поле в переменную Kettle, чтобы вы могли использовать его с Table-Input? Как справиться с общей проекцией и полями, неизвестными во время разработки? Или как создать книгу Excel из набора рядов чайников? Пожалуйста, помоги мне, я потерян. – marabu

+0

marabu, Извините! Может быть, это недостаточно ясно, потому что я до сих пор не очень хорошо знаю Чайник, но вижу, что вы меня постепенно понимаете. У меня есть вкладка таблицы с полем с выражением Select внутри. Как выполнить оператор Select в поле и получить результат выбора? Я использую ввод таблицы, чтобы получить поле таблицы, и я должен использовать вывод Excel для генерации файла excel. Я пытаюсь использовать SQL-скрипт Execute row или Dynamic SQL, но я не уверен, как его использовать, и я также не знаю, какой компонент я должен использовать. –