[pgsql-jp: 32008] Re: Access 2000からODBC 経由にてデータを転送した場合の問題

Kazumasa Gotoh kgotoh @ cic-kk.co.jp
2004年 1月 14日 (水) 00:25:08 JST


From: 岩瀬 肇 <iwase-h @ mxy.nes.nec.co.jp>
Date: Tue, 13 Jan 2004 16:04:17 +0900

> それから、「SQL 文自身は case insensitive である」とは
> どういう意味でしょうか?辞書等で調べた限り「無感覚な場合」としか
> 出てこないので、よく意味がわかりません。
> 申し訳ありませんが、日本語でご説明いただけませんでしょうか?
> それとも、英語でないと説明できない事象なのでしょうか?

case sensitive/case insensitive については、すでに 'yoshiyuki fukutome
<tome @ nekomyu.org>' さんが説明してくださっていますが、あえて日本語で
言えば「英大文字・英小文字の違いを意識する/意識しない」とでもなるのだ
と思います。
少なくとも、コンピュータの世界においては、文法定義や言語規約の記述に
おいては頻繁に用いられる idiom のひとつです。

ここでの 'case' は、英語で大文字は upper case, 小文字は lower case
と言うところの 'case' です。単語ではなく文脈で判断すればわかるかと
思いますが…
蘊蓄っぽく言うと、大文字/小文字を upper case/lower case と呼ぶ
語源は、活字で活版を組む際の、活字を箱にしまう時の収納方法として、
大文字の活字は上段の箱に、小文字の活字は下段の箱に収納するのが普通で
あったことによるのだと聞いたことがあります。

私が英語を用いて書いたのは、日本語での表現がやや長ったらしいのと、
コンピュータ業界… あるいはプログラマの世界では、「計算機」と書かずに
「コンピュータ」と書くのと同じくらいに一般的な用語であると私は
認識しているためです。

何らかの言語(SQL も言語です)を使ってプログラムを書く際には
文法書や言語規約書を読まないとどう書いたらよいのかわかりませんし、
文法書や言語規約書にはその言語が case sensitive か case insensitive
かの説明が必ずあります。

例えば C や Java などは case sensitive で、COBOL や PL/I などは
case insensitive です(あるいは処理系の定義でそうなっている)。

Standard SQL の定義がどうなっているかという事もありますが、
処理系としての PostgreSQL では、確かそのマニュアルに SQL 記述は
case insensitive であるという記述があったはずです…
# もちろん、クォートした場合を除く。

一般に、プログラマはこのような部分を常に意識するものですし。

> MS-Access上で作成しているので、CREATE TABLE等は一切行っておりません。

CREATE TABLE を行わなければテーブルが存在するはずがありません。
そちらでは MS Access 経由で CREATE TABLE を行ったというだけの
事なのでしょう。
ご自分が何を行っているのかという事は、正確に理解するようにすべきです。

さて、そうすると、たぶん MS Access でテーブル定義やカラム定義を
行う際に、例えば UserName というように行ったのではないでしょうか?

それがそもそもの諸悪の根元なのです。
それが何故いけないのか、ここまでの説明でおわかりになりますか?

Access や ODBC などという邪悪なものは私は普段使っていないので
よくわかりませんが、結果から推測すると、テーブル名称やカラム
名称に対して常にダブルクォートなどでくくっているのかも知れません。

> JAVAで利用しているというのは、JAVAからPostgreSQLを利用しているという
> 意味で書かせて頂きました。わかりにくい文章で申し訳ありません。
> そのため、JAVAのソース内で利用しているSQL文の全てのフィールド名を
> ダブルクォートで囲うのは工数が大きくなってしまうと、お伝えしたかった
> のです。

ですから、前のメイルにも書いたように「テーブル定義をし直しましょう」
というのが私の助言です。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
(株) セントラル情報センター
                             後藤和政    kgotoh @ cic-kk.co.jp



pgsql-jp メーリングリストの案内