来自SSIS项目的oracle更新查询中的Varchar2

时间:2015-02-11 19:40:44

标签: sql-server oracle ssis

我需要使用SSIS在Oracle数据库中进行更新。我正在使用自定义数据库任务并使用如下查询:

  UPDATE Table SET column1 = ? where KEY = ?

密钥取自SQL Server表,是一种nvarchar(3),oracle数据库中的密钥是varchar2(3)类型。首先,它抱怨键是4个字符所以我将查询更改为

  UPDATE Table SET column1 = ? where KEY = TRIM(CAST(? AS VARCHAR(3)))

它适用于具有3个字符的键,但也有2个字符长。我试过修剪它,转换它。但我无法使其适用于2个字符键。

为char设置的Oracle chararcter是AL32UTF8和NCHAR - AL16UTF16。

1 个答案:

答案 0 :(得分:0)

我通过在更新步骤之前创建KEY_LEN为LEN(键)的派生列来解决问题。然后我在更新中将它用作第三个参数:

UPDATE Table SET column1 = ? where KEY = SUBSTR(?,0,?)