|
bcp. Как убрать кавычки в строках.
|
|||
---|---|---|---|
#18+
Использую в cmd команду для вставки данных из файла .dsv: bcp *name_tabl* IN '*path*' -t^| -c -C 65001 -S *name_server* -b 20000 -T -F 2 Столбцы разделяются |, но помимо этого все строки помещены в кавычки. Например: "RUS", "Оплата прошла", "10204022", "22,02" и т.д. Пытался добавить -r (признак конца строки), но он убирает кавычку только у первого столбца и только в начале строки, а все остальные столбцы остаются прежними. Например: RUS", "Оплата прошла", "10204022", "22,02" и т.д.. Через стандартные инструменты SQL (импорт данных) эта проблема решается, но скорость загрузки бесконечная. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 09:04 |
|
bcp. Как убрать кавычки в строках.
|
|||
---|---|---|---|
#18+
Нужно ли добавлять в bcp команду -c (символьный тип), если данные в таблице имеют float, int, datetime тип данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 09:09 |
|
bcp. Как убрать кавычки в строках.
|
|||
---|---|---|---|
#18+
sysn1k Нужно ли добавлять в bcp команду -c (символьный тип), если данные в таблице имеют float, int, datetime тип данных? на это можете не отвечать. Разобрался, когда -c использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 10:04 |
|
bcp. Как убрать кавычки в строках.
|
|||
---|---|---|---|
#18+
Однажды столкнулись с аналогичной задачей. Мы получали текстовый файл и загружали его в свою систему. Все было хорошо, пока не стал приходить файл, в котором, если в какой-нибудь строке встречается символ ", то он удваивается, а сама такая строка закавычивается этим символом. Например, строка Предприятие "Завод имени кого-то" становится строкой "Предприятие ""Завод имени кого-то""" В результате анализа строк выяснили: 1. Любые две стоящие рядом кавычки — это одна кавычка в исходной строке. 2. Все остальные кавычки, где бы они не стояли, лишние. Собственно решение состоит из трех шагов. 1. Чтобы сохранить информацию о парных кавычках заменим две стоящие рядом кавычки каким-нибудь невидимым символом, мне, например, нравится символ char(7) – звонок. 2. Оставшиеся кавычки заменим пустым символом. 3. Вернем кавычку на место. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Результат: Код: plaintext 1. 2. 3. 4. 5. 6.
Возможно, у нас не хватило квалификации заставить bcp сделать эти преобразования. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 12:22 |
|
bcp. Как убрать кавычки в строках.
|
|||
---|---|---|---|
#18+
Wlr-l, replace - это простой вариант. Но он очень время затратный. У меня файлы по 5гб, с 15 столбцов. В сумме на одну табл получается 30млн строк. Таких таблиц несколько. Запускать replace на каждый столбец - ад, т.к. максимум 10 млн строк можно за один раз обработать (иначе ругаются), приходится их делить. Одну таблицу так сделал - больше не хочется. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 13:15 |
|
bcp. Как убрать кавычки в строках.
|
|||
---|---|---|---|
#18+
Wlr-l Все было хорошо, пока не стал приходить файл, в котором, если в какой-нибудь строке встречается символ ", то он удваивается, а сама такая строка закавычивается этим символом. Это канонический стандарт CSV. Это не беда - это счастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 14:13 |
|
bcp. Как убрать кавычки в строках.
|
|||
---|---|---|---|
#18+
sysn1k Столбцы разделяются |, но помимо этого все строки помещены в кавычки. Например: "RUS", "Оплата прошла", "10204022", "22,02" и т.д. можно избавиться от кавычек препроцессингом например, так Код: powershell 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 14:28 |
|
bcp. Как убрать кавычки в строках.
|
|||
---|---|---|---|
#18+
aleks222 Wlr-l Все было хорошо, пока не стал приходить файл, в котором, если в какой-нибудь строке встречается символ ", то он удваивается, а сама такая строка закавычивается этим символом. Это канонический стандарт CSV. Это не беда - это счастье. Я то, об этом знаю. Это счастье. Беда в том, что BULK об этом не знает, или я не знаю, как справиться с этим BALKом. Как выясняется, я не один такой. Еще в этом файле числа были с разделителями групп CHAR(160), которые выглядят, как пробел. И еще одна беда в том, что с той стороны не знали, как справиться с кавычками и разделителями групп, и предложили нам самостоятельно избавляться от кавычек и от разделителей групп. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 15:16 |
|
|
start [/forum/topic.php?fid=46&msg=40084583&tid=1684499]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 256ms |
total: | 382ms |
0 / 0 |