Переменная контекста Talend с датой DataType - PullRequest
0 голосов
/ 25 июня 2019

Я уже некоторое время использую переменные контекста Talend; однако сейчас я сталкиваюсь с проблемой, так как никогда раньше не использовал переменную с типом данных Date. У меня есть поле в базе данных с именем my_date , и оно имеет формат "DD-MON-YY" , и я создал переменную контекста с типом данных date: context .CLOSING_MONTH и ниже мой запрос

select  id,due_date

 from my_table

 where trunc(due_date) <  '"+context.CLOSING_MONTH+"' 

однако я получаю следующую ошибку:

java.sql.SQLDataException: ORA-01858: не числовой символ был найден там, где ожидалось число

значение context.CLOSING_MONTH: 2019-07-01 00: 00: 00

Странно то, что если я удалю переменную контекста и введу ее точное значение (жестко ее кодирую), ошибка исчезнет.

Ваша помощь очень ценится!

1 Ответ

0 голосов
/ 25 июня 2019

Можно попробовать:

where  trunc(due_date)<TO_DATE('"+TalendDate.formatDate("dd-MMM-yy", context.CLOSING_MONTH)+"'

Формат даты не совпадает с двух сторон сравнения: 'DD-MON-YY' и 'yyyy-MM-dd HH:mm:ss'.Вам придется даже форматировать, чтобы он работал.

Я не совсем уверен в этом, поскольку проблема может быть в формате due_date, содержащем символы.

В этом случае выВам придется конвертировать 'due_date' в формат, который содержит только числовые символы:

 TO_DATE(to_char(due_date,'DD-MON-YY','NLS_DATE_LANGUAGE = English'),'DD-MON-YY','NLS_DATE_LANGUAGE = English')

Дайте мне знать, если это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...