We are running Teradata 13.10, and there is a simple table consisting of 3 columns, one of the columns is of type "VARCHAR(20000) CHARACTER SET UNICODE".
When we try to INSERT a rather large string text (about 15600 characters) into this column, we get the "6706 Untranslatable Character" error. However, if we randomly cut away some 100 characters from the string, shrinking its length to about 15500 characters, the INSERT would work successfully. We tried to change the character set of this column to Latin, and the same problem occurs.
We tried to use the Translate_chk function to find which characters are causing the problem, but when we executed the following statement
SELECT translate_chk('our large string' using latin_to_unicode)
to check our large string, the translate_chk function itself would throw the "6706 Untranslatable Character" error. Again if we randomly shrink the string to about 15500 characters, the function returns the correct result 0, indicating there isn't any irregular characters in the string causing the trouble.
So it seems in our case the "6706 Untranslatable Character" error was caused by the length of the string. Strange, because the length of our large string is still well below the limit of the table column, and the error 6706 should not be caused by the string length exceeding some hidden limit? Shouldn't the translate_chk return the positions of the untranslatable characters in the string, instead of throwing the 6706 error itself?
Can anyone please provide some insights on this issue? Any help is appreciated. Many thanks in advance.
Is this a literal string you're trying to insert?
Then i would expect the limit to be 15500 Unicode characters and a 3738 error:
3738 String is longer than 31000 characters.
Explanation: Quoted strings cannot be longer than 31000 physical characters.
Generated By: LEX modules.
For Whom: End User.
Notes: To insert longer strings, the user must have a USING clause and a DATA parcel that contain the characters.
Remedy: Correct the statement to have a shorter string, and resubmit the request.
Thanks for your reply dnoeth.
The string contains only western characters, I think it doesn't violate the constraint of the maximum 31000 chars in a quoted string. The "6706 Untranslatable Character" error is the only error we are getting.
Upon further investigation today, we found that it seems the TAB spaces in the string are causing the trouble. Our large string is in fact a piece of program code, which contains a large number of TAB spaces. Once we removed all the TAB spaces in the string, the 6706 error stopped to occur. However, why the TAB spaces can cause a unicode translation error is still unknown. Anyone had similiar experiences?
Many thanks in advance.
Also, the translate_chk is failing with a 6706 on an internal translation to the Latin character set.
- David Craig
I am trying to load teradata table from informatica, while loading into the table some of the records are rejected with follwoing error.
ERROR : (11392 | WRITER_1_*_1) : (IS | IS_Dev)
We have checked all the informatica settings and we ensure all the setting are appropriate to handle Unicode characters.
But the Teradata table does not allow some of the records to load into it.
We have checked the table structure and all the column are defined as CHARACTER SET UNICODE CASESPECIFIC
some of the rejected row given below
could you pls the provide the solution for it.
Reply would be appreciates.