A simple data flow causes a lot of trouble when i try to
- read data from one column (oracle 9.2.0.8) and
- directly write it to an oracle destination table (same database)
The column(varchar2 25byte) i import looks like this:
241200001
151200001
211200001
161200001
1231704383
When i select the column(char 10byte) of the destination table, it looks like this:
241200001
151200001 3
211200001 3
161200001 3
1231704383
The following screenshot shows the data grid between source and destinatin.Here, everything seems to be fine.

The next screenshot show, that there are zeros added and the end, but not everywhere. (This is the preview window of the destination task, but it looks the same in TOAD)

Inspecting the length of the values gives the following result, which seems pretty ok:
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
For some reason, there is a value added at the end with a space. I’ve seen values being added between 1-3, i really wonder where this comes from. There is no truncation occurring if you are worried about the shorter destination. When i set the destination column to varchar2 it works, but we need to leave it as it is.
Inside the data flow, the data is a string(25). So why should there be a problem with this destination?
UPDATE:
This is weird. I don’t think the codepage warning is causing this error. The input data looks good, and the package is pretty standard. Could this really be a driver issue, or a problem/bug of the destination task?
Try using a derived column transformation in the data flow to explicitly convert varchar(25) to char(10) – the error may come from an implicit conversion not working as expected.