- Proper storage of all assigned and unassigned Unicode characters from U+0000 to U+10FFFD.
- Ability to store pass through characters (PTCs) in Unicode columns as data and retrieve the characters as entered. For example:
INSERT INTO currency (U&'#20BD' UESCAPE '#');
- Ability to use PTCs in queries. For example:
SELECT feed FROM twitter WHERE feed LIKE U&'%#+01F602%' UESCAPE '#';
- Noncharacters and ill-formed code unit sequences are changed to the REPLACEMENT CHARACTER (U+FFFD) which can pass through and be stored in Teradata.
With UPT enabled, users can expect translation errors to be reduced or eliminated.
Example: Using Pass Through Character Literals
This example shows how you can use pass through character (PTC) literals in a session with Unicode Pass Through enabled. The PTC literals are emoji characters, and the session character set is UTF16.
To run these examples, replace the emoji graphics with the corresponding Unicode code points (such as U+1F601) inserted using your client application.
/**********************************************************************/ /* Enable Unicode Pass Through */ /**********************************************************************/ SET SESSION CHARACTER SET UNICODE PASS THROUGH ON;
/**********************************************************************/ /* CREATE TABLE */ /**********************************************************************/ CREATE TABLE upt_tbl0 ( col1 INTEGER, col2 VARCHAR(6) CHARACTER SET UNICODE ) UNIQUE PRIMARY INDEX (col1);
/**********************************************************************/ /* Insert Pass Through Characters into the table */ /**********************************************************************/
/* U+1F601 = GRINNING FACE WITH SMILING EYES */
INSERT INTO upt_tbl0 VALUES (1, ' ');
/* U+1F602 = FACE WITH TEARS OF JOY */
INSERT INTO upt_tbl0 VALUES (2, ' ');
/* U+1F603 = SMILING FACE WITH OPEN MOUTH */
INSERT INTO upt_tbl0 VALUES (3, ' ');
/* U+1F604 = SMILING FACE WITH OPEN MOUTH AND SMILING EYES */
INSERT INTO upt_tbl0 VALUES (4, ' ');
/* U+1F605 = SMILING FACE WITH OPEN MOUTH AND COLD SWEAT */
INSERT INTO upt_tbl0 VALUES (5, ' ');
/**********************************************************************/ /* DISPLAY ROWS */ /**********************************************************************/
SELECT ' ';
Result:
' '
-----
SELECT * FROM upt_tbl0 WHERE col2 = ' ';
Result:
SELECT * FROM upt_tbl0 ORDER BY col2;
Result: