gpt4 book ai didi

sql-server - 本地 PC 和服务器环境之间的类型转换变化

转载 作者:行者123 更新时间:2023-12-04 17:52:58 25 4
gpt4 key购买 nike

我正在从 SQL 表中获取一些简单的数据,进行一些小的转换并将其转换为 Unicode。然后我将它输出到 Oracle 服务器上的 Oracle CHAR(1 byte) 字段中。

这在我的本地 PC 上没有任何错误。然后我部署到服务器,它说

"Column "A" cannot convert between unicode and non-unicode string data types".

在尝试了几种方法后,我举起双手,将 data conversion 取出到 unicode,现在它坏了,无法在我的 PC 上运行。

但是 - 它现在可以在服务器上运行并且一切正常。我搜索过并发现其他人也遇到过这个问题,但似乎没有人找到原因并通过其他方式解决它。

为什么我的 PC 和服务器不能同时工作?两者的所有表和数据连接都是相同的。除了执行位置外没有变化。

最佳答案

我在我的 SSIS 包中遇到了同样的问题,但没有找到解决方案。

它是一个简单的数据,不包含任何 unicode 字符,如果使用 SQL 查询或 .net 代码转换它不会抛出任何异常......但它在 SSIS 中使用时抛出异常Data Conversion Transformation

解决方法

我做了一个简单的解决方法来实现这个(如果再次出现这个错误你可以使用它)

  1. 我替换了 Data Conversion带有 Script Component 的组件
  2. 我将要转换的列标记为输入
  3. 对于我要转换的每一列,我都创建了一个类型为 DT_WSTR 的输出列
  4. 在每一列的脚本中,我使用了以下代码:(假设输入为 inColumn,输出为 outColumn)

    If Not Row.inColumn_IsNull AndAlso _
    Not String.IsNullOrEmpty(Row.inColumn) Then

    Row.outColumn = Row.inColumn

    Else

    Row.outColumn_IsNull = True

    End If

如果源是 OLEDB Source你可以在 OLEDB source command 中使用转换函数

例如:

SELECT CAST([COLUMN] as NVARCHAR(255)) AS [COLUMN]
FROM ....

关于sql-server - 本地 PC 和服务器环境之间的类型转换变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43042327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com