Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
1. Непонятно, почему не грузится. Неявное приведение типов работает, но только тогда, когда в текстовом поле между табами что-то есть.
2. Пробовал метод Тыка еще так:
- создал файл форматирования
bcp ххх.dbo.m1 format nul -U sa -P 111 -S 10.1.0.9 -n -f m1.fmt


- потом пытался импортируя, использую файл форматирования
bcp ххх.dbo.m1 in K1.dat -U sa -P 111 -S 10.1.0.9 -e K1.log -C 1251 -f m1.fmt


Ошибка
+

Начато копирование...
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Усечение данных строки справа

Ошибка BCP-копирования in


Как же это побороть? Задачка ведь простая до ужаса, сделать так, чтобы при неявном приведении типов пустота из текстового файла воспринималась как null
4 июн 15, 16:00    [17731170]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vad72
- потом пытался импортируя, использую файл форматирования

а почему вы решили, что этот файл форматирования ссответствует вашему файлу с данными ?
4 июн 15, 16:03    [17731183]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
Glory
Vad72
- потом пытался импортируя, использую файл форматирования

а почему вы решили, что этот файл форматирования ссответствует вашему файлу с данными ?

потому, что перед этим я выгрузил из таблицы в файл
bcp ххх.dbo.m1 out K1.dat -U sa -P 111 -S 10.1.0.9 -c -e K1.log -C 1251
4 июн 15, 16:16    [17731247]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
Еще раз попробую сформировать вопрос:

Какие параметры использовать в bcp утилите, чтобы при импорте из текстового файла с разделителями полей ТАБ, в случае, когда в файле ТАБТАБ (значение в столбце отсутствует), в поле типа int таблицы БД вставилось null?
4 июн 15, 16:26    [17731325]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Vad72,

Земляк ві вообще доку читаете или пітаетесь угадать ?
bcp
смотрим пример G и сраниваем со своей командой

Vad72
bcp ххх.dbo.m1 out K1.dat -U sa -P 111 -S 10.1.0.9 -c -e K1.log -C 1251
4 июн 15, 16:28    [17731339]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
Maxx
Vad72,

Земляк ві вообще доку читаете или пітаетесь угадать ?
bcp
смотрим пример G и сраниваем со своей командой

Vad72
bcp ххх.dbo.m1 out K1.dat -U sa -P 111 -S 10.1.0.9 -c -e K1.log -C 1251

ребята , может я упустил один момент, тогда озвучу его - файл я не формирую, он у меня есть такой , какой есть - с разделителями ТАБ. Как этот файл загрузить?
4 июн 15, 16:31    [17731356]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
если таб сепарейтед то укажиет его как разделитель столбцов...
ето пример номер 2 в ранее приведенной ссылке
4 июн 15, 16:38    [17731400]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
кстате так навреное понятней будет
BULK INSERT
4 июн 15, 16:43    [17731429]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
Maxx
если таб сепарейтед то укажиет его как разделитель столбцов...
ето пример номер 2 в ранее приведенной ссылке


B. Copying table rows into a data file (with Mixed-mode Authentication)
4 июн 15, 16:46    [17731445]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Vad72,

напишите свой формат файл для вашего файла по примеру из хепла, с учетом размерности полей вашей таблицы.
ВСе равно кроме вас и за вас етого никто не сделает
4 июн 15, 16:50    [17731468]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vad72
Какие параметры использовать в bcp утилите, чтобы при импорте из текстового файла с разделителями полей ТАБ, в случае, когда в файле ТАБТАБ (значение в столбце отсутствует), в поле типа int таблицы БД вставилось null?

Уже несколько раз сказали про формат файл
4 июн 15, 16:58    [17731522]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
у меня есть текстовый файл с разделителями полей ТАБ. В файле 60 столбцов и миллионы строк. Этот файл есть, на его структуру я не могу повлиять. В СУБД есть таблица, я удачно импортирую этот файл в таблицу СУБД. Но я хочу кое-что подправить, а именно, один из столбцов в БД я меняю с varchar(2) на tinyint, при этом данные из текстового файл также удачно грузятся, происходит неявное приведение типов, столбец типа tinyint удачно заполнятся, но!!! только тогда, когда в текстовом файле между ТАБ-ами что-то есть. Если там ни чего нет, идет ТАБТАБ, то происходит ошибка. Это можно как-то побороть?
4 июн 15, 16:58    [17731524]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vad72
. Это можно как-то побороть?

Вы читать умеете ? Или только писать ?
4 июн 15, 16:59    [17731531]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
Glory
Vad72
Какие параметры использовать в bcp утилите, чтобы при импорте из текстового файла с разделителями полей ТАБ, в случае, когда в файле ТАБТАБ (значение в столбце отсутствует), в поле типа int таблицы БД вставилось null?

Уже несколько раз сказали про формат файл


создавал файл форматирования так
bcp ххх.dbo.m1 format nul -U sa -P 111 -S 10.1.0.9 -n -f m1.fmt

и так
bcp ххх.dbo.m1 format nul -U sa -P 111 -S 10.1.0.9 -n -f m1-n.fmt


файл формат
пытался импортировать так
bcp ххх.dbo.m1 in K1.dat -U sa -P 111 -S 10.1.0.9 -e K1.log -C 1251 -f m1.fmt

или
bcp ххх.dbo.m1 in K1.dat -U sa -P 111 -S 10.1.0.9 -e K1.log -C 1251 -f m1-n.fmt


ошибки Картинка с другого сайта., что не так?
4 июн 15, 17:06    [17731591]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
в первом случае там bcp ххх.dbo.m1 format nul -U sa -P 111 -S 10.1.0.9 -f m1.fmt
4 июн 15, 17:07    [17731596]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vad72
ошибки , что не так?

Потому что надо создавать формат файл, который описывает ваш файл с данными, а не целевую таблицу
4 июн 15, 17:12    [17731629]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
Glory
Vad72
ошибки , что не так?

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

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

я пробовал так
10.0
60
1      SQLCHAR             0       5       "\t"     1    CntrGCPeriod                   ""

и так
10.0
60
1      SQLTINYINT          1       1       ""   1    CntrGCPeriod                   ""
4 июн 15, 17:22    [17731701]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vad72
я пробовал так

Т.е. вы хотите создать формат файл не читая хелп ? Методом подбора что ли ?
4 июн 15, 17:25    [17731727]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vad72
допустим файл из одного столбца типа tinyint

В текстовых файлах нет ни столбцов, ни типов
4 июн 15, 17:26    [17731732]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
Glory
Vad72
я пробовал так

Т.е. вы хотите создать формат файл не читая хелп ? Методом подбора что ли ?

хелп читал, только на русском, но решения там не нашел, поэтому и задал вопрос тут
4 июн 15, 17:33    [17731787]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
virtuOS
Member

Откуда: большая деревня
Сообщений: 266
USE [TSQL2012]
CREATE TABLE [dbo].[Test](
	[id] [int] NOT NULL,
	[text1] [nchar](100) NULL,
	[number] [int] NULL,
	[text2] [nchar](100) NULL
) ON [PRIMARY]


Текстовый файл для загрузки:
1	test1	2	test2
2 test1 test2
3 test1 3 test2

Файл форматирования:
bcp [TSQL2012].[dbo].[Test] format nul -c -f c:\m1.fmt -T -S KMW2-IT-WS-350\SQLEXPRESS2014

12.0
4
1 SQLCHAR 0 12 "\t" 1 id ""
2 SQLCHAR 0 200 "\t" 2 text1 Cyrillic_General_CI_AS
3 SQLCHAR 0 12 "\t" 3 number ""
4 SQLCHAR 0 200 "\r\n" 4 text2 Cyrillic_General_CI_AS
Импорт файла:
bcp [TSQL2012].[dbo].[Test] in c:\001.txt -U sa -P Pass -S KMW2-IT-WS-350\SQLEXPRESS2014 -e c:\001.log -f c:\m1.fmt


Итог:
id	text1	number	text2
1 test1 2 test2
2 test1 NULL test2
3 test1 3 test2

А вообще файл форматирования надо писать вручную
4 июн 15, 17:37    [17731820]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vad72
хелп читал

Т.е. там написано, что для "допустим файл из одного столбца" там в начале должно стоять 60 ?
4 июн 15, 17:37    [17731823]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
virtuOS,
Я так и делал ранее (сообщение 17731591), но у вас пример работает, я проверял, а у меня нет. Поэтому я и начал тут задавать вопросы. Может есть какие-то ограничения ... Завтра еще раз попробую, если не получится, буду потом в запросах просто каст использовать.

П.с. если чо, размеры импортируемых файлов у меня измеряются в Гигабайта.
4 июн 15, 20:13    [17732561]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Vad72
Member [заблокирован]

Откуда: KYIV
Сообщений: 4613
virtuOS,
и спасибо за помощь и потраченное время на примеры! Надеюсь завтра одолеть проблему.
4 июн 15, 20:15    [17732568]     Ответить | Цитировать Сообщить модератору
 Re: вставка большого количества строк в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vad72
Я так и делал ранее (сообщение 17731591),

В 17731591 вы не составляли файл форматирования сами
4 июн 15, 20:16    [17732573]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить