本文轉自:https://stackoverflow.com/questions/48135889/writing-nvarchar-to-a-text-file According to the Scripting.FileSystemObject documentation, the Creat ...
本文轉自:https://stackoverflow.com/questions/48135889/writing-nvarchar-to-a-text-file
According to the Scripting.FileSystemObject documentation, the CreateTextFile
method takes a Boolean value to create a Unicode file. You could change the T-SQL code to use that method instead of OpenTextFile
.
EDIT:
Below is an example using OpenTextFile
per Tom's comment. I change the iomode value in your original code from 1 to 8 to match the documentation and added the close and destroy in case your full code is missing those important tasks.
DECLARE @OLE INT; DECLARE @FileId INT; DECLARE @File VARCHAR(max) = 'c:\test.txt'; DECLARE @Text NVARCHAR(max) = N'من نمایش داده نمیشم'; EXECUTE sp_OACreate 'Scripting.FileSystemObject',@OLE OUT; EXECUTE sp_OAMethod @OLE, 'OpenTextFile', @FileId OUT, @File,8,1,-1; EXECUTE sp_OAMethod @FileId, 'WriteLine', Null, @Text; EXECUTE sp_OAMethod @FileId, 'Close'; EXECUTE sp_OADestroy @FileId OUT; EXECUTE sp_OADestroy @OLE OUT;