Необходимо экспортировать одну таблицу SQL Server размером 150 ГБ в несколько плоских файлов с разделителями каналов.

Необходимо экспортировать одну таблицу SQL Server размером 150 ГБ в несколько плоских файлов с разделителями каналов.

В таблице всего 2 столбца, ПК uniqueidentifier not null и text null

Выполняется запрос set rowcount BCP, где уникальный идентификатор больше, чем но таблица обновляется, а порядок изменений PK отсутствует.

Просто ищу способ быстро сбросить эту большую таблицу, чтобы они могли импортировать в Oracle через загрузчик SQL.

Нет, мы не хотим использовать SSIS по разным причинам.


person SQLSQL    schedule 27.10.2014    source источник
comment
Размер из-за текстового столбца или из-за количества строк?   -  person Spevy    schedule 27.10.2014
comment
700 000 строк, уникальный идентификатор — это GUID, текст — это XML-данные, ограниченный опыт работы с SSIS, а SSIS заключает скобки вокруг GUID, а BCP — нет, я могу экспортировать в несколько файлов с разделителями канала BCP, где GUID › чем, но порядок GUID меняется, и мне нужно тот же скрипт для Test и PROD, я боюсь, что могу пропустить или продублировать строку, делая это таким образом   -  person SQLSQL    schedule 27.10.2014


Ответы (1)


Учитывая, что количество строк относительно управляемо, я бы рекомендовал сначала записать ваши уникальные идентификаторы во временную таблицу и назначить столбец с номером строки, используя выбор, аналогичный приведенному ниже:

SELECT ROW_NUMBER() OVER(ORDER BY uniqueidentifier ASC) AS RowNumber, uniqueidentifier 
FROM table

Затем вы можете соединить свою временную таблицу с вашими фактическими данными и иметь диапазон номеров строк, по которым можно фильтровать пакеты bcp.

person Spevy    schedule 27.10.2014