Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.12.07;
Скачать: CL | DM;

Вниз

импорт в mssql из файла (почти csv)   Найти похожие ветки 

 
antonn ©   (2014-04-27 16:50) [0]

Не подскажет ли кто программу для импорта данных из текстового файла в базу mssql? что нибудь более вменяемое чем бестолковый мастер импорта в SMS


 
Ega23 ©   (2014-04-27 16:55) [1]

http://msdn.microsoft.com/ru-ru/library/ms188365.aspx
ы?


 
antonn ©   (2014-04-27 17:02) [2]

гуеподобное хочется (ну и, конечно же, таблиц в базе нет, т.е. не просто инсерт выполнить)


 
Inovet ©   (2014-04-27 17:08) [3]

> [2] antonn ©   (27.04.14 17:02)
> ну и, конечно же, таблиц в базе нет

"Конечно же"? Что это за база без таблиц, но что-то же в ней есть, куда можно запихивать эти импортированные данные?


 
antonn ©   (2014-04-27 17:10) [4]


> Inovet ©   (27.04.14 17:08) [3]

ты, конечно же, пользовался мастером импорта в SQL Server Management Studio?


 
Inovet ©   (2014-04-27 17:15) [5]

> [4] antonn ©   (27.04.14 17:10)

Вот я и спрашиваю - куда?


 
antonn ©   (2014-04-27 17:17) [6]


> Вот я и спрашиваю - куда?

в новую таблицу. А ты мне ответишь? :(
даже не знаю что хуже - не открывать SMS и спрашивать, или открывать, побороться с форматами и типами столбцов и тоже спрашивать...


 
DVM ©   (2014-04-27 17:31) [7]


> antonn ©   (27.04.14 16:50) 


> Не подскажет ли кто программу

Delphi


 
Inovet ©   (2014-04-27 17:31) [8]

> [6] antonn ©   (27.04.14 17:17)
> в новую таблицу. А ты мне ответишь?

Что я ответишь? Вот набор у тебя получился, ну и сохрани его в новую таблицу, посмотри как это делается при выборке из обычнымх таблиц.


 
Inovet ©   (2014-04-27 17:40) [9]

> [2] antonn ©   (27.04.14 17:02)
> гуеподобное хочется

Excel хуже SMS?


 
antonn ©   (2014-04-27 17:59) [10]


> Что я ответишь?

я хочу узнать пользовался ли ты импортом через мастер в SMS. Похоже что нет :)


> Вот набор у тебя получился

какой набор?


> Excel хуже SMS?

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


 
Inovet ©   (2014-04-27 18:44) [11]

> [10] antonn ©   (27.04.14 17:59)
> Похоже что нет :)

Не пользовался. Но ты ответь - в чём проблема сделать нормально запросом при известной структуре файла и таблицы?


 
antonn ©   (2014-04-27 18:56) [12]


> Не пользовался. Но ты ответь - в чём проблема сделать нормально
> запросом при известной структуре файла и таблицы?

она не известна, тип столбцов хочется указывать непосредственно при импорте.


 
Вариант   (2014-04-28 07:29) [13]


> antonn ©   (27.04.14 18:56) [12]
>
> > Не пользовался. Но ты ответь - в чём проблема сделать
> нормально
> > запросом при известной структуре файла и таблицы?
>
> она не известна, тип столбцов хочется указывать непосредственно
> при импорте.
>


А чем таки SMS не устраивает?Что мешает задать тип столбца при импорте при помощи SMS?  Или есть какие-то доп. требования к софту импорта?


 
antonn ©   (2014-04-28 12:00) [14]


>А чем таки SMS не устраивает? Что мешает задать тип столбца при импорте при помощи SMS?

да потому что текст в виде "20140412" он упорно хочет занести как date, но при импорте вылезают ошибки что данные будут потеряны (ну и будет null, если импорт вообще не остановится). Указываешь формат как DBDATE - ругается (ошибку точно не помню, но можете повторить), перегенерил весь файл с форматом yyyy-mm-dd, опять ругается что данные могут быть потеряны. я так и не нашел как сделать так, чтобы оно выключило свой АИ и тупо взяло и сделало строковые типы (хотя нужна дата, но плевать, хоть в строках бы импортнуть). Если не ошибаюсь, оно по первым (100 для мастера, 1000макс для 2008 студии) строкам пробегается и пытается интеллектуально выявить их тип самостоятельно.
http://antonn.com/fh/store/b6wuiuqk.png (вот тут если поставить галку convert и выбрать fail - прервется с ошибкой, выставить ignore - выполнится, и импортнет null в столбцах, уберешь галку - не выполнит, а создаст что-то в расписаниии).
Хотелось бы подобный мастер, но чтобы руками "железно" можно было задать тип столбцов исходных и целевых, и с возможностью, например, указывать формат данных если это поможет (для даты, например).


 
Jeer ©   (2014-04-28 12:45) [15]

Т.е. через DDL создать таблицы с нужными полями не судьба?


 
antonn ©   (2014-04-28 12:54) [16]


> Т.е. через DDL создать таблицы с нужными полями не судьба?

нет


 
Inovet ©   (2014-04-28 14:23) [17]

> [14] antonn ©   (28.04.14 12:00)
> но чтобы руками "железно" можно было задать тип столбцов исходных и целевых

Ты же сказал - неизвестна структура. Как тогда возможно задать железно. Задача не имеет решения.


 
Вариант   (2014-04-28 14:41) [18]


> antonn ©   (28.04.14 12:00) [14]

Увы у меня SMS 2005 (2008 не знаю), возможностей в ней поменьше наверняка, но зато при конвертации нерешенных проблем у меня пока почти не возникло. Задать ручками тип данных для столбца входящей или целевой таблицы - не проблема.
Inovet ©   (28.04.14 14:23) [17]
Там визард или "Мастер импорта". Сегодня один файл, завтра другой -  импортнуть данные можно автоматом почти. Мастер пытается интерпретировать  данные сам. Но не всегда правильно угадывает тип (что логично, например при куче форматов для представления даты ). Вот тут и есть возможность сказать ему - а конвертируй ты в вот в такой тип данных.... .


 
Jeer ©   (2014-04-28 14:58) [19]

На так всеми любимом Delphi это пишется за пол-дня :)


 
antonn ©   (2014-04-28 15:10) [20]


> Ты же сказал - неизвестна структура. Как тогда возможно
> задать железно.

может ты хотя бы ознакомишься с темой?
http://antonn.com/fh/store/u84z65by.png


> Вариант   (28.04.14 14:41) [18]
>
>
> > antonn ©   (28.04.14 12:00) [14]
>
> Увы у меня SMS 2005 (2008 не знаю), возможностей в ней поменьше
> наверняка, но зато при конвертации нерешенных проблем у
> меня пока почти не возникло. Задать ручками тип данных для
> столбца входящей или целевой таблицы - не проблема.

вот я выше картинку вложил, в столбце строки с 20140412 или 2014-04-12 (два файла сделал). В любом случае оно пытается сделать тип столбца "date", но не может, похоже, разобрать данные из строк (о чем и ругается с остановкой процесса). Если указываю DT_DBDATE (для поля на скрине), то один фиг не осиливает. А если мне надо все текстом? Вообще не нашел где его "date" можно перекрыть в nvarchar


 
Inovet ©   (2014-04-28 15:23) [21]

> [20] antonn ©   (28.04.14 15:10)
> может ты хотя бы ознакомишься с темой?
> http://antonn.com/fh/store/u84z65by.png

Я это смотрел. Вывод - сруктура известна, интерпретация конкретного поля конкретного формата неправильная, а это уже другое. Ну, допустим, нет возможности кастить в этом мастере как угодно (что тоже сомнительно), но ты ведь можешь менять данные, судя по "с 20140412 или 2014-04-12 (два файла сделал)", логично сделать ещё на пробу 31.12.2014, 12.31.2014 и т.п., чтобы посмотреть, где там мастер путается. Есть же дефолтный формат даты и формат из текущей локали. И вообще посмотреть, что там в хелпе про этот мастер пишут.

Это всё, если без мастера никак/сложно/часто_разное_надо.


 
Вариант   (2014-04-28 15:26) [22]


> antonn ©   (28.04.14 15:10) [20]



> А если мне надо все текстом? Вообще не нашел где его "date"
> можно перекрыть в nvarchar


Не знаю где это  в 2008, в  2005 я для конвертации csv выбирал источник данных "Плоский файл". Уже при выборе файла появляется мастер входящих данных "Общие"  (выбор типов столбцов например для исходной таблицы),"Столбцы","Дополнительно".... Жму кнопку далееедо мастера "Исходные таблицы и представления" Там есть кнопка "изменить", где я и могу поменять уже типы целевой таблицы, причем как в визарде, так и на уровне DDL. Но боюсь в 2008 это может выглядеть все не так. Но думаю такая возможность быть должна, не должны же в MS были сделать хуже, чем было. Просто по другому....


 
antonn ©   (2014-04-28 15:29) [23]


> но ты ведь можешь менять данные

нет, не могу, это я сделал конкретно в своем примере, что потребовало переработки скрипта формирующего список. Мне хочется такой же мастер без АИ, с бОльшими возможностями самостоятельных решений.


> Есть же дефолтный формат даты и формат из текущей локали.
>  И вообще посмотреть, что там в хелпе про этот мастер пишут.
>

локаль тут не причем, есть DT_DBDATE для этих случаев


 
antonn ©   (2014-04-28 15:34) [24]


> Вариант   (28.04.14 15:26) [22]

все так же, там при одном из "далее" надо не промахнуться мимо кнопки редактирования. Но это не поможет если такая таблица уже есть (не даст выбрать целевой формат, в этом случае резонно пробует конвертить данные, и вот тут бы пригодилась возможность самому указать формат входных данных)


 
Вариант   (2014-04-28 15:45) [25]


> antonn ©   (28.04.14 15:34) [24]

При импорте в существующую таблицы уже нельзя менять тип, не поменяв предварительно структуру  существующей таблицы. Поэтому сперва создай новую таблицу, с нужными тебе nvarchar типами, а потом уже конвертируй в нее все что надо. Причем я пробовал и тип с датами и другие типы. В строку конвертируется почти все. Ну или каждый раз надо в новую таблицу конвертировать


 
antonn ©   (2014-04-28 15:47) [26]


> Причем я пробовал и тип с датами и другие типы. В строку
> конвертируется почти все.

а в дату, даже с нуля, не все :(
Error 0xc02020a1: Data Flow Task 1: Data conversion failed. The data conversion for column "date_check" returned status value 2 and status text "The value could not be converted because of a potential loss of data.".
(SQL Server Import and Export Wizard)


 
Inovet ©   (2014-04-28 15:49) [27]

> [24] antonn ©   (28.04.14 15:34)
> Но это не поможет если такая таблица уже есть

Так, теперь уже есть таблицы. В [2] ещё не было.


 
antonn ©   (2014-04-28 15:50) [28]


> Так, теперь уже есть таблицы. В [2] ещё не было.

ты генерируешь шум


 
Inovet ©   (2014-04-28 16:05) [29]

> [28] antonn ©   (28.04.14 15:50)
> ты генерируешь шум

Я его отражаю.


 
sms   (2014-04-28 16:59) [30]

файл бы выложил, глядишь на досуге кто и помог, а так это только гадать что там не то и что не так делаеться..


 
antonn ©   (2014-04-28 17:21) [31]


> файл бы выложил, глядишь на досуге кто и помог, а так это
> только гадать что там не то и что не так делаеться..

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


 
Jeer ©   (2014-04-28 17:38) [32]

Толчея на ровном месте.
ИМХО.



Страницы: 1 вся ветка

Текущий архив: 2014.12.07;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.006 c
2-1385342127
Alex80
2013-11-25 05:15
2014.12.07
Как превратить MainMenu в PopupMenu?


15-1399374780
Aleks2014
2014-05-06 15:13
2014.12.07
Как сменить программно IP сетевушки?


1-1328621735
denkop
2012-02-07 17:35
2014.12.07
Определить фактически используемый язык при отрисовке


15-1399062603
Юрий
2014-05-03 00:30
2014.12.07
С днем рождения ! 3 мая 2014 суббота


15-1397927721
ProgRAMmer Dimonych
2014-04-19 21:15
2014.12.07
«Умное» редактирование MP4 (H.264)