MySql - проблем с Import

9 отговора 491 прегледа
#1

MySql - проблем с Import

Здравейте,

опитвам да направя импорт в MySql от csv файл със редове, подобни на този:

16.11,116,"2,900,400.55",USD,...... и т.н.

Проблемна е колоната с число, заградено в кавички, със запетая за разделител на хилядите. MySql вярно разпознава колоната, но спира при първата запетая. В този случай числото, което влиза в таблицата е 2.

Някакви идеи?
мерси предварително.

Отговор
в отговор на alex #2

Re: MySql - проблем с Import

Няма да стане, освен ако не parse-ваш csv-то с някакав скрипт и да махаш запетаите от цифрите преди да ги запишеш в базата.

Ако е нова таблица без данни в нея може да ги импортнеш като varchar, да пуснеш един update да махне запетаите и след това да промениш колоната на double или какъвто ти е там типа.

Отговор
в отговор на ДядoMpaз #3

Re: MySql - проблем с Import

С DTS на MS-SQL дали няма да мине интелигентно?

Отговор
в отговор на ДядoMpaз #4

Re: MySql - проблем с Import

Като махна запетаите (аз го направих като използвам текстов редактор и регулярни изрази), импорта работи правилно.

Проблемът е, че ще получавам такав csv файл редовно, трябва да има автоматизирана процедура.

Представях си, че мога да настроя нещо като Regional Settings за MySQL, но явно това не може да се настройва.

Отговор
в отговор на Koндьo #5

Re: MySql - проблем с Import

С DTS вероятно ще стане, но стават много сървъри по веригата...

Отговор
в отговор на alex #6

Re: MySql - проблем с Import

Ако си под Linux - cron, perl (php) - и си в бизнеса.
Разбира се и на C става.
Под виндовс - също.

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #7

Re: MySql - проблем с Import

ами да, щом не мога да науча MySQL да свърши работата, ще трябва сам да си я свърша ;-)

благодаря за идеите.

Отговор
в отговор на alex #8

Re: MySql - проблем с Import

Четох малко книжки.
Излиза че може и от cvs, ама на мен ще ми е по лесно по другия начин.
Предимството е че мога да проконтролирам всяка стойност преди да я вмъкна - и с MySQL става - ама зависи от опита.
А аз имам по малко опит с висшия пилотаж под MySQL :)

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #9

Re: MySql - проблем с Import

Кажи къде го прочете това че може да стане с MySQL, аз се сетих само за варианта със SET v LOAD DATA INFILE, но това работи само в MySQL 5.

Нещо такова - но дали ще работи незнам.

LOAD DATA INFILE 'file.csv'
INTO TABLE t1
(column1, @var1, column3, ....)
SET column2 = replace(@var1,",","");

Никога не съм го пробвал, а и като не си сигурен 100% какъв ще е формата, по добре да се прави със скрипт.

Отговор
в отговор на ДядoMpaз #10

Re: MySql - проблем с Import

Има една книжка за подготовка за изпити - за 5.xxx.
Та май си прав че е за 5ца :)
Има и доста чалъми за определяне край на ред, разделители за полета и т.н.

Bеer? Mоre?
Плацебото
Отговор