OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

TO_NUMBERについて。

  • すぐに回答を!
  • 質問No.119335
  • 閲覧数465
  • ありがとう数5
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 55% (37/67)

pl/sqlで
select
SUBSTR(LPAD(TO_CHAR(NVL(koza_no, 0)), 8, '0'), 2, 7),
from XXX;
とした時に、
to_charつけると全桁フルとか全桁スペースとかテストパターン色々やってみたけど7文字が14文字になっちゃうのです。
だから結局
SUBSTRB(LPAD(TO_CHAR(NVL(koza_no, 0)), 8, '0'), 2, 7)
にしましたが、なぜか分かる方、回答をお願いいたします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル10

ベストアンサー率 28% (39/138)

>1桁目から取得できないのはちょっと謎ですが、2桁目から取得する方法を仕事場の>皆さんが試しているのでそれでいいらしいです。
>腑に落ちませんが。。。
Oracleの仕様です。数値型をTO_CHARで変換した場合の頭スペースは本来は符号(+)が入る所です。マイナスは-を表示しプラスはスペース(空白)となるのです。プラスの時に空白を取ることも可能です。
詳しくはリファレンスマニュアルのTO_CHAR関係をご覧ください。
お礼コメント
chika_chan

お礼率 55% (37/67)

ありがとうございました。
ORACLEの仕様ならば納得です。
「一般人」の方なのに物知りですね~
見習わなくちゃ★
どうもありがとうございました(^-^)/
投稿日時 - 2001-08-29 08:12:28
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル7

ベストアンサー率 50% (8/16)

> 全桁フルとか全桁スペースとかテストパターン色々やってみたけど この部分がよく分からないです。 koza_no ってのはNumberで、7バイトの前0埋めをしたいということだと思いますが、 私は全然問題ないと思います。 LPADで8バイトの0埋めをして、 あとから右7バイトを取っているのは、 koza_noに7桁以上の数字が入っている場合を考慮していると判断しました。 ...続きを読む
> 全桁フルとか全桁スペースとかテストパターン色々やってみたけど

この部分がよく分からないです。

koza_no ってのはNumberで、7バイトの前0埋めをしたいということだと思いますが、
私は全然問題ないと思います。

LPADで8バイトの0埋めをして、
あとから右7バイトを取っているのは、
koza_noに7桁以上の数字が入っている場合を考慮していると判断しました。

7文字が14文字になる...なぜでしょう...
役立たずにすみません。
お礼コメント
chika_chan

お礼率 55% (37/67)

ありがとうございました。
「全件フル」「全件スペース」はkoza_noの中身を中身を調べたり、スペースが入っているのか調べたりのテストです。
1桁目から取得できないのはちょっと謎ですが、2桁目から取得する方法を仕事場の皆さんが試しているのでそれでいいらしいです。
腑に落ちませんが。。。
回答書いてくださっただけでもありがたいことです。
ありがとうございました。(^-^)/
投稿日時 - 2001-08-17 12:37:17


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ