はじめに
Verticaがサポートしている文字コードはUTF-8です。そのため、UTF-8に対応していないデータが追加された場合は文字化けします。Verticaにデータを追加後、正常にUTF-8でデータが格納されているかどうかを確認したい場合は、ISUTF8関数を利用します。ISUTF8関数
ISUTF8関数は指定したデータに対して、以下の内容を確認します。UTF-8の標準に準拠する場合は「true」を返し、それ以外の場合は「false」を返します。・無効バイト
・予期しない継続バイト
・開始バイトの後に十分な継続バイトがない
・オーバーロードのエンコーディング
・予期しない継続バイト
・開始バイトの後に十分な継続バイトがない
・オーバーロードのエンコーディング
構文
ISUTF8( カラム名 );
パラメータ
カラム名:UTF-8に準拠しているか確認する対象
実行例
文字化けのデータに対して、ISUTF8関数で確認した場合の実行例をご紹介します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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) |