Archives of the TeradataForum
Message Posted: Tue, 19 Dec 2006 @ 20:54:03 GMT
Subj: | | Re: Looking for bad data |
|
From: | | Takahashi, Takashi |
If you use the Unicode server character set and store two Thai characters U+0E20 and U+0E40, everything should work correctly as other people
demonstrated. "Sel * from test.rd1 where a=b" will not return a row.
However, if you store the same Thai characters in TIS 620 encoding into Teradata Latin column via ASCII session, you will see the problem.
U+0E20 => 0xC0 in TIS 620
U+0E40 => 0xE0 in TIS 620
CREATE SET TABLE test_rd2 (
a CHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC,
b CHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC)
PRIMARY INDEX ( a );
Insert Into test_rd2 values(_LATIN'C0'XC, _LATIN'E0'XC);
Sel * from test_rd2 where a=b;
=> Teradata returns a row
This is because Teradata Latin is designed for Latin 1 characters, not for Thai.
In Teradata Latin, here is a definition for those values.
0xC0 LATIN CAPITAL LETTER A WITH GRAVE
0xE0 LATIN SMALL LETTER A WITH GRAVE
So, you need Unicode for Thai characters.
|