- PR -

指定バイト数分取得

1
投稿者投稿内容
茶太郎
ベテラン
会議室デビュー日: 2005/02/23
投稿数: 57
投稿日時: 2006-08-11 12:44
お世話になります。

テーブルの半角、全角を含むフィールドの
先頭から指定されたバイト数分切り出して
取得したいのですが、いまいちやりかたが
不明です。
substr関数では文字数で切り出すためうまく
いきません。
utl_raw.cast_to_varchar2、utl_raw.substrを
使用してやってみましたが、半角1文字、
全角2文字の場合、で2バイト分切り出すと
不正な文字が付いてしまします。

どのようにするとSELECT文で指定バイト数
分切り出すことが可能なのでしょうか?

ご承知のかたどなたか教えてください。
宜しくお願い致します。

Oracle10g
CREA
会議室デビュー日: 2006/08/11
投稿数: 2
お住まい・勤務地: 北海道
投稿日時: 2006-08-11 13:06
Oracle8i環境を使用しています。
残念ながら全角・半角が混在するフィールドテーブルがなく
はっきりとは言えませんが、SubstrBではどうでしょう。

Substrは文字数ですが、Substrbはバイト数です。
こちらには全角のフィールドがあるため、substrb(フィールド,1,3)という
指定をしてみましたが、不正な文字は出力されませんでした。

以上、試してみて下さい。
茶太郎
ベテラン
会議室デビュー日: 2005/02/23
投稿数: 57
投稿日時: 2006-08-11 14:09
CERAさん、ありがとうございます。
試してみます。
1

スキルアップ/キャリアアップ(JOB@IT)