转换NTEXT& nvarchar(255)到nvarchar(max)

时间:2017-02-15 19:24:06

标签: sql-server ssis sql-server-2016

如何将NTEXT列转换为NVARCHAR(MAX)?

我有4个数据库,其中有一个表存在于所有四个中。在此表的内部,Notes 类型的NTEXT列除了在一个数据库中,其中该列为nvarchar(255)

所以:

  • 3 NTEXT
  • 1 nvarchar(255)

我的ETL从这四个表中获取数据,并将它们放入一个Notes列的类型为nvarchar(max)的表中。

我没有意识到一列是nvarchar(255),直到我的ETL不起作用,因为所有四个表都应该在结构上相同。

错误:

  

[Source DB [25]]错误:Source出错   DB.Outputs [OLE DB源输出] .Columns [Notes] on Source   DB.Outputs [OLE DB源输出]。返回的列状态为:   “DBSTATUS_UNAVAILABLE”。

我猜这是问题,因为错误并不具体。如何将此列转换为nvarchar(max)

1 个答案:

答案 0 :(得分:2)

在oledb源代码中,从表中写入一个select并将列转换为NTEXT,即

SELECT ..., Convert(ntext, Notes) as Notes