SQL-скрипт выполнения строки не может прочитать файл.sql. Я получаю эту ошибку
2018/02/01 11:20:00 - Выполнить строку SQL script.0 - Мы не можем найти поле [C:\Users\abc\Documents\xyz\query\record.sql] во входном потоке!
Мои шаги включают в себя -
- получить переменные - ввод
- Выполнить строку SQL-сценарий - где я пытаюсь прочитать мой файл запроса
- вывод текстового файла
В сценарии выполнения строки SQL я дал C: \ Users \ abc \ Documents \ xyz \ query \ record.sql в поле имени SQL.
РЕДАКТИРОВАТЬ
Поясняю, я хочу, чтобы задание считывало запрос (из файлов) и выдавало текстовый вывод сам по себе (запустил и вывел результат запроса select).
2 ответа
Я копирую / вставляю объяснение из документов двух параметров конфигурации из шага " Выполнить строку сценария SQL":
Имя поля SQL: поле, которое содержит SQL для выполнения или дополнительно указывает путь к файлу, который содержит SQL для выполнения
а также
Чтение SQL из файла. Если этот флажок установлен, параметр имени поля SQL указывает файл, содержащий SQL для выполнения, в противном случае параметр имени поля SQL указывает фактический SQL для выполнения. (Доступно с 5.0)
Таким образом, вы не можете указать путь к файлу в опции имени поля SQL, но вы можете указать поле из потока, которое содержит путь к файлу до требуемого sql. В противном случае вы должны определить в этой опции поле, содержащее текст sql.
Надеюсь, поможет.
РЕДАКТИРОВАТЬ 1
Поскольку вам нужно выполнить запрос выбора из файла, я бы порекомендовал шаг Dynamic SQL row
, так же как на следующем изображении.
Я думаю, что это сделает работу.
РЕДАКТИРОВАТЬ 2
Следующее просто выполняет динамическое выполнение sql. Во-первых, вам нужно загрузить sql запросы в поток. После этого задание будет выполнено для каждого sql. В этом задании устанавливается переменная, содержащая запрос sql, и затем выполняется преобразование. Это преобразование в основном является Input Table
шаг, который динамически заполняет поле sql предыдущей переменной набора sql.
Теперь я думаю, что это то, что вы ищете. Надеюсь, поможет.
Чтобы прочитать таблицу SQL, используйте шаг Table input
и скопируйте и вставьте запрос в большую текстовую область.
Обратите внимание, что если у вас нет сложного объединения в вашем запросе, вам редко приходится импортировать сценарии SQL благодаря очень удобному Get SQL Statement
кнопка.
Начните с оператора выбора без параметров. Как только это сработает, замените переменные на $ {variable} и отметьте галочкой Replace variable in script
флажок (Предупредите, что существуют некоторые ограничения из-за подготовленного оператора SQL Java, например, у вас может не быть переменной в имени таблицы).
Если вы хотите получить скрипт из файла, сначала прочитайте файл с Table input
в столбце и выберите этот столбец в Insert data from step
из Table input
,
Если у вас все еще есть переменные параметры в вашем файле, либо в названии таблиц, из которых вы выбираете, то используйте Modified Javascript
или Regex evaluator
или любой другой шаг для замены переменных их значением и передачи полученного сценария SQL в таблицу через Insert data from step
,
Если у вас есть файл file.sql для чтения, не забудьте проверить Execute for each row
кнопка.
Надеюсь это поможет.