Я хочу выполнить набор SQL-запросов на основе выбора, полученных из элементов узла xml в файле XML, и записать значения соответствующих наборов результатов в файл CSV.Я хотел бы уточнить, что ни одно поле SQL-запроса не параметризовано, но сам полный SQL-запрос выглядит так.
Часть получения полного SQL-запроса выполняется, как и ожидалось, но я не знаю, какчтобы перейти к части запуска SQL-запроса, чтобы я мог получить соответствующий набор результатов для управления им позже.
То, что я пробовал до сих пор безуспешно, таково:
Execute SQL script
шаг: в соответствии с тем, что сказано здесь , этот вид шага не получает никакого результата.
Dynamic SQL Row
шаг: Я получаю соответствующий sql, пока я жестко кодирую поле 'TemplateSQL', но я не могу этого сделать, потому что запросы sql, полученные на предыдущем шаге, сильно отличаются друг от друга и не предоставляют фиксированную схему метаданных.
Table Input
шаг: этот шаг позволяет параметризовать только отдельные значения SQL-запроса, а не полный запрос.
I 'Буду очень признателен, если какой-нибудь эксперт по Пентахо-чайнику скажет мнеправильный способ выполнения задачи, которую я хочу сделать.
Обновление (следуя инструкциям @Cristian Curti): Проблема возникает в KTR-1.Когда вы говорите «вы должны передать этот запрос как переменную другому KTR» , я понимаю, что сначала мне нужно установить значение xml-узла в переменной, а затем передать его в KTR-2.Для этого в моем KTR-1 я использую следующие шаги:
Get Data from XML
: я получаю поле 'SQLQuery'. Set Variables
: I 'установив поле 'SQLQuery' в переменной с именем 'QUERY'.(Более того, KTR-1 устанавливается так, как вы сказали, то есть на вкладке «Параметры» я устанавливаю параметр с именем «QUERY»).
Когда я предварительно просматриваю второй шаг KTR-1,Консоль чайника регистрирует следующую ошибку:
Get data from XML.0 - Finished processing (I=2, O=0, R=0, W=2, U=0, E=0)
Set variables.0 - Setting environment variables...
Set variables.0 - Set variable QUERY to value [
SELECT "Table1".*, "table2"."field1" FROM "Table1" INNER JOIN "Table2" ON Table1"."PATIENT" = "Table2"."PATIENT" WHERE ("Table1"."field1" > Table1"."field2") AND NOT("field1" BETWEEN 'date1' AND 'date2')
]
Set variables.0 - ERROR (version 8.2.0.0-342, build 8.2.0.0-342 from 2018-1-14 10.30.55 by buildguy) : Unexpected error
Set variables.0 - ERROR (version 8.2.0.0-342, build 8.2.0.0-342 from 2018-1-14 10.30.55 by buildguy) : org.pentaho.di.core.exception.KettleStepException:
Set variables.0 - Only 1 input row was expected to set the variables and at least 2 were received.
Кажется, Set Variables
шаг ожидает получить только одну строку.Я не знаю, делаю ли я что-то неправильно или что-то упускаю.В случае, если вам нужны дополнительные детали, просто скажите мне.Спасибо.