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

Откуда:
Сообщений: 2631
Есть Oracle Data Source на оракл в пакете на одном сервере.
Есть установленный Sql Navigator на другом сервере.
Строка подключения у них одинаковая.

В Sql Navigatorе пишу запрос:
select id,my_func(param1,param2)
from table
where id IN
('11847440','11847446','11847459','11847475','11849443')
UNION
SELECT '100/1000',(100/1000) from dual

Результат:
100/1000 .1
11847440 18
11847446 18
11847459 12
11847475 12
11849443 12

Запускаю в SSISe, резултат:
100/1000 0.1
11847440 -6502
11847446 -6502
11847459 -6502
11847475 -6502
11849443 -6502

В чем может быть проблема и как это исправить?
7 окт 09, 15:11    [7753969]     Ответить | Цитировать Сообщить модератору
 Re: SSIS +Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Какой тип данных для второго поля в Sql Navigatorе? Какой провайдер используется?
7 окт 09, 15:30    [7754087]     Ответить | Цитировать Сообщить модератору
 Re: SSIS +Oracle  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Для второго поля - тип данных либо целое, либо дробное.
Провайдер стандартный - OLE DB Provider for Oracle.

Хочу еще добавить, что сначала такую же хрень(-6502) возвращал и SQL Navigator.
Но после выставления в региональных настройках сервера разделителя дробной части в точку и языка в Русский - получил нужный результат.

Но на машине с SSIS это не помогает.
7 окт 09, 15:45    [7754182]     Ответить | Цитировать Сообщить модератору
 Re: SSIS +Oracle  [new]
cargo
Member

Откуда: Москва
Сообщений: 26
гы... -6502 это наверное "ORA-6502 PL/SQL:numeric or value error" :)
7 окт 09, 17:56    [7755047]     Ответить | Цитировать Сообщить модератору
 Re: SSIS +Oracle  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33354
Блог
Аналогичную фигню наблюдал.
Вылечил сменой провайдера (или обновлением, не помню сейчас уже), еще способ с конвертацией: my_func(param1,param2)*1.
7 окт 09, 18:04    [7755106]     Ответить | Цитировать Сообщить модератору
 Re: SSIS +Oracle  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33354
Блог
cargo,

Только у меня точно было не "ORA-6502 PL/SQL:numeric or value error"
т.к. возврщались ну очень большие цифры, столько ошибок в Oracle просто не могли предусмотреть))
7 окт 09, 18:06    [7755125]     Ответить | Цитировать Сообщить модератору
 Re: SSIS +Oracle  [new]
somebody
Member

Откуда: Москва
Сообщений: 708
Попробуйте дополнительно конвертировать через CAST AS NUMBER(n, m) (указав оба n и m!);
и что за my_func, подробнее возвращаемый тип...
8 окт 09, 09:43    [7756834]     Ответить | Цитировать Сообщить модератору
 Re: SSIS +Oracle  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
my_func(param1,param2)*1 - не помогло.
Возвращаемы тип функции -NUMBER.

CAST(my_func(param1,param2) as number(10,7)) - в SQL Navigatore отработала норм.
В SSISе ничего не выдала вообще. Запрос вернул пустую строку.

Видимо,надо провайдер поменять....
8 окт 09, 10:16    [7757007]     Ответить | Цитировать Сообщить модератору
 Re: SSIS +Oracle  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Сменил провайдер на Oracle Provider for OLE DB - все заработало.
Всем спасибо.
8 окт 09, 11:04    [7757320]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить