Oracle: Читаем данные из гетерогенных источников

Тема довольно заезженная, но все равно мало кто дочитывает документацию по конфигурированию Heterogeneous Services (HS).

Исходные данные:

  1. есть база Oracle
  2. есть источник данных который надо читать из Oracle, источник данных - dbf файлы, XLS файлы 🙂 , MSSql, MySql, FB/IB и т.д.
  3. есть поднятый HS

Многие сразу сталкиваются с проблемой - Oracle Oracle видит только целую часть дробного числа. ...И начинается изобретение колеса:

  • select column_name * 1000 from table_name@dblink_name;
    И потом уже в при работе делят данные на 1000. 1000 - взято для примера, встречается и большая разрядность
  • создают функцию которая делает тоже самое что и в предыдущем варианте
  • создают view c запросом из первого варианта

Можеть быть есть и другие варианты, но зачем так сложно? Ведь можно один раз настроить (причем очень быстро) и не делать себе голову - "тут надо умножить на ...надцать, а вот здесь не забыть на ...надцать разделить".

HS_LANGUAGE = language[_territory.character_set] The territory clause specifies the conventions for day and week numbering, default date format, decimal character and group separator, and ISO and local currency symbols.
HS_NLS_NUMERIC_CHARACTER - Specifies the characters to use as the group separator and the decimal character. The group separator separates integer groups (such as thousands, millions, and billions). The decimal character separates the integer portion of a number from the decimal portion.

Всего делов - указать в конфиге параметр, его значение и не заморачиваться с умножить/разделить.

p.s. Для примера - ссылка для 10.2
Oracle® Database Heterogeneous Connectivity Administrator's Guide "A Heterogeneous Services Initialization Parameters"

2 Комментарии

  1. Кирилл

    прежде всего хорошенько подумайте, нужны ли вам гетерогенные источники. Готовы ли вы раз в 2 недели убивать повесившиеся коннекты (если гетерогенные источники используют джобы), переконнекчиваться по несколько раз к ораклу, т.к. он говорит что представлений пользователя почему-то не существует.

    В целом технология приемлемая, но не без непонятных глюков

    1. Max (Автор записи)

      Кирилл, вопрос не про выбор технологии, в любой технологии есть свои плюсы и минусы. Вопрос идет про изобретение велосипеда — большинству проще потратить время и изобрести велосипед, чем потратить время и сделать как надо.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *