« 【徒然】日々徒然 | トップページ | 【徒然】歯科通院 4回目 »

【徒然】同業者に質問です( ・・)ノ

Oracleのcharあるいはvarchar2のデータ形式で、データの中身が数字のみか、あるいはアルファベットその他の文字が入っているかを簡単に判断する方法があったら教えてください。
To_numberでわざとエラー起こしてトラップさせるとか、一文字ずつ取り出して、確認というのも考えたんですが、できれば面倒なのであまりやりたくありません。
さくっと簡単に判別する方法があったら教えてください。

以下、仕事ネタです。Oracleネタです。
人によっては置いてけぼりなネタなので、よろしく。


えーと、最近仕事が暇だったんですが、先週声がかかって火達磨ファイヤーなプロジェクトに火消しではいることに。

で、今日ちょろっと概要聞いて、引継ぎも少ししてプログラムをいじることに。

やることは簡単。とあるテーブルの項目を見て、100より小さいとか大きいとかで出力結果を少し変えてCSV形式で吐き出すだけ。

まぁこれくらいなら楽に終わるだろーと思ってさくっと組んで実行したところ変なエラーが。

元々の項目がchar型なんですが、それをnumber型として扱っているので、NULL関係でエラーになっているのかなぁと思いNVL関数を使ったのにやっぱりエラー。

なんでだろうと思い、元のデータを見てみたところ、「null」が設定されていました。データがNullなのではなく、文字列で「null」。
where句で示すと、koumoku is null ではなく、koumoku = 'null' な感じで「null」。

…どこの世界にchar型とは言え、数値を設定する項目に「null」なんていう文字列を入れる馬鹿がいるのか。

最初は、テスト環境なのでテストデータを作ったときに間違えて入れたんだと思っていたんですよ。確認したら、本番環境からこうでした。

このプロジェクトが火達磨になっている理由がなんとなくわかりました。
元システムがおかしすぎる。

まぁ、設計した人間はともかく、実際にプログラム組んだ人間がOracleの基礎知識すらなかったということなんでしょうが、恐ろしいのがそれがテスト通って本番環境で堂々と動いているところだと思います。
誰か止めれ。

で、私このシステムこれから3ヶ月くらいお守りするはめになるみたいなんですが、大丈夫なんでしょうか。orz

|

« 【徒然】日々徒然 | トップページ | 【徒然】歯科通院 4回目 »

日記・コラム・つぶやき」カテゴリの記事

コメント

火消し役ご愁傷様です。

なんか、koumoku = 'null'ってバッチライクな書き方なような・・・
何となく、元のシステムやさんはDBエンジニア
ではなくスクリプト屋なのではと感じます。

なんとなくバッチやスクリプト特有の表現を
使ってそうなところを洗ったほうがよろしいかも・・・

まぁ、私はプログラムもDBもほとんど扱いませんので
(基盤屋ですので)なんともいえませんが
3ヶ月でうまくリリースできることをお祈りします。

以上、忙しいプロジェクトが終わって客先の帰り
目黒川の桜がきれいだなと思った無責任将軍でした。

投稿: 無責任将軍 | 2006年3月29日 (水) 02:35

あー。なんかツールでそんな風な出力になるのがあったような...。
でも、index考えたらそっちの方が都合が良いような気もします。
てゆーかむしろ羨ましいかもw

数値の判定は...僕はEXCEPTIONに飛ばすやり方でやってました。
面倒ですよね。アレ。orz

投稿: 2nd | 2006年3月30日 (木) 02:47

To:将軍さん
うーん、Unixライクな人が作ったとは思うんですが、正直この会社のシステムは動きが怪しすぎて信用がならないのです。

あと、本当に何も考えずにSELECT打ってCSVに吐き出すだけで、元のシステムをいじるような物でもないので、洗ってもという感じです。

To:2さん
全部が全部='null'ならいいんですけど、たまにis NULLも混じっていたりします。むう。
しかし、相変わらずパフォーマンスに苦労している様子で(^^;。

一応数字以外に入ってくる文字が'null'だけならば、DECODEで変換すればよいんじゃないかという感じの助言を同期からもらったので、それで変換してみようかと思っています。
でもシステム自体に信頼性が無いので、それ以外の文字列が入ってきたら嫌だなぁとか。

投稿: とらま | 2006年3月31日 (金) 00:19

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/46411/9293319

この記事へのトラックバック一覧です: 【徒然】同業者に質問です( ・・)ノ:

« 【徒然】日々徒然 | トップページ | 【徒然】歯科通院 4回目 »