• ベストアンサー

SQLの書き方を教えてください

お世話になります。すみませんが教えてください。 ORACLE9iに対してプログラムのSQLの中で以下のような記述をしています。 SUBSTRB(A.TORIHIKISAKI,1,6) ここで、TORIHIKISAKIに「オきゃくさま」というデータが処理対象になったときに、「オきゃ」となってしまいます。 6バイトにして出力したいので「オきゃ」+ブランク1バイト の形にしたいのですがどのように記述すればよいのでしょうか? お手数ですが経験者の方、ご回答、よろしくお願いいたします。

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

  • ベストアンサー
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.3

#2です。 以下を試してみました。 "オ"は半角です。半角スペースは"_"で表現しています。 RPAD(SUBSTRB('オきゃくさま',1,6),6,'o') →'オきゃ_' RPAD(SUBSTRB('オきゃくさま',1,5),6,'o') →'オきゃo' なので、SUBSTRBの時点で半角スペースが補完されていると思われます。

SQLBEGINNER
質問者

お礼

回答ありがとうございます。 御礼遅くなりましてすみませんでした。 うまくいきました!

その他の回答 (2)

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.2

SUBSTRB(A.TORIHIKISAKI,1,6) の段階でブランク1バイトが補完されていると思うのですが。 「オきゃくさま」の「オ」は半角カタカナですか? 全角カタカナだと「オきゃ」で6バイトになるのでブランクは入りません。

SQLBEGINNER
質問者

補足

すみません、「オきゃくさま」の「オ」は半角カタカナです!「オきゃ」で5バイトになります! gooでは勝手に2バイトになってしまうのですね。。。

回答No.1

お世話になります。 環境がないので試せないのですが、 RPAD(SUBSTRB(A.TORIHIKISAKI,1,6), 6) はどうでしょうか。

参考URL:
http://oracle.se-free.com/dml/05_pad.html

関連するQ&A