2017-03-22 106 views
2

我有一個問題:我可以加載.docx文件轉換成一列documentbodyntext數據類型爲使用SQL查詢我的表testing.dbo.table00插入Word文檔到SQL Server

我收到一條錯誤消息

Msg 206, Level 16, State 2, Line 2
Operand type clash: varbinary(max) is incompatible with ntext

代碼:

INSERT INTO [Testing].[dbo].[table00](documentbody) 
    SELECT BulkColumn 
    FROM OPENROWSET(BULK N'C:\Users\XXX\filename.docx', SINGLE_BLOB) as TheFile 

我也曾嘗試以下查詢:

INSERT INTO [Testing].[dbo].[table00](documentbody) 
    SELECT BulkColumn 
    FROM OPENROWSET(BULK N'C:\Users\XXX\filename.docx', CLOB) as TheFile 

但我發現了這個錯誤:

Msg 155, Level 15, State 1, Line 4
'CLOB' is not a recognized BULK OPENROWSET provider option.

我該如何解決這個錯誤?謝謝

+1

'ntext','text'和'image'數據類型將在SQL Server的未來版本中刪除。避免在新的開發工作中使用這些數據類型,並計劃修改當前正在使用它們的應用程序。改爲使用'nvarchar(max)','varchar(max)'和'varbinary(max)'。 [請參閱此處](http://msdn.microsoft.com/en-us/library/ms187993.aspx)。 Plus:將Word文件存儲爲**二進制**字節流 - 使用'varbinary' - 不是文本'varchar(max)'列..... –

回答

2

它說在錯誤 - 你試圖插入varbinary數據到一個列是ntext數據類型。您應該將列documentbody更改爲varbinary數據類型。您可以使用語法做到這一點:

ALTER TABLE table_name 
ALTER COLUMN column_name datatype; 

延伸閱讀 - binary and varbinary (Transact-SQL)

+1

謝謝!在將列更改爲varbinary數據類型後,設法加載它。 – grc