はじめに
Verticaがサポートしている文字コードはUTF-8です。そのため、UTF-8に対応していないデータが追加された場合は文字化けします。Verticaにデータを追加後、正常にUTF-8でデータが格納されているかどうかを確認したい場合は、ISUTF8関数を利用します。
ISUTF8関数
ISUTF8関数は指定したデータに対して、以下の内容を確認します。UTF-8の標準に準拠する場合は「true」を返し、それ以外の場合は「false」を返します。
・無効バイト
・予期しない継続バイト
・開始バイトの後に十分な継続バイトがない
・オーバーロードのエンコーディング
構文
ISUTF8( カラム名 );
パラメータ
カラム名:UTF-8に準拠しているか確認する対象
実行例
文字化けのデータに対して、ISUTF8関数で確認した場合の実行例をご紹介します。
dbadmin=> select *,isutf8(col2) from tbl_a order by 1;
col1 | col2 | isutf8
------+------------+--------
1 | ABCDEFG | t
2 | 12345 | t
3 | あいうえお | t
4 | アイウエオ | t
5 | 東京 | t
6 | k
Cケ | f //★UTF-8の文字列ではない
・ | f //★
8 | 福岡 | t
(8 rows)
//件数のみを確認したい場合
dbadmin=> select count(*) from tbl_a where isutf8(col2) = 'f';
count
-------
2
(1 row) 検証バージョンについて
この記事の内容はVertica 9.1で確認しています。