[ データベース ] カラム名に¥とか#とか特殊文字使うなよな。反論は聞かない。

Pocket

毎度のまさおの愚痴コーナーです。

「だん吉、なお美のおまけコーナー」より断然つまらないコーナーです。

今回はデータベースのカラム名とかについて愚痴ります。どれだけ理屈を並べ立てても、カラム名に¥とか#のような記号を使うことは避けましょう。

スポンサーリンク

バカなの?どれだけ世間知らずなの?

データベースのカラム名に#や¥記号を使いたい気持ちはわかります。お金を格納するカラムには¥記号をつけたくなる気持ちもわかります。でも、エンジニアであれば絶対にやりません。やってはいけません。百害あって一利なしです。

「なぜ使ってはいけないの?」「使えるでしょ?」

という人は、勉強し直す必要があります。この手の人は、出来る出来ないで判断するバカです。愚痴モードなので断言しておきます。

続けます。

今回、¥や#記号のついたカラム名のテーブルから値を取得しようと SQL を書いたのですが、#は大丈夫だったのですが、¥記号を含むカラムから値を取得しようとしてもエラーとなってしまいました。次のようなSQLです。困りました。

select
    uriage\,
    uriage2\
from
    uriage_table    

「2重引用符で囲えば大丈夫かな?」と思い試してみたのですが、それでもエラーとなってしまいます。プログラムは、C# の OleDb を使用していました。データベースは DB2 です。

別の手段を選ぼうにも、選択肢がない状況です。ないものはないのです。

それでもエラーを回避したい人へ

カラム名をつけた人はバカです。かといって、それが分かった所で仕方がありません。なんとかエラーを回避する方法を考える必要があります。ムカつきながらも考えた結果、次のような SQL で無駄な情報もまるっと取得することになりますが、なんとか乗り切ることができることが判明しました。

select
    uriage_table.*
from
    uriage_table 

一旦ゴソッと取得したのち、row[@”uriage\”] のようにカラム名を指定して取得することが出来ました。しかし、カラム数が多かったので、取得項目は200近くに達しました。サイテーです。

きっと、困っている人もいるかと思います。その時は、とりあえずはここで示した方法で乗り切ることができるかもしれませんし、それでも駄目かもしれません。

それでも誰かの役に立つ愚痴であることを願っています。

 

(愚痴、おしまい)

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *