這篇文章給大家分享的是有關(guān)數(shù)據(jù)庫中如何處理帶有引號(hào)文本限定符的CVS的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司一直通過網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、全網(wǎng)營(yíng)銷推廣服務(wù)為核心業(yè)務(wù)。10余年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
公司需要導(dǎo)入數(shù)據(jù)到MSSQLSERVER,但是對(duì)方給出的奇葩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處理會(huì)有悲催的錯(cuò)位,而且mssql個(gè)坑貨也不能像MySQL自動(dòng)區(qū)分文本限定符的"
研究了一下,用這個(gè)方式處理:
1. 在DB里建立對(duì)應(yīng)的表
此處)折疊或打開
/*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,請(qǐng)注意高亮部分。 這個(gè)你們用ie來打開的話也可以明確的看到"
此外還有這些特殊字符,大家先備著,萬一哪天被不靠譜的豬隊(duì)友坑了還能用。
單引號(hào)是'
雙引號(hào)是"
&是&
>是>
<是<
空格是 等
點(diǎn)擊(此處)折疊或打開
<?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=","" MAX_LENGTH="12"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR=""," MAX_LENGTH="50" COLLATION="Chinese_PRC_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR=","" MAX_LENGTH="12"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR=""," 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的首列的標(biāo)題去掉, 雖說微軟說可以通過firstrow來指定第一行,但我之前用了firstrow=2居然是從第二行開始的。
如果不去掉,會(huì)報(bào)錯(cuò),由于趕時(shí)間,報(bào)錯(cuò)測(cè)原因和具體原理暫時(shí)不考慮再去深入研究了,之后有時(shí)間慢慢測(cè)。
4. 從cvs里取值,這里我用了openrowset來做驗(yàn)證,其實(shí)這個(gè)時(shí)候也可以直接用bcp加指定 format file來進(jìn)行導(dǎo)入操作了。
點(diǎn)擊(此處)折疊或打開
select * from
openrowset(bulk 'C:\Booker\test.csv', --要讀取的文件路徑和名稱
formatfile='C:\Booker\Table_1.xml', --格式化文件的路徑和名稱
--fieldterminator='","',
firstrow = 1,--要載入的第一行
--lastrow = 1000, --要載入的最后一行,此值必須大于firstrow
maxerrors = 100, --在加載失敗之前加載操作中最大的錯(cuò)誤數(shù)
--errorfile ='c:\wc_error1.txt', --存放錯(cuò)誤的文件
rows_per_batch = 10000 --每個(gè)批處理導(dǎo)入的行數(shù)
) as t
你需要的結(jié)果有了
文本格式下就是這么個(gè)東東
aa bb cc dd ee
----------- -------------------------------------------------- ----------- -------------------------------------------------- -----------
1 this,
is, a 1 this is a 1
2 this is
" a 2 this is a 2
感謝各位的閱讀!關(guān)于“數(shù)據(jù)庫中如何處理帶有引號(hào)文本限定符的CVS”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)站標(biāo)題:數(shù)據(jù)庫中如何處理帶有引號(hào)文本限定符的CVS
標(biāo)題鏈接:http://sd-ha.com/article16/pchhdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、微信小程序、電子商務(wù)、網(wǎng)站導(dǎo)航、網(wǎng)站收錄、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)