Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello Team,
We are currently running a pipeline project in Qlik Talend Cloud to replicate data from Oracle to Snowflake.
During this process, we noticed that CHR(0) (null characters) from the Oracle source are being converted into spaces (whitespaces).
We have already investigated the pipeline steps and confirmed that this conversion (where CHR(0) becomes spaces) is already occurring at the stage where the data is loaded from Oracle to the external storage (Amazon S3).
Could you please let us know if there is any workaround, configuration, or parameter setting to prevent this conversion and preserve the null character?
Best Regards.
Hi @iti-attunity-sup,
Thank you for reaching to Qlik community.
In Qlik Talend Cloud, Oracle CHR(0) (null character) cannot be preserved. It is automatically converted to spaces when data is staged in S3 and then loaded into Snowflake. This is expected behaviour because Snowflake does not support embedded null characters in strings.
The only workaround is to replace CHR(0) with a custom placeholder (like ~ or [NULLCHAR]) using character substitution rules or ETL transformations before loading. That way, you avoid confusion with normal spaces and still keep track of where nulls existed.
Hello Sainadh_Moole,
Thank you for your response.
Specifically, what exactly is the limitation in Snowflake regarding embedded null characters (CHR(0)) in string types?
My understanding is that Snowflake itself can store CHR(0) in string columns .
If the database engine itself can hold the data, is the limitation you referred to specific to the data loading/ingestion mechanism, or is it a fundamental limitation of Snowflake?
We would appreciate any detailed documentation or technical explanation you could share so we can find the best way forward.
Best regards.
Hello @iti-attunity-sup ,
To clarify, CHR(0) can be preserved during replication from Oracle to Snowflake.
Qlik Replicate
No special configuration is required. CHR(0) is preserved automatically during both Full Load and Change Data Capture (CDC).
QCDI (QTC)
You need to configure an internal parameter truncateTrailingBinaryZerosInChars in the Oracle source connector and set it to false. For example:
Prepare the task and run it again.
Hope this helps.
John.