2015-02-16 7 views
0

Я создал преобразование, которое включает в себя ввод таблицы, шаг sql и шаг excel o/p. 1) вход Таблица -> Выполнить запрос и получить поле «запрос», который включает в себя SQL-запросВыполнение SQL-шага в pentaho

«выберите * от двойного»

2) Выполнение шага SQL -> Динамически передавая это поле запроса, используя '?' и разрешающая переменная замена 3) Excel o/p-Ожидание o/p - это запрос sql, который должен быть вызван и получить результат в excel o/p

Но я не могу получить fiels от выполнения sql-шага. Как я могу это сделать ???

Благодаря Kavitha S

+0

Можете ли вы прикрепить ktr? так что мы можем проверить, в чем проблема. –

ответ

0

В PDI, "Выполнить SQL шаг" не предназначена для генерации строк. Он не добавит лишней строки в поток данных. У вас есть шаг ввода таблицы для создания нескольких строк.

Что вы можете попробовать в качестве альтернативы - разбить трансформацию на две части.

Часть 1: Таблица ввода Шаг> (строки запроса генерируется) >> Использование «Установка переменных» или «копировать строки в результате» некоторые другие шаги, чтобы установить запрос в некоторой переменной: например query.

Часть 2: Возьмем другой входной таблицы Шаг (в следующем .ktr файл) и использовать переменную замену ${query} >> Наконец выход результирующего набора на выходе первенствовать.

Для динамически запросов sql вы можете прочитать это blog.


В случае, если у вас есть какие-то Lookups делать с запросом сгенерирована, вы можете использовать Dynamic SQL row для генерации строк.

Надеется, что это помогает :)

0

Использование Database join вместо Execute SQL step. Шаг Database Join позволяет запускать запрос к базе данных с использованием данных, полученных с предыдущих шагов.

  • Database joinInput: Вы можете передавать любые данные, которые Вы хотите от предыдущего шага, используя ? обозначения в SQL запросе, определенный в шаге.
  • Database joinВыход: Выполняет параметризованный SQL-запрос и добавляет новые параметры в качестве вывода.

Шаг - это то, что вам нужно для вашего второго шага. Узнайте больше о Database join step in the documentation.

Смежные вопросы