powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
11 сообщений из 11, страница 1 из 1
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39886232
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Вопрос по загрузке данных из csv с использованием bulk insert

Есть csv с разделителем полей: |

field1|field2|field3
aaa|"bbb|ccc"|ddd
kkk|xxx|"yyy|zzz"

как загрузить данные в таблицу:

field1 field2 field3
-----------------------------
aaa bbb|ccc ddd
kkk xxx yyy|zzz

пробовал с файлом формата - не получилось
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39886251
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Турист,

Так давайте файл формата в студию и тексты ошибок
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39886265
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попытался такой файл формата

Код: sql
1.
2.
3.
4.
5.
6.
7.
9.0
5
1       SQLCHAR       0       1        ""            0     ExtraField      ""
2       SQLCHAR       0       100     "\"|\""     1     field1             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     "\"|\""     2     field2             SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       100     "\""         3    field3             SQL_Latin1_General_CP1_CI_AS
5       SQLCHAR       0       1       "\r\n"        0    ExtraField       ""



ошибка

The bulk load failed. The column is too long in the data file for row 1, column 2. Verify that the field terminator and row terminator are specified correctly.
Cannot obtain the required interface ("IID_IColumnsInfo") from OLE DB provider "BULK" for linked server "(null)".
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39886487
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Турист
Есть csv с разделителем полей: |

field1|field2|field3
aaa|"bbb|ccc"|ddd
kkk|xxx|"yyy|zzz"

как загрузить данные в таблицу:

field1 field2 field3
-----------------------------
aaa bbb|ccc ddd
kkk xxx yyy|zzz


Этот бред BCP не переварит.
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39886513
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭтот бред BCP не переварит. А тут еще нет дат, бинари, БЛОБов и чисел с в произвольном формате. :)
МС давно оторвалась от нужд реального мира и витает где-то в индусских облаках.

пысы: не даром мой знакомый ушел из МС (Редмонт). Индусы нереально запарили. :)
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39886710
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Турист
Здравствуйте.

Вопрос по загрузке данных из csv с использованием bulk insert



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
BULK INSERT
   dbo.test
      FROM 'test.txt'
     WITH
    (
		FORMAT = 'CSV' 
		, FIELDTERMINATOR = '|' 
	)

	select * from dbo.test



field1field2field3aaabbb|cccdddkkkxxxyyy|zzz
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39886711
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Турист,

Замените вложенный разделитель,
Код: sql
1.
2.
3.
4.
5.
6.
7.
c:\test>cat tourist.txt
a|b|"c|d"|e
f|g|h|"i|j"

c:\test> sed -r -e 's/"([^|]+)(\|)([^"]+)"/\1#DEADBEEF#\3/g' tourist.txt
a|b|c#DEADBEEF#d|e
f|g|h|i#DEADBEEF#j



Или грузите через визуальную приблуду Import adn Export Data Wizard, она этот формат сожрёт.
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39886776
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot,
авторFORMAT = 'CSV'

не пойдёт на sql server 2014
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39887486
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Турист,

SSIS пробовали?
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39888363
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Турист

не пойдёт на sql server 2014

Тогда выбор не такой и большой:
1. Обновится до 17
2. SSIS, правда не пробовал, но, видать, можно
3. Вставляйте сперва в один столбец, а потом сплите средствами SQL
...
Рейтинг: 0 / 0
загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
    #39888684
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot,

SSIS умеет это давно. Я делал переносы в районе 2011 года. Ни с какими скриптами морочиться не надо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / загрузка из csv с разделителем | и двойными кавычками при помощи bulk insert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]