.csv에서 MS SQL 데이터베이스로 데이터를 삽입하려고합니다. 나는 이런 식으로 작업을 수행합니다BULK INSERT from CSV, strings with ""
id,email,firstname,lastname,city,address,phone,birthday,candidateurl,createdAt
을 같은 예를 들어 :
BULK INSERT [dbo].[prescreen_candidateData] FROM '\\server2\prescreen$\candidateData.csv' WITH (
FIRSTROW = 2,
FIELDTERMINATOR = '\,',
ROWTERMINATOR = '\n',
KEEPNULLS
);
내 .CSV이 식으로 구축 할 수 있습니다 :
CREATE TABLE [dbo].[prescreen_candidateData](
[id] [varchar](50) DEFAULT '',
[email] [varchar](50) DEFAULT '',
[firstname] [varchar](50) DEFAULT '',
[lastname] [varchar](50) DEFAULT '',
[city] [varchar](50) DEFAULT '',
[address] [varchar](50) DEFAULT '',
[phone] [varchar](50) DEFAULT '',
[birthday] [varchar](50) DEFAULT '',
[candidateurl] [varchar](50) DEFAULT '',
[createdAt] [varchar](50) DEFAULT '') ON [PRIMARY]
창조 테이블 후, 내가 좋아하는 삽입하려고 :
58282,[email protected],Michael,Meier,,"""Street Nr 12,08159,City""",,"1996-08-29 00:00:00",https://linktoemployee, 2016-05-12
예를 들어, 도시 비어있는, 내 csv에서 그것은 좋아 보인다. 그러나 문제는 adressfield이다. 왜냐하면 adressfield에 포함되어 있기 때문이다. 그러나 the는 종결 자다. .. 내가 어떻게 그것을 할 수 있냐, 그것은 대량 삽입물에서이다. ""사이에 무시됩니다?
편집 : 이 ** 내가 ... csv로에 연결된 서버를 작성하여 그것을 해결 내가 **
나는 당신의 문제에 대한 답이 없지만, 'ROWTERMINATOR = '\ n''이 SQL 서버에 의해 무시되는 대신에'ROWTERMINATOR ='\ r \ n''이 [used] 될 것입니다 (https://docs.microsoft.com/en-us/). sql-server/sql-relational-databases/import-export/specify-field-and-row-terminators-sql-server) 항상 작동하지는 않지만 항상 작동합니다. 'ROWTERMINATOR = '0x0a'. – HoneyBadger
시도; fieldterminator를 위해. 내가 아는 한, 사용법을 능가한다. fieldterminator로 기본적으로. –
나는 내 FTP에서 외부 서비스로부터이 CSV를 얻는다. 나는 그들과 이야기하려고 노력한다. 그러나 나는 쉼표가 SQL의 기본 종결 자라고 생각한다 ... –