Для теста я создал эту простую работу Talend:
tRowGenerator
генерирует строку со столбцом int и помещает ее во временную базу данных в Postgres.
Проблема возникает всякий раз, когда я запускаю задание. Компонент tDBOutput
думает, что использует соединение с SQL Server, но я знаю, что он использует соединение с базой данных PostgreSQL.
java.sql.SQLException: Column, parameter, or variable #1: Cannot find data type INT4
Если я заменю инициализацию SQL Server на конец предварительного задания, задание завершится успешно.
Однако, если я добавляю компонент SQL Server tDBInput
или tDBOutput
и PostgreSQL инициализируется в начале tPreJob
, они считаются так, как будто они используют соединение PostgreSQL.
Что мне здесь не хватает?
Я нашел проблему.
Ради транзакции я включил Use or register of a shared DB connection
и для SQL-сервера, и для Postgres. Оба использовали одно и то же имя общего соединения с БД.
Как только я дал им другое имя, теперь оно работает независимо от того, кто настроен первым на tPrejob