powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle 9, 10, 11 и datetime2 в MSSQL 2014
9 сообщений из 9, страница 1 из 1
Oracle 9, 10, 11 и datetime2 в MSSQL 2014
    #39760931
luigi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Есть несколько серверов Oracle 9i, 10g, 11g (x64) под Win.
Рядом крутится ПО, использующее в качестве СУБД MSSQL 2000.
Со стороны Oracle настроены линки (9i - HS, 10 & 11 - TG), идет забор данных.

Одно из полей в таблице MSSQL имело тип datetime.
После обновления версии ПО и сервера (до MSSQL 2014) тип поля изменился на datetime2.
Древние системы 9 и 10 видят это поле как varchar2(27) и продолжают работать как раньше, данные идут.
А вот 11 версия видит его как date и попытки запроса заканчиваются каждый раз по-разному: от возврата пустого набора, до обрыва сессии.

У кого есть опыт работы с этим типом данных, посоветуйте что делать.

ЗЫ Пока настроил забор данных в 11 через view на 10-ке. Временно.
На стороне MSSQL изменить ничего не могу.
Все "работающие" версии 9 и 10 - 32-битные, 11 - 64 бита.
...
Рейтинг: 0 / 0
Oracle 9, 10, 11 и datetime2 в MSSQL 2014
    #39760952
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
luigi,

не расчитывать на неявное преобразование даты, а перестроить view с явным преобразованием типа.
Чуток подумать и написать скрипт, который пробежится по словарям и выполнит автоматическое преобразование
всех объектов содержащих timestamp2
...
Рейтинг: 0 / 0
Oracle 9, 10, 11 и datetime2 в MSSQL 2014
    #39761053
luigi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin,

luigiЗЫ Пока настроил забор данных в 11 через view на 10-ке . Временно.
На стороне MSSQL изменить ничего не могу.

Вадим, разверни мысль - о каком view идет речь?

Может дело в разрядности TG, если такие древние версии как 9i работают....
Под 11g есть TG 32-битный?
...
Рейтинг: 0 / 0
Oracle 9, 10, 11 и datetime2 в MSSQL 2014
    #39761072
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На SQL Server:

Код: plsql
1.
2.
create table test(dt datetime2)
insert into test values(sysdatetime())



Oracle:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> select  version
  2    from  v$instance
  3  /

VERSION
-----------------
10.2.0.5.0

SQL> select  *
  2    from  test@webrpt
  3  /

dt
------------------------------------------------------
2019-01-17 09:35:55.0916028

SQL> 



SY.
...
Рейтинг: 0 / 0
Oracle 9, 10, 11 и datetime2 в MSSQL 2014
    #39761074
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс, прочитал по-диагонали:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> create table test
  2    as
  3      select  *
  4        from  test@webrpt
  5  /

Table created.

SQL> desc test
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 dt                                                 NVARCHAR2(27)

SQL> 



Тоже самое и в 12.2.0.1.0.

SY.
...
Рейтинг: 0 / 0
Oracle 9, 10, 11 и datetime2 в MSSQL 2014
    #39761078
luigi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

ОС на Oraclе'ах 10 и 12 какая? Линки через что настроены?
У меня же и на 9.2.0.8 (х86) такая же картина. А вот на 11.2.0.4 (х64) - нет.
...
Рейтинг: 0 / 0
Oracle 9, 10, 11 и datetime2 в MSSQL 2014
    #39761084
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня 11G видит datetime2 как NVARCHAR2(27):

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SQL> select  version
  2    from  v$instance
  3  /

VERSION
-----------------
11.2.0.3.0

SQL> create table test
  2    as
  3      select  *
  4        from  test@webrpt
  5  /

Table created.

SQL> desc test
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 dt                                                 NVARCHAR2(27)

SQL> 



SY.
...
Рейтинг: 0 / 0
Oracle 9, 10, 11 и datetime2 в MSSQL 2014
    #39761085
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
luigi,

Вместо того, чтобы оращатся напрямую с testtable@link
создаете view
типа

Код: plsql
1.
2.
3.
4.
5.
6.
create view link_testable as select 

...
, CAST(tm2field AS TIMESTAMP WITH TIME ZONE) as tm2field
...
from  testtable@link;
...
Рейтинг: 0 / 0
Oracle 9, 10, 11 и datetime2 в MSSQL 2014
    #39761088
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
luigi,

ну или
Код: plsql
1.
2.
3.
...
,to_char(tm2filed,'DD-MM-YYYY HH24:MI:SS.FF:TZH TZM','AMERICA') as tm2filed
...



Точную форматную маску можно посмотреть сделав select на старых версиях, чтобы не переделывать существующие приложения под новые условия
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle 9, 10, 11 и datetime2 в MSSQL 2014
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]