久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

數據庫中如何處理帶有引號文本限定符的CVS

180次閱讀
沒有評論

共計 2164 個字符,預計需要花費 6 分鐘才能閱讀完成。

這篇文章給大家分享的是有關數據庫中如何處理帶有引號文本限定符的 CVS 的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

公司需要導入數據到 MSSQLSERVER,但是對方給出的奇葩 cvs 文件是這樣的:

aa,bb,cc,dd,ee
1, this 
is a ,1, this is a ,1
2, this is
a ,2, this is a ,2

普通的 bcp 處理會有悲催的錯位,而且 mssql 個坑貨也不能像 mysql 自動區分文本限定符的
研究了一下,用這個方式處理:

1. 在 DB 里建立對應的表

此處)折疊或打開

/*generaate thebcp fmt file*/

exec xp_cmdshell bcp test.dbo.table_1 format nul -t , -c -x -f C:\test\table_1.xml  -U****  -P**** 

go

3,修改 xml,請注意高亮部分。這個你們用 ie 來打開的話也可以明確的看到
此外還有這些特殊字符,大家先備著,萬一哪天被不靠譜的豬隊友坑了還能用。
單引號是 apos; 
雙引號是 quot; 
是 amp;


空格是 nbsp; 等

點擊 (此處) 折疊或打開

?xml version= 1.0 ?

BCPFORMAT xmlns= http://schemas.microsoft.com/sqlserver/2004/bulkload/format xmlns:xsi= http://www.w3.org/2001/XMLSchema-instance

  RECORD

  FIELD ID= 1 xsi:type= CharTerm TERMINATOR= , quot; MAX_LENGTH= 12 /

  FIELD ID= 2 xsi:type= CharTerm TERMINATOR= quot;, MAX_LENGTH= 50 COLLATION= Chinese_PRC_CI_AS /

  FIELD ID= 3 xsi:type= CharTerm TERMINATOR= , quot; MAX_LENGTH= 12 /

  FIELD ID= 4 xsi:type= CharTerm TERMINATOR= quot;, MAX_LENGTH= 50 COLLATION= Chinese_PRC_CI_AS /

  FIELD ID= 5 xsi:type= CharTerm TERMINATOR= \r\n MAX_LENGTH= 12 /

  /RECORD

  ROW

  COLUMN SOURCE= 1 NAME= aa xsi:type= SQLINT /

  COLUMN SOURCE= 2 NAME= bb xsi:type= SQLVARYCHAR /

  COLUMN SOURCE= 3 NAME= cc xsi:type= SQLINT /

  COLUMN SOURCE= 4 NAME= dd xsi:type= SQLVARYCHAR /

  COLUMN SOURCE= 5 NAME= ee xsi:type= SQLINT /

  /ROW

/BCPFORMAT

然后再把 cvs 的首列的標題去掉,雖說微軟說可以通過 firstrow 來指定第一行,但我之前用了 firstrow= 2 居然是從第二行開始的。
如果不去掉,會報錯,由于趕時間,報錯測原因和具體原理暫時不考慮再去深入研究了,之后有時間慢慢測。

4. 從 cvs 里取值,這里我用了 openrowset 來做驗證,其實這個時候也可以直接用 bcp 加指定 format file 來進行導入操作了。

點擊 (此處) 折疊或打開

select * from

openrowset(bulk C:\Booker\test.csv , – 要讀取的文件路徑和名稱

 formatfile= C:\Booker\Table_1.xml , – 格式化文件的路徑和名稱

 –fieldterminator= , ,

 firstrow = 1,– 要載入的第一行

 –lastrow  = 1000, – 要載入的最后一行, 此值必須大于 firstrow

 maxerrors = 100, – 在加載失敗之前加載操作中最大的錯誤數

 –errorfile = c:\wc_error1.txt , – 存放錯誤的文件

 rows_per_batch = 10000 – 每個批處理導入的行數

 ) as t

你需要的結果有了

文本格式下就是這么個東東
aa          bb                                                 cc          dd                                                 ee
———– ————————————————– ———– ————————————————– ———–
1           this, 
is, a                                      1           this is a                                          1
2           this is
a                                       2           this is a                                          2

感謝各位的閱讀!關于“數據庫中如何處理帶有引號文本限定符的 CVS”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-26發表,共計2164字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 乐至县| 保亭| 宁波市| 高青县| 贵州省| 磴口县| 界首市| 新田县| 稷山县| 江北区| 西充县| 得荣县| 内丘县| 十堰市| 上栗县| 云和县| 双牌县| 原阳县| 玛多县| 曲阜市| 武川县| 嘉祥县| 罗城| 布拖县| 汝城县| 新乡县| 齐河县| 轮台县| 宁海县| 日喀则市| 安义县| 桐乡市| 昆山市| 阳东县| 夏河县| 阿拉善右旗| 赤城县| 彰化县| 大厂| 怀来县| 镇康县|