Xpoint
   [напомнить пароль]

MSSQL2000: Как прочитать текстовый файл, что бы заголовок был вида F1,F2,F...?

Метки: [без меток]
2007-04-03 10:30:29 [обр] Top manager(0/2)[досье]

MSSQL2000: Как прочитать текстовый файл, что бы заголовок был вида F1,F2,F...?
Что бы при чтении, первая строка не считалась заголовком, а была как очередная строка.
Файл содержит данные вида:

T,2007-03-15
ALMATY, 80156136,50
TARAZ,86048131,10

Есть такой вариант кода:

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source="C:\TEMP\";Extended properties=Text')...[sbrep#txt]

Но получается

2007-03-15F3T
8015613650ALMATY
8604813110TARAZ

А нужно что-то типа этого:

F1F2F3
2007-03-15T
8015613650ALMATY
8604813110TARAZ
спустя 16 минут [обр] Top manager(0/2)[досье]

Нашел кое-что:

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source="C:\TEMP\";Extended properties="Text;HDR=NO"')...[sbrep#txt]

Но теперь у меня таблица такого вида:

F1F2F3
TNULLNULL
ALMATY8015613650
TARAZ8604813110

В первой строке (не заголовке) сторой колонки, стоит NULL, а должно быть 2007-03-15

спустя 1 час 36 минут [обр] Кирилл [Kirk] Королев(121/673)[досье]
Текстовый файл? Почему не BULK INSERT тогда?
спустя 32 минуты [обр] Top manager(0/2)[досье]

Кирилл [Kirk] Королев[досье] потому что конечная таблица имеет вид

Date smalldatetime      PK
LocationKey varchar(50)      PK
Material varchar(50)      PK
Quantity int
RecUser varchar(50)

При BULK INSERT, кажись не возможно будет, вставить значение поля RecUser. При BULK INSERT все поля вставятся, а RecUser будет пустым. Это проблема если данные вставляют более одного юзера.

спустя 2 часа 32 минуты [обр] Кирилл [Kirk] Королев(121/673)[досье]
Такого рода импорт всегда должен происходить через вспомогательную таблицу. Временную или постоянную - неважно.
Powered by POEM™ Engine Copyright © 2002-2005