PostgreSQL 9.5でtextカラムの文字列からByte単位で文字列抽出したいです。
Multi-ByteとSingle-Byteの文字が混在しているtextカラムから
先頭20byteを抜き出して抽出したいのですが、
Oracleの[to_single_byte]関数に似たものがないので対処方法がわかりません。
▼OracleのSQL
select TRIM(SUBSTRB('配管_SS塗装_ポンプ棟_低率_八仙',1,20)) 機器名称20 from dual
→結果「配管_SS塗装_ポンプ棟_」
★★★追加質問★★★
PostgreSQLで以下のSQLだとエラーが出ます。
select convert_from(convert(substring(convert_to('縞鋼板_管理棟_ブロワー室_北部浄', 'SJIS') from 1 for 20), 'sjis', 'utf8')::bytea, 'utf8')
----エラー内容----
ERROR: 符号化方式"SJIS"で無効なバイトシーケンスです: 0x8e (11793)
********** エラー **********
ERROR: 符号化方式"SJIS"で無効なバイトシーケンスです: 0x8e (11793)
SQLステート:22021
両方の文字列が正常に変換できるようにしたいのです。。。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/09/04 00:37
2019/09/09 03:17
2019/09/09 12:26