目次

ニュース

日記カテゴリ

書庫

んー、と先日金額である項目が何でCharなんだゴルァっていう話を書いたわけですが、
はつねさんのDECODEを今日使ってみました。

そしたらちょっと面白いことが(面白いのかなw)

前提として左1桁がプラスとマイナスをあらわすわけなのですが、
あの式だとその項目が1桁(空白含まず)な場合、DECODEするとただの'+'か'-'になるわけですね。

で、SELECTだとそうなってもOKっぽいのに、
WHEREにその式を入れるとエラーなるんですよこれが。

DECODEかける前にCASEで桁が2桁以上ならを条件にして、
2桁以下(つまり1桁)なら0を返すを書いてみたところちゃんと動いた次第です。

うーん、これでいいのかしら(?-?)

投稿日時 : 2008年2月25日 19:07
Feedback
  • # re: こないだの続き(金額がCharな件)
    はつね
    Posted @ 2008/02/25 19:22
    それは
    SELECT TO_NUMBER('+ ') FROM DUAL
    とかだとORA-01722エラーになるからですね。

  • # re: こないだの続き(金額がCharな件)
    taka
    Posted @ 2008/02/25 19:54
    それ実は気づいてました。
    ただ若干不明なのはSELECTだと通るのに
    WHEREだとORA-01722になるんですよねー

    #SELECTだと最終的な型がCHARになるんですかね。
    #うーん、でもその理屈でもおかしいかなぁ
  • # re: こないだの続き(金額がCharな件)
    はつね
    Posted @ 2008/02/25 20:26
    SELECTってWHERE句なしでやってもおちない?
    案外、WHERE句でORA-01722になるようなデータを選ばないような条件がついているとか?
  • # re: こないだの続き(金額がCharな件)
    taka
    Posted @ 2008/02/25 20:35
    んー、ついてないんですよね。
    明日もう一回試してみます。
  • # re: こないだの続き(金額がCharな件)
    taka
    Posted @ 2008/02/26 11:02
    試してみたところ落ちましたね。
    あれ、僕の勘違い?

    まぁ証跡とか残しているわけじゃないのでどうやったかは今となっては追えず。
タイトル
名前
Url
コメント 

Blog 利用状況