我需要使用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。
答案 0 :(得分:0)
我通过在更新步骤之前创建KEY_LEN为LEN(键)的派生列来解决问题。然后我在更新中将它用作第三个参数:
UPDATE Table SET column1 = ? where KEY = SUBSTR(?,0,?)