Проблема с получением данных из ошибки связанного сервера в SQL - PullRequest
0 голосов
/ 28 мая 2020

Я работаю в SQL, и у меня есть несколько таблиц в базе данных Oracle, из которых мне нужно получать данные, поэтому я делаю это через связанный сервер. Если я опускаю фильтр даты, запрос работает нормально, но если я применяю фильтр даты, он прерывается.

Этот запрос работает нормально.

select * from openquery([ORCL], 'select sls_value, retailer_cd, tery_cd, inv_dt
from Toc_cust_second_sls_new where cust_cd IN ( ''1-ZUT42P'' )') secSls --- This query works fine

Этот запрос прерывается

select * from openquery([ORCL], 'select sls_value, retailer_cd, tery_cd, inv_dt from Toc_cust_second_sls_new where cust_cd IN ( ''1-ZUT42P'' )
and to_date(inv_dt, ''dd/mm/yyyy'') between to_date(''01/05/2020'', ''dd/mm/yyyy'') and to_date(''31/05/2020'', ''dd/mm/yyyy'')') secSls

Я получаю эту ошибку.

Поставщик OLE DB «OraOLEDB. Oracle» для связанного сервера «ORCL» вернул сообщение «ORA-01861: литерал не соответствует строке формата».

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

select * from openquery([ORCL], 'select sls_value, retailer_cd, tery_cd, inv_dt, inv_no, cust_cd from Toc_cust_second_sls_new 
where cust_cd IN ( ''1-ZUT42P'' )') secSls
where convert(date,secSls.inv_dt, 101) >= '2020-05-01' and convert(date,secSls.inv_dt, 101) <= '2020-05-31'

Но проблема в приведенном выше запросе заключается в том, что он сначала получает все данные из oracle, а затем фильтрует поэтому существуют сотни, если тысячи записей, что требует много времени.

1 Ответ

0 голосов
/ 29 мая 2020

Я решил это.

Я удалил преобразование inv_dt в oracle, так как его тип данных уже был Date, попытка его повторного преобразования создавала проблему.

select * from openquery([ORCL], 'select sls_value, retailer_cd, tery_cd, inv_dt from Toc_cust_second_sls_new where cust_cd IN ( ''1-ZUT42P'' ) and inv_dt between to_date(''01/05/2020'', ''dd/mm/yyyy'') and to_date(''31/05/2020'',''dd/mm/yyyy'')') secSls

Это запрос теперь работает. Спасибо, ребята, которые помогли мне в разделе комментариев.

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