Фабрика данных Azure.Дата поиска в Azure SQL DWH, используется в Oracle Query - PullRequest
1 голос
/ 25 сентября 2019

У меня есть база данных Oracle, и я должен загрузить данные из этой базы данных в Azure SQL DWH.Это делается один раз в день.В начале конвейера я сначала ищу SQL DWH, чтобы найти последнюю дату.В результате получается что-то вроде «2015-10-25».Я хочу использовать эту дату для запроса базы данных Oracle.Но я уже выяснил, попробовав запрос в Oracle, что следующий код не работает:

Select * from Table 1 where day = '2015-10-25'

Дата в столбце дня выглядит как 25-октябрь-15 (DD-MON-YY).

Я проверяю следующее условие where:

where day = TO_DATE('2015-10-25','DD-MON-YY')

Но затем я получаю ошибку: «литерал не соответствует строке формата»

Я действительно не знаю, какчтобы Oracle понимал этот формат даты T-SQL.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Ваш столбец Oracle имеет тип данных date.Когда вы подключаетесь к базе данных Oracle и пишете запрос к этому столбцу даты, вы увидите его формат по умолчанию DD-MON-YY согласно этой ссылке .

Вы можете переопределить этот параметр, запустивALTER SESSION команда, например,

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY MM DD';

, но это только в этом локальном сеансе.Данные по-прежнему хранятся в Oracle таким же образом, и меняется только способ их просмотра.

В фабрике данных Azure (ADF v2) и в вашем примере вы имеете дело со строками.Поэтому вы должны убедиться, что все передаваемые вами параметры имеют правильный формат или установлены на правильный тип данных.Функция Oracle TO_DATE преобразует строки в тип данных date.Поэтому, когда передает строку формата YYYY-MM-DD, то этот формат вы должны использовать, чтобы функция TO_DATE знала, что вы передаете:

TO_DATE('2015-10-25','YYYY-MM-DD')

Затем функция успешно преобразует ваш параметр в date тип даты для правильного сравнения с основным столбцом даты.

0 голосов
/ 26 сентября 2019

Вы можете попробовать этот запрос:

Select * from Table 1 where day = to_char (to_date('2015-10-25','YYYY-MM-DD'), 'DD-Mon-YY')

Ссылка на этот блог: как конвертировать YYYYMMDD в DD-Mon-YYYY в oracle?

Надеюсь, это поможет.

...