2009-04-02 40 views
6

Tôi có tệp CSV có dấu phân tách văn bản trích dẫn. Hầu hết 90000 hàng đều tốt, nhưng tôi có một vài hàng có trường văn bản chứa cả dấu ngoặc kép và dấu phẩy. Ví dụ giá trị lĩnh vực sẽ là:Trích dẫn Nhập CSV của SQL 2005 Được phân tách bằng Dấu ngoặc kép và Dấu phẩy bên trong

AB "AB

Khi Delimited này trở nên

"AB"", AB"

Khi SQL 2005 cố gắng nhập dữ liệu này tôi nhận được các lỗi như ...

Messages 
Error 0xc0202055: Data Flow Task: The column delimiter for column "Column 4" was not found. 
(SQL Server Import and Export Wizard)

Điều này dường như chỉ xảy ra khi dấu ngoặc kép và dấu phẩy ở trong giá trị văn bản cùng nhau. Giá trị như

AB "AB mà trở thành "AB"" AB" hoặc AB, AB mà trở thành "AB, AB"

công việc tốt.

Dưới đây là một số hàng dụ ...

 
"1464885","LEVER WM","","B","MP17" 
"1465075",":PLT-BC !!NOTE!!","","B","" 
"1465076","BRKT-STR MTR   !NOTE!","","B","" 
"1465172",":BRKT-SW MTG !NOTE!","","B","MP16" 
"1465388","BUSS BAR    !NOTE!","","B","MP10" 
"1465391","PLT-BLKHD  ""NOTE""","","B","MP20" 
"1465564","SPROCKET:13TEETH,74MM OD,66MM","ID W/.25"" SETSCR","B","MP6" 
"S01266330002","CABLE:224"",E122/261,8 CO","","B","MP11" 

hàng cuối cùng là một ví dụ về các vấn đề - "", gây ra lỗi

Trả lời

0

tôi sẽ chỉ làm một tìm kiếm/thay thế cho.", và thay thế nó với,

Bạn có quyền truy cập vào tệp gốc không?

+0

Tôi không có quyền truy cập vào tệp nhập. Ngoài ra, tệp có đầy đủ ", hoặc" ", hợp lệ. Dưới đây là một số dòng ví dụ ... " 1465564 "," SPROCKET: 13TEETH, 74MM OD, 66MM "," ID W/.25 "" SETSCR "," B "," MP6 " " S01266330002 "," CÁP: 224 "", E122/261,8 CO "," "," B "," MP11 " Hàng thứ hai là –

1

Làm thế nào về chỉ:

  1. Tìm kiếm/thay thế tất cả "", với ''; (sửa tất cả các trường bị hỏng)
  2. Tìm kiếm/thay thế tất cả; ''; với, "", (để "ẩn" các trường trống đúng cách.)
  3. Tìm kiếm/thay thế tất cả ''; ''; với "", "", (các lĩnh vực đúng rỗng "tháo ra", mà theo một đóng gói đúng delimiters nhúng.)

Đó chuyển đổi ban đầu của bạn để:

"1464885","LEVER WM","","B","MP17" 
"1465075",":PLT-BC !!NOTE!!","","B","" 
"1465076","BRKT-STR MTR   !NOTE!","","B","" 
"1465172",":BRKT-SW MTG !NOTE!","","B","MP16" 
"1465388","BUSS BAR    !NOTE!","","B","MP10" 
"1465391","PLT-BLKHD  ""NOTE""","","B","MP20" 
"1465564","SPROCKET:13TEETH,74MM OD,66MM","ID W/.25"" SETSCR","B","MP6" 
"S01266330002","CABLE:224'';E122/261,8 CO","","B","MP11" 

Mà dường như để chạy gauntlet tốt trong SSIS. Bạn có thể phải bước 3 đệ quy để tính cho 3 trường trống trong một hàng (''; ''; '' ;, v.v.) nhưng dòng dưới cùng ở đây là khi bạn có các vòng loại văn bản nhúng, bạn phải thoát khỏi chúng hoặc thay thế chúng. Hãy để đây là một bài học trong quá trình tạo CSV của bạn trong tương lai.

+0

Trong một nhận xét khác, OP cho biết anh ta chỉ có quyền truy cập vào tệp nhập, chứ không phải việc tạo CSV. Ngoài ra, câu trả lời của bạn sẽ thay đổi dữ liệu (double-quotes to single-quotes), vì vậy điều này không thực sự giải quyết được vấn đề về cách nhập dữ liệu này. – goodeye

4

Tôi gặp sự cố MAJOR với SSIS. Những điều mà Access, Excel và thậm chí DTS dường như làm rất tốt, SSIS cuộn cảm. Dữ liệu độ dài bản ghi thay đổi là một vấn đề khác nhưng, có, các vòng loại được nhúng này là một vấn đề lớn. Đặc biệt là nếu bạn không có quyền truy cập vào các tệp nhập vì chúng nằm trên máy chủ của người khác mà bạn trả tiền để có quyền truy cập và thậm chí có thể có kích thước từ 4 đến 5 GB! Không thể chỉ để "thay thế tất cả" trên mỗi lần nhập.

Bạn có thể muốn kiểm tra điều này tại Microsoft Tải xuống được gọi là "UnDouble" và đây là một workaround bạn có thể thử.

Dường như với SSIS trong SQL Server 2008, lỗi vẫn còn đó. Tôi không biết tại sao họ đã giải quyết vấn đề này trong trình phân tích cú pháp nhưng nó giống như chúng ta đã quay lại với SSIS trong chức năng nhập cơ bản.

CẬP NHẬT 11-18-2010: Lỗi này vẫn tồn tại trong SSIS. Kinh ngạc.

1

Microsoft says báo giá tăng gấp đôi gấp đôi bên trong các trường phân tách kép trích dẫn không hoạt động. Sửa chữa được lên kế hoạch cho đến cuối năm 2011 ...

Đồng thời, chúng tôi sẽ phải sử dụng cách giải quyết như được mô tả trong các câu trả lời khác.

+0

Vẫn không cố định ... – NotMe

Các vấn đề liên quan