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

Откуда:
Сообщений: 21
Задача такая.
Несколько раз в день необходимо импортировать dbf'ки в базу SQL.
Прежде чем данные попадут в таблицу их необходимо тщательно проверить.
На данный момент используется такая схема:
1. Из LinkedServer данные импортируются в буферные таблицы MS SQL как есть
2. Курсором данные проверяются и вставляются в основные таблицы.
3. Данные которые не прошли проверку остаются в буферной таблице с отметкой 'FAILED' и причинами по которым так случилось.

Хотелось бы знать можно ли использовать эффективную схему импорта и проверки данных без курсора.
Кто как делает ?

Спасибо.
30 сен 04, 14:24    [1000032]     Ответить | Цитировать Сообщить модератору
 Re: Импорт и проверка данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
Хотелось бы знать можно ли использовать эффективную схему импорта и проверки данных без курсора.
Ну так не используйте курсор. Используйте запросы.
30 сен 04, 14:49    [1000057]     Ответить | Цитировать Сообщить модератору
 Re: Импорт и проверка данных  [new]
Alex Zdraste
Member

Откуда:
Сообщений: 21
автор
Ну так не используйте курсор. Используйте запросы


Дело в том что буферные таблицы дублируют структуру дбф файлов и все типы полей.
Основные таблицы имеют несколько отличную структуру и типы.
В курсоре проводится проверка типов данных, исходные данные преобразуются к основному формату.
Как мне в запросах выловить все исключения которые могут вызывать исходные данные в типах ?
Тут по всей видимости лучше курсора не найдешь.

))) ловлю себя на том что сам себя убеждаю )))
30 сен 04, 15:07    [1000084]     Ответить | Цитировать Сообщить модератору
 Re: Импорт и проверка данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
В курсоре проводится проверка типов данных, исходные данные преобразуются к основному формату.
И что, эти проверки настолько сложны, что их нельзя оформить в виде запросов ?

Как мне в запросах выловить все исключения которые могут вызывать исходные данные в типах ?
Запрос подразумевает лишь массовую обработку всех записей. А логика определения того, что является ошибкой а что не является, должна исходить от вас.
30 сен 04, 16:49    [1000202]     Ответить | Цитировать Сообщить модератору
 Re: Импорт и проверка данных  [new]
Pi
Member

Откуда:
Сообщений: 278
Я в текущем проекте делаю чуть по-другому.
Все записи заталкиваются с пометкой NEW в специальном поле.
Каждая проверка - их несколько, - помечает некорректные записи как InCorrect в этом же поле (и в другом поле - причину отклонения).
Все процуедуры работают только с NEW.
Затем отдельная процедура запихивает записи куда надо, и помечает успешно вставленные как Imported.
Записи остается в буферной таблице.

Но - при последней операции я все равно использую курсор, правда, это под Oracle.
30 сен 04, 20:31    [1000659]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить