powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема с датой/временем через DB Link на MySQL
2 сообщений из 2, страница 1 из 1
Проблема с датой/временем через DB Link на MySQL
    #39631400
GlooBus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Настроил DB Link в Oracle 12.1 на MySQL (база тикет-системы OTRS).
Пример файла hs/admin/initotrs.ora
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
#
# HS init parameters
#
HS_FDS_CONNECT_INFO=otrs
HS_FDS_TRACE_LEVEL=0
HS_FDS_SHAREABLE_NAME=/usr/lib64/libmyodbc5.so
HS_FDS_SQLLEN_INTERPRETATION=64
HS_NLS_NCHAR=UCS2
HS_LANGUAGE=AMERICAN_AMERICA.UTF8

#
# ODBC specific environment variables
#
set ODBCINI=/etc/odbc.ini

Создаю DB Link:
Код: plsql
1.
2.
3.
4.
CREATE DATABASE LINK REMOTE_OTRS
 CONNECT TO "otrs"
 IDENTIFIED BY "password"
 USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SID = otrs))(HS = OK))';



Запрос к таблице:
Код: plsql
1.
select * from "users"@REMOTE_OTRS


В таблице есть два поля с типом данных DATETIME
В качестве результата вывода, выполняя запрос в PL/SQL Developer, в данном поле я получаю нечто подобное:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
xq
xq#xq(xq"xq
xr4xs0<xs'xt
7xv7xv
  sys.dbms_output.get_lines(lines => Lines, numlines => :NumLines);
  if :NumLines > 0 then :Line0 := Lines(1); end if;
  if :NumLines > 1 then :Line1 := Lines(2); end if;
  if :NumLines > 2 then :Line2 := Lines(3); end if;
  if :NumLines > 3 then :Line3 := Lines(4); end if;
  if :NumLines > 4 then :Line4 := Lines(5); end if;
  if :NumLines > 5 then :Line5 := Lines(6); end if;
  if :NumLines > 6 then :Line6 := Lines(7); end if;
  if :NumLines > 7 then :Line7 := Lines(8); end if;
  if :NumLines > 8 then :Line8 := Lines(9); end if;
  if :NumLines > 9 then :Line9 := Lines(10); end if;
end;

Тот же самый запрос в TOAD нормально возвращает дату/время.

Или же, вот для пример такой запрос:
Код: plsql
1.
2.
select t."create_time", to_char(t."create_time",'YYYY-MM-DD HH24:MI:SS') "create_time_chr"
from "users"@REMOTE_OTRS t


возвращает в PL/SQL Developer как на скриншоте: https://yadi.sk/i/QlxPUQCL3UUkxQ

Не могу понять где копать?
...
Рейтинг: 0 / 0
Проблема с датой/временем через DB Link на MySQL
    #39632210
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GlooBus,
вероятно разные настройки сессии при подключении к ораклу..
включи для начала трассировку в initotrs.ora
обнови версии ODBC, клиента mysql до последних.
что видно при выполнении из sqlplus прямо с сервера?
вообще подобные вещи при коннекте из оракла к майскулю вещь совершенно обыденная, будь готов к длительным танцам с бубнами.
да нужно еще раз внимательно изучить правила конвертирования полей из майскуля в оракл.
и мне обычно помогал подбор подходящих настроек национальных.
вот пример работающей активной связи с майскулем

HS_FDS_CONNECT_INFO = *****
HS_FDS_TRACE_LEVEL = 0
HS_FDS_FETCH_ROWS = 1
HS_FDS_SHAREABLE_NAME = /usr/lib64/libmyodbc5.so
HS_LANGUAGE = AMERICAN_AMERICA.CL8MSWIN1251
HS_FDS_SQLLEN_INTERPRETATION = 32
HS_NLS_DATE_FORMAT = "DD.MM.YYYY HH24:MI:SS"
HS_NLS_DATE_LANGUAGE = AMERICAN
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема с датой/временем через DB Link на MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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