次のテーブルについて考察します。
CREATE TABLE ctable1 (c1 VARCHAR(11) CHARACTER SET KANJI1);
次のテーブルは、KanjiEBCDICクライアント文字セットからKANJI1文字列を抽出する場合のTeradataモードでのSUBSTRとSUBSTRINGの違いを示したものです。
c1の内容 | 問合わせ | 戻り値 |
---|---|---|
MN<ABC >P | SELECT SUBSTR(c1,2) FROM ctable1; | N<ABC>P |
SELECT SUBSTR(c1,3,8) FROM ctable1; | <ABC> | |
SELECT SUBSTR(c1,4) FROM ctable1; | ABC >P シフトアウト(<)がないため、クライアント アプリケーションが、結果のマルチバイト文字を正しく変換できません。
|
|
SELECT SUBSTRING(c1 FROM 2) FROM ctable1; |
N<ABC>P | |
SELECT SUBSTRING(c1 FROM 3 FOR 8) FROM ctable1; |
<ABC>P | |
SELECT SUBSTRING(c1 FROM 4) FROM ctable1; |
<BC>P |