当我尝试
时,简单的数据流会带来很多麻烦我导入的列( varchar2 25byte )如下所示:
241200001
151200001
211200001
161200001
1231704383
当我选择目标表的列( char 10byte )时,它看起来像这样:
241200001
151200001 3
211200001 3
161200001 3
1231704383
以下屏幕截图显示了source和destinatin之间的数据网格。这里看起来一切都很好。
接下来的截图显示,有零添加和结束,但不是到处都是。 (这是目标任务的预览窗口,但在TOAD中看起来相同)
检查值的长度会得到以下结果,这看起来很不错:
Select
id,
length(id) as length
from test_view
ID LENGTH
------------------------- ----------
42120001 8
23120001 8
22120001 8
26120001 8
25120001 8
22120001 8
22120001 8
23120001 8
18120001 8
18120001 8
1235800020 10
58120001 8
52120001 8
52120001 8
57120001 8
52120001 8
52120001 8
出于某种原因,最后添加了一个带有空格的值。我看到在1-3
之间添加了值,我真的很想知道它来自何处。如果您担心目的地较短,则不会发生截断。当我将目标列设置为varchar2
时,它可以工作,但我们需要保持原样。
在数据流中,数据为string(25)
。那么为什么这个目的地会出现问题?
更新
这很奇怪。我认为代码页警告不会导致此错误。输入数据看起来不错,而且包非常标准。这真的可能是驱动程序问题,还是目标任务的问题/错误?
答案 0 :(得分:1)
尝试在数据流中使用派生列转换将varchar(25)显式转换为char(10) - 错误可能来自隐式转换,但未按预期工作。