2

抽出しようとしている列がありますが、問題があります。列は ntext 型として保存され、RTF ドキュメントが含まれているため、次のようになります。

{\rtf1\ansi\ansicpg1252\uc1\deff0{\fonttbl  {\f0\fnil\fcharset0\fprq2 Arial;}  {\f1\fswiss\fcharset0\fprq2 Arial;}  {\f2\froman\fcharset2\fprq2 Symbol;}}  {\colortbl;\red0\green0\blue0;\red255\green255\blue255;}  {\stylesheet{\s0\itap0\nowidctlpar\f0\fs24 [Normal];}{\*\cs10\additive Default Paragraph Font;}}  {\*\generator TX_RTF32 15.0.530.502;}  \deftab1134\paperw11909\paperh16834\margl1138\margt1138\margr1138\margb1138\widowctrl\formshade\sectd  \headery720\footery720\pgwsxn11909\pghsxn16834\marglsxn1134\margtsxn1134\margrsxn1134\margbsxn1134\pard\itap0\nowidctlpar\plain\f1\fs20 Stephan Bos  28/11/2011 11:19:55\par\par Sold in guy. He likes him, feedback this afternoon.\par Will send him the CV and also our terms.\par Made him aware of our fees.\par }

しかし、これを抽出して戻そうとしています (rtf または txt はあまり気にしません) ドキュメントの抽出に成功した BCP を使用してみましたが、最終的には列とまったく同じになりますが、それぞれの間にスペースがあります私が期待するのではなく、キャラクターです(上記の例は、次のようなものになります

Stephan Bos  28/11/2011 11:19:55
Sold in guy. He likes him, feedback this afternoon.
Will send him the CV and also our terms.
Made him aware of our fees.

私が使用している (抽出している) BCP 抽出物は次のとおりです。

set nocount on;
Declare @sql varchar(1000);
declare @noteid int;
declare xx1 cursor for select nic.NotebookItemId from NotebookItemContent nic
inner join NotebookLinks nl on nl.NotebookItemId = nic.NotebookItemId
inner join NotebookItems ni on ni.NotebookItemId = nic.NotebookItemId
where nl.clientid = 1235074
AND ni.NotebookTypeId = 56;
open xx1;
fetch xx1 into @noteid;
while (@@fetch_status = 0)
begin
set @sql = 'BCP "SELECT memo FROM Monarch_Pronet_ITOIL.dbo.notebookitemcontent where notebookitemid=' + cast(@noteid as varchar) + 
'" QUERYOUT \\bhamws475\docs\' + cast(@noteid as varchar) + '.rtf -T -f \\bhamws475\docs\bcp.fmt -S ' + @@SERVERNAME
EXEC master.dbo.xp_CmdShell @sql
fetch xx1 into @noteid;
end;
close xx1;
deallocate xx1;

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

これで理解できたと思います - 問題は、BCP によって保存された RTF が Word によって RTF ファイルとして認識されないことです - プレーン テキスト ファイルとして開かれます。

これは、エクスポートされたファイルが Unicode であるためです (スクリーンショットで各文字の後に空白が続くことからわかります)。

-c解決策は、bcp に Unicode で保存しないように指示することです。これは、スイッチを使用するか、フォーマット ファイルで目的の文字セットを指定することで実行できると思います。

于 2012-04-18T07:37:10.017 に答える