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

Откуда:
Сообщений: 605
Недавно попросили перетащить данные из старой FoxPro БД в MSSQL. Скажу вам то еще удовольствие. Ничего уже толком с этим старьем не работает.

В начале логично стал использовать SSIS. Однако, толи OLEDB провайдер для FoxPro дурит, толи SSIS с этим провайдером не умеет нормально работать, переводить numeric без ошибок не получается.
Так чтобы было понятно, в FoxPro numeric(5,2) может быть число 77777.77 , а в MSSQL 777.77.
И если значение выходить за рамки MSSQL диапозона, то SSIS вставляет туда "-".
Доводка пакета руками не помогла.

Решил через связанный сервер, но и тут не все так очевидно.
ODBC пришло отмести сразу из-за драйверов.
Взял виртуалку на 32бита и поставил OLEDB драйвер.
В результате все равно ничего нормально не работало за исключением одного извращения типа:
SELECT * FROM 
OPENQUERY(FOX, 'SELECT id, CAST(ctotal as varchar(50)) FROM accountdetail') 

где FOX - связанный сервер на dbf файлы.

Может кому пригодиться.
10 янв 13, 07:31    [13744709]     Ответить | Цитировать Сообщить модератору
 Re: импорт FoxPro в MS SQL  [new]
gang
Member

Откуда:
Сообщений: 1394
Idol_111,
1) Ну типы в разных СУБД вовсе не обязаны идентично совпадать. Конкретно для вашего примера чем не подошел сиквельный float?
2) А какие например числа выходили "за рамки MSSQL диапозона" (кстати какой диапазон имеется в виду?).
3) SSIS кстати напрямую из источника в получателя не конвертит значения. Сначала источник в свой формат (vbs или .net-овский точно не помню), а затем уже из него в sql-ный. Может у вас уже на 1 этапе была проблема? Тогда можно его попробовать "пропустить" читая исходные данные как строковые.
10 янв 13, 10:08    [13745201]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить