SQLプロシージャ内からXMLファイルを作成する際に問題があります。 XMLが作成され、正しいフォルダに配置されます。私はXMLSpyの中のファイルを開いたとき、それは次のようなエラー言うが、私はメモ帳でXMLファイルを開くとSQL - XMLを作成する - Unicode UTF-8を設定する方法
Your file contains 3 character(s) that should not be present in a file using the Unicode UTF-8 encoding... The offending characters are è (0xE8), ü (0xFC), é (0xE9)
を++と(上部のメニューエンコーディングを経由して)エンコーディングをチェックし、それがANSIであるといないと言いますUTF-8で
私の質問は、どうすればUTF-8に変わるのですか?助言がありますか? 私の手順のコードは以下の見つけることができます:
@File VARCHAR(2000) // parameter
AS
BEGIN
DECLARE @OLE INT
DECLARE @FileID INT
EXECUTE sp_OACreate 'Scripting.FileSystemObject', @OLE OUT
EXECUTE sp_OAMethod @OLE, 'OpenTextFile', @FileID OUT, @File, 8, 1
DECLARE @Text XML
SET @Text = (SELECT TOP(1) [xml] from VW_WARP_LEVERANCIERS_XML)
EXECUTE sp_OAMethod @FileID, 'WriteLine', Null, @Text
EXECUTE sp_OADestroy @FileID
EXECUTE sp_OADestroy @OLE
END
EDIT 1
は、ASCIIの代わりに、ユニコード(狼によって以下示唆されているように)にエクスポート、私のコードを変更しましたが、これは役立ちませんでしたあまりにも。しかし、ここにコードの一部があります。
DECLARE @OLE INT
DECLARE @FileID INT
EXECUTE sp_OACreate 'Scripting.FileSystemObject', @OLE OUT
EXECUTE sp_OAMethod @OLE, 'CreateTextFile', @FileID OUT, @File, 2, False
DECLARE @Text XML
SET @Text = (SELECT TOP(1) [xml] from VW_WARP_LEVERANCIERS_XML)
EXECUTE sp_OAMethod @FileID , 'Write', Null, @Text
EXECUTE sp_OAMethod @FileID , 'Close'
EXECUTE sp_OADestroy @FileID
EXECUTE sp_OADestroy @OLE
END
ありがとうございました! ASCIIに書き込むと、同じエラーが表示されます。 "1"の代わりに "0"を追加するだけで助けにはならなかったので、私は少し違っていました(エラーなしでファイルを書き出しませんでした)。 仕事をしたasciiに書き込むコードは上に示されています – Dennis