Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 5 6 вперед Ctrl→ все |
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 Ошибка
Как же это побороть? Задачка ведь простая до ужаса, сделать так, чтобы при неявном приведении типов пустота из текстового файла воспринималась как null |
|
4 июн 15, 16:00 [17731170] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
а почему вы решили, что этот файл форматирования ссответствует вашему файлу с данными ? |
||
4 июн 15, 16:03 [17731183] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
потому, что перед этим я выгрузил из таблицы в файл 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] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
Еще раз попробую сформировать вопрос: Какие параметры использовать в bcp утилите, чтобы при импорте из текстового файла с разделителями полей ТАБ, в случае, когда в файле ТАБТАБ (значение в столбце отсутствует), в поле типа int таблицы БД вставилось null? |
4 июн 15, 16:26 [17731325] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
Vad72, Земляк ві вообще доку читаете или пітаетесь угадать ? bcp смотрим пример G и сраниваем со своей командой
|
||
4 июн 15, 16:28 [17731339] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
ребята , может я упустил один момент, тогда озвучу его - файл я не формирую, он у меня есть такой , какой есть - с разделителями ТАБ. Как этот файл загрузить? |
||||
4 июн 15, 16:31 [17731356] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
если таб сепарейтед то укажиет его как разделитель столбцов... ето пример номер 2 в ранее приведенной ссылке |
4 июн 15, 16:38 [17731400] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
кстате так навреное понятней будет BULK INSERT |
4 июн 15, 16:43 [17731429] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
B. Copying table rows into a data file (with Mixed-mode Authentication) |
||
4 июн 15, 16:46 [17731445] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
Vad72, напишите свой формат файл для вашего файла по примеру из хепла, с учетом размерности полей вашей таблицы. ВСе равно кроме вас и за вас етого никто не сделает |
4 июн 15, 16:50 [17731468] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Уже несколько раз сказали про формат файл |
||
4 июн 15, 16:58 [17731522] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
у меня есть текстовый файл с разделителями полей ТАБ. В файле 60 столбцов и миллионы строк. Этот файл есть, на его структуру я не могу повлиять. В СУБД есть таблица, я удачно импортирую этот файл в таблицу СУБД. Но я хочу кое-что подправить, а именно, один из столбцов в БД я меняю с varchar(2) на tinyint, при этом данные из текстового файл также удачно грузятся, происходит неявное приведение типов, столбец типа tinyint удачно заполнятся, но!!! только тогда, когда в текстовом файле между ТАБ-ами что-то есть. Если там ни чего нет, идет ТАБТАБ, то происходит ошибка. Это можно как-то побороть? |
4 июн 15, 16:58 [17731524] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Вы читать умеете ? Или только писать ? |
||
4 июн 15, 16:59 [17731531] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
создавал файл форматирования так 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] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Потому что надо создавать формат файл, который описывает ваш файл с данными, а не целевую таблицу |
||
4 июн 15, 17:12 [17731629] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
допустим файл из одного столбца типа 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] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Т.е. вы хотите создать формат файл не читая хелп ? Методом подбора что ли ? |
||
4 июн 15, 17:25 [17731727] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
В текстовых файлах нет ни столбцов, ни типов |
||
4 июн 15, 17:26 [17731732] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
хелп читал, только на русском, но решения там не нашел, поэтому и задал вопрос тут |
||||
4 июн 15, 17:33 [17731787] Ответить | Цитировать Сообщить модератору |
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 Файл форматирования: bcp [TSQL2012].[dbo].[Test] format nul -c -f c:\m1.fmt -T -S KMW2-IT-WS-350\SQLEXPRESS2014 12.0Импорт файла: 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 А вообще файл форматирования надо писать вручную |
4 июн 15, 17:37 [17731820] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Т.е. там написано, что для "допустим файл из одного столбца" там в начале должно стоять 60 ? |
||
4 июн 15, 17:37 [17731823] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
virtuOS, Я так и делал ранее (сообщение 17731591), но у вас пример работает, я проверял, а у меня нет. Поэтому я и начал тут задавать вопросы. Может есть какие-то ограничения ... Завтра еще раз попробую, если не получится, буду потом в запросах просто каст использовать. П.с. если чо, размеры импортируемых файлов у меня измеряются в Гигабайта. |
4 июн 15, 20:13 [17732561] Ответить | Цитировать Сообщить модератору |
Vad72 Member [заблокирован] Откуда: KYIV Сообщений: 4613 |
virtuOS, и спасибо за помощь и потраченное время на примеры! Надеюсь завтра одолеть проблему. |
4 июн 15, 20:15 [17732568] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
В 17731591 вы не составляли файл форматирования сами |
||
4 июн 15, 20:16 [17732573] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 5 6 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |