这是我用来编写文本文件的SQL Server存储过程脚本
easyrtc
以下是我为复制问题而执行的示例查询
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[AppendToFileSP]
(
@FileName varchar(4000)
, @Text1 NVARCHAR(MAX)
)
AS
DECLARE @FS int, @OLEResult int, @FileID int
EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUT
--Open a file
Print @OLEResult
EXECUTE @OLEResult = sp_OAMethod @FS, 'OpenTextFile', @FileID OUT, @FileName, 8 , 1
Print @OLEResult
--Write Text1
EXECUTE @OLEResult = sp_OAMethod @FileID, 'WriteLine', NULL, @Text1
Print @OLEResult
EXECUTE @OLEResult = sp_OADestroy @FileID
Print @OLEResult
EXECUTE @OLEResult = sp_OADestroy @FS
Print @OLEResult
GO
我得到的输出如下
DECLARE @Text1 NVARCHAR(MAX)
SET @Text1 = N'共發現'
EXEC AppendToFileSP 'C:\AppTextFile1.txt',@Text1
Print '------------------'
SET @Text1 = N'sample'
EXEC AppendToFileSP 'C:\AppTextFile2.txt',@Text1
虽然在两种情况下都创建了文件,但无法将中文字符写入文件(AppTextFile1.txt)。
从存储过程
修改下面的代码后0
0
-2146828283
0
0
------------------
0
0
0
0
0
到
EXECUTE @OLEResult = sp_OAMethod @FS, 'OpenTextFile', @FileID OUT, @FileName, 8 , 1
两个文件都已创建。但是,它不符合我的需要,我应该能够创建一个文件并附加unicode文本。