-
в логе Hit Fatal Error: Server is terminating фатальная ошибка по такому-то spid процесс мой..
там писал и запускал из студии DECLARE @bulk_cmd varchar(1000); SET @bulk_cmd = 'BULK INSERT #T FROM "\\S1\Try.csv" WITH(CODEPAGE = ''RAW'', FIRSTROW = 1, FIELDTERMINATOR = '';'', ROWTERMINATOR = ''0x0a'')' EXEC(@bulk_cmd); ну, а остальное вообще бред, всякие update #T и прочее
если только BULK INSERT свалил (?!) но.. как так то!?!
причем, до этого грузилось, после сбоя рискнул запустить - запустилось. файлик килобайт на 20 да, есть глюк, конечно, одна строка в нем не соответствую формату - но как бы и грузится она криво, но грузится же.. Ничего не понимаю..
-
select @@version
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
-
стомагабайтные и более файлы я гружу более удобным способом
declare @idoc int, @body varchar(max); set @body = :p_xml_body;
exec sp_xml_preparedocument @idoc OUTPUT, @body;
insert into dest_table (select * from OPENXML (@idoc, '//row', 1) with ( field1 int './@f1', ......... fieldN varchar(255) '../@fn', ) ) ; exec sp_xml_removedocument @idoc;
и под сервер при этом ничего не надо подкладывать
-
\\S1\Try.csv - файл там может меняться. Допустим, на момент запуска там была каша, а совсем не csv допустим, запись не закончилась, устройство отсоединяли и т.п.
но как мог BULK INSERT остановить процесс. с одной стороны..
а с другой факт: в логе указан spid и код в дампе этого spid, и это тот код, который я запускал..
-
> iop © (31.10.16 12:48) [2]
[3] - не ответ вам, просто мысли..
ваше посмотрю. не проблема грузить, проблема с чего бы это рухнуло то
-
под try положить
-
ВладОшин © (31.10.16 12:40) Fatal error просто или есть какой-то код ошибки?
-
> stas © (31.10.16 15:44) [6]
не помню уточнить надо, пока нет возможности посмотреть, но кажется никакой. Иначе бы я гуглил и привел..
> под try положить
можно попробовать, но .. как смоделировать то теперь да и потом, как-то не вирится. Остановился процесс sql (!), а каким-то try можно защититься?
-
кстати, может кто-то проверить, если положить обычный файл csv ROWTERMINATOR = '\n' (в православном delphi #13#10)
в excel можно сделать какой-нибудь, любой
и загрузить его как
DECLARE @bulk_cmd varchar(1000); SET @bulk_cmd = 'BULK INSERT #T FROM "ANY.csv" WITH(CODEPAGE = ''RAW'', FIRSTROW = 1, FIELDTERMINATOR = '';'', ROWTERMINATOR = ''0x0a0x0d'')' EXEC(@bulk_cmd);
именно ''0x0a0x0d'' в этом смысла нет, но похоже так было написано, и, похоже, именно это свалило. свой комп разобрал, не протестирую сейчас, а "промышленный" сервер нет желания валить )
|