Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Теряется дробная часть в DTS пакете  [new]
YarmakIN
Member

Откуда: Уфа
Сообщений: 321
Доброго времени суток!
В DTS-пакете компонентом "OLE DB Source" делаю запрос к серверу Oracle (пров - Microsoft OLE DB Provider for Oracle). В полученной выборке один столбец имеет тип float. Данную выборку принимает компонент "OLE DB Destination", подключенный к MSSQL2005 (SQL Native client), но указанный столбец уже теряет точку, становясь целым. Если в принимающем компоненте предложить ему создать таблицу назначения самому, то в "рыбе" создаваемой таблицы для данного столбца ставится тип NUMERIC(38, 0). В системе разделитель дробной и целой частей - точка. В чем может быть причина? Кто сталкивался с такой проблемой?
2 ноя 09, 08:54    [7869017]     Ответить | Цитировать Сообщить модератору
 Re: Теряется дробная часть в DTS пакете  [new]
somebody
Member

Откуда: Москва
Сообщений: 708
Проверьте оракловые nls_territory, nls_numeric_characters на клиенте и сервере - от них зависит десятичный разделитель.


автор
В полученной выборке один столбец имеет тип float.

Вообще лучше используйте в запросе к Ораклу явную конвертацию в number с обоими указанными параметрами, наподобие:
SELECT ..., CAST(table.field AS NUMBER(38, 2)) AS ..., ...
2 ноя 09, 14:38    [7871297]     Ответить | Цитировать Сообщить модератору
 Re: Теряется дробная часть в DTS пакете  [new]
YarmakIN
Member

Откуда: Уфа
Сообщений: 321
спасибо! испробую способ :)
2 ноя 09, 15:17    [7871610]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить