• ベストアンサー

半角全角変換ロジックについて

OSはSolaris8、DBはOracle9i、言語はC言語、コードはS-Jisです。 そこで、DBから取得する項目の中で、ある項目について、絶対に半角が入ってはいけないと言う制約があり、全角に変換する関数を作れと言われてしまいました。 期限は1日で試験まで済ませなければならず、ロジックをどうすれば良いか困ってます。そこで、簡単にコーディング出来る方法、内容と、ロジックを教えて下さい。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Paul_xxx
  • ベストアンサー率56% (27/48)
回答No.1

Oracle8iのマニュアル見てみたんですけど TO_MULTI_BYTEなんて関数がありますが、これじゃダメかな 手元にOracleの環境が無くて試せませんので ご参考程度にってことで

minekichi
質問者

お礼

ありがとうございます。 さっそく、調べて見ましたが、半角かなが変換できませんでした。 別に半角かなを全角にする関数があるのでしょうか? それとも、何かオプションが使えるのでしょうか? 非常にいいところまで出来たのに、惜しいです。

その他の回答 (3)

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.4

度々補足します。 replace ではなく、translate です。 濁音, 半濁音については、他のものをtranslate する前に replace で置換してはどうでしょうか?

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.3

こんにちわ。 #2 に一つ補足します。 濁音や半濁音を含む時は、もう少し工夫が必要ですね。

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 Oracle には、to_single_byte, to_multi_byte という関数が 用意されていますが、この関数で変換できるのは、英数だけです。 従って、カナを含む場合カナの部分は変換されません。 問題のデータにカナを含まない場合は、to_multi_byte でOk ですが カナを含む可能性がある場合は、PL/SQL で関数を作成する 必要があります。 作成する関数ですが、replace を使用するのが一番楽だと思います。 select replace(変換前文字列, 'アイウエオ', 'アイウエオ') from dual; とすると、変換前文字列内の全ての'ア','イ','ウ','エ','オ' を全角に する事ができます。 詳細は、「SQL リファレンス」を参照して下さい。

関連するQ&A

  • Excelで半角カナのみを全角に変換したい

    EXCELで、半角カナのみを全角に変換する方法はありますか? JISという関数がありますが、これは英数まで全角に変換されてしまいます。

  • 半角全角混在(JIS)をJEF+EBCDICへのコード変換

    仕事で行うのに必要です。 パソコン(JIS8)から汎用機k-6700a(JEF+EBCDIC)へデータを送ります。 その際、日本語項目で半角全角混在のデータがあり変換させるのに 苦労しています。 汎用機k-6700a側で変換を掛けたいのですが、何か良い手はないでしょうか? 自分で調べた限りでは、サービスツールの標準コード変換サブルーチンで JIS8⇒JEF+EBICDICはできるみたいなのですが、半角全角の区別をどう付けて 良いものかどうか・・・ わかりやすい解答をお待ちしています。

  • 【PHP】全角記号を半角記号に変換するには?

    PHP5使用者です。 全角記号を半角記号に変換するにはどうすればいいのでしょうか? 現在、 mb_convert_kana($str, 'a' , 文字コード); で変換していますが、なぜか  !”#$%&’()*+,-./:;<=>?@[¥]^_`{|}~  のうち、  ’ ” ¥ ~ は変換してくれません。 それに本来これは記号変換の関数ではありませんし… 全角記号を半角記号に変換したい場合、皆さんはどうされてますか? よろしくお願いします。

    • 締切済み
    • PHP
  • 全角文字を半角に変換する

    全角文字を半角へ、またはその半角文字を全角にする 関数もしくは処理がありましたら教えていただきたいの ですが、宜しくお願い致します。 また変換する文字はアルファベットと数字で、漢字とかが 入力されたらエラー表示させる例を提示していただけると たいへんありがたいです。

  • ACCESSの全角、半角・・・

    こんにちは! さっそく質問なのですが、ACCESSのVBAで、入力した文字を全角や半角に変換する関数はありますか?exelでしたら、「asc」や「jis」なのですが、ACCESSの場合は使えませんでした。 ボタンを作成して、そこの「クリック時」のイベントに組み込みたいと思うのですが・・・ よろしくお願いいたします。

  • Excelで全角ハイフンを半角ハイフンに変換したい

    住所録を修正しています。 番地をJIS関数で全角に変換しました。 でもハイフンは以下のように半角にしたいのです。 例)港区3-3-1を港区3-3-1 何か一括変換できる手段をご存知でしたら教えてください。 件数が多く手入力修正はきついです。

  • 半角カタカナを全角カタカナに変換したい

    Windows2000/Microsoft Excel2000です。 入力されている文字列のカタカナが半角になっているのを 全角に一括変換する数式はありますでしょうか? 英数字は半角のまま残したいのですが。 JISを使うと英数字も全角になってしまいます。 ヘルプいただけると大変助かります。

  • COBOLで全角変換を行いたいのですが...

    汎用機(ACOS-4)でCOBOLを使って開発を行っている者です。 INファイルのある項目を全角変換し、 OUTファイルに出力するプログラムを作成しています。 ただ困った事に変換元の項目の内容が 半角のデータ、全角のデータ、半角全角が混在しているデータもあるのです。 現在は項目の中に半角スペースの文字コードが存在すれば全て半角とし、 以外は全て全角と判断しています。 もちろん項目中のデータが全て埋まっている場合や、 半角全角が混在しているデータについては文字化けを起こしています。 どなたかこのような変換について良い方法があればご教授願います。 宜しくお願い致します。

  • ACCESSで全角と半角を変換する

    いつもお世話になっております 早速ですが、 ACCESS2000(OSはWindowsXP)での質問です 住所録を整理しているのですが、 住所欄に全角と半角の入力が混在しています 英数字及びハイフンは半角に カタカナは全角に変換したいのですが、 いい方法はないでしょうか? ちなみにStrconv関数をつかって 何とかしようと思ったのですが、 すべて変換されるので、どうもうまくいきません よろしくお願いします

  • 全角半角?

    ACCESS97を使用しています。 次のような文字があります。 4-22 これを4バイトのデータに追加したところ "‐"と"-"によって "4‐2"となります。 "‐"…全角 "-"…半角という意味でしょうか? またStrConv関数で全角⇔半角、大文字⇔小文字をしたのですが 変換できません。 目的は 4‐22 のデータを 4-22 というように変換して 4バイトのところに全て追加できるようにしたいのです。  (数字ではなく "-"横棒を変換) ACCESSで可能でしょうか?