• ベストアンサー

日本語の表名、列名の利用について

お世話になっております。 Oracle10g、11gで、できれば日本語の表名、列名を使用しようと思っております。検索してみると、9iあたりでは問題があるようですが、10g、11gでは該当の記述を見つけることができませんでした。 10g、11gでは、表名や列名に日本語を使っても問題はないでしょうか。 関連した情報の場所等をお教えいただければ幸いです。 どうか、よろしくお願いいたします。

  • Oracle
  • 回答数2
  • ありがとう数5

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

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.2

 テーブルを使用するのも作成するのも面倒がありますが、構文上の問題はありません。というのが、答えになるでしょうか。  表名や列名に日本語文字を使用する場合は、名前を" "で囲う必要があります。制約はただこれだけです。(マニュアルに記載があります。)  ただこれだけのことなので、自分で開発したデータベースを、自分で作成したアプリで利用する場合には、何の問題もありません。ただし、日本語とシングルバイトの英文字が混在する場合は注意してください。この場合、英文字の方の大文字小文字をきちんと区別する必要があります。""で囲っていない場合は、総ての名前は大文字変換されて使用されるのですが、囲った場合はこの変換がないからです。  それより、やっかいごとは外からやってきます。  データベースの開発・メンテナンスにsql plusやEMだけを利用しているなら大丈夫ですが、サードパーティー製のソフトを利用している場合は、そのソフトが日本語表名・列名を正しくサポートしていることが必要です。  また、アプリケーションの作成の際に、ライブラリーなどを利用しているのであれば、これらも正しく日本語表名・列名に対応している必要があります。  なぜなら、普通列名や表名を" "で囲うということはしないからです。囲うことによる副作用もありますから、ライブラリーやソフトが日本語文字が混在していることを正しく認識して、日本語の混じっている時だけ正しく" "で囲うという処理が必要で、これは、明らかに特殊な処理ですから。    まぁ、今までの経験からすると、囲わなくても正しく動くことが多いです。が、正式に構文として明記されている以上、動く方が偶然であると認識しておくことは必要でしょう。特に、二バイト目のコードがASCIIコードの特殊文字の文字コードと同じになっているいくつかの文字あたりが鬼門になると思います。  表名も列名もとっても見やすくなり、メンテナンスも楽になります。が、ある程度のリスクを抱えての選択であると言うことは意識しておく必要はあるでしょう。  作法としてやって良いかどうかは、宗教論争の面がありますで、避けることにします。

kisoyasa
質問者

お礼

mitoneko 様 ご回答いただき、ありがとうございました。 「自分で開発したデータベースを、自分で作成したアプリで利用する場合には、何の問題もありません。」という点。よく理解できました。私の場合は、おかげさまで安心して利用できます。 また、作法としては「宗教論争の面」があるということもわかり、勉強になりました。 的確な回答をいただき、感謝しております。ありがとうございました。

その他の回答 (1)

  • dda167
  • ベストアンサー率76% (55/72)
回答No.1

> 表名や列名に日本語を使っても問題はないでしょうか ダブルクォートすれば問題はないようです(結構面倒です)。 ・参考サイト http://homepage3.nifty.com/yamada_ken1/starthp/subpage09.html http://www.shift-the-oracle.com/guideline/multibye-character-objectname.html ・OTN掲示板の参考スレッド http://www.oracle.co.jp/forum/message.jspa?threadID=8006221 # 日本語の表名、列名の問題は宗教論争になりがちで……

kisoyasa
質問者

お礼

dda167 様 いつも適切なご回答をいただき、感謝しております。 よく理解できました。 MySQLをやりましたときには、5Cコードの問題があり、日本語は絶対ダメと思っていたのですが、Oracleではダブルクォートで問題がない(Oracle内だけでは)のですね。 ありがとうございました。

関連するQ&A

  • Oracleのビュー作成時に「指定した列名の個数が無効です」エラー

    初歩的な質問かと思いますが、宜しくお願い致します。 Oracle10gでViewを作成する際に、以下のようなSQLを発行しています。 SELECT 列名1 FROM テーブル名1 この際、スケール(小数点)ありの列名を指定すると 「指定した列名の個数が無効です」というエラーが表示されてしまうのですが、エラー原因がわかりません。 (スケールなしの列名は問題なし) お手数ですが、ご教示いただけませんでしょうか。

  • 海外で日本語検索をするとどうなるのか?

    こんにちは 近々、アメリカへ赴任することが決まりました。 そこで、みなさんにご質問がございます。 海外でインターネット検索をした時、日本語の記事は出てくるのでしょうか? 例えば、日本で英語で『internet』と検索しても、当然のように日本語のサイトがヒットします。 つまり、日本内で検索すると、英語で検索しようとも、日本語のサイトが出てくるように設定されているのだと思います。 それでは逆に、アメリカで日本語を用いた検索をした場合はどうなるのでしょうか? また、この場合、日本で検索した時のような検索結果をアメリカにいながら表示することは可能なのでしょうか? ※また、PC自体は日本から持ち込みますので、フォント関連は問題ありません。しかし、長期滞在なので買い換えることもあるかもしれません。 どなたか詳しい方がおりましたら、教えていただけると幸いです。

  • InternetExplore で日本語入力できません

    お世話になります。 先ほど別の質問をしようと思い気づいたのですが、 例えばOKWEBに質問をする際に書く場所に 日本語入力できません。Google検索のキーワード入力領域にも入力できません。 (通常「半角/全角」キーで日本語とアルファベットを変更できますが、 できないのです。) どうすれば直りますか。 ご教授くださると幸いです。 今は、ノートパッドに一旦記述してからコピーしています。 IEのアドレスを記述する場所には日本語入力できます。 OS: Windows Xp SP2 IE: 6.0

  • oracleの表の各列に対して、

    oracleの表の各列に対して、 不正な文字がないかどうかをチェックする方法として、 select 各列名 from 表名 where文で実施したいのですが、 1文字づつチェックするsql文はどのようにしたら良いでしょうか? 例:abcXXXefg aからgまでをチェックし、XXX部分の不正文字を抽出する。 宜しくお願いします。

  • Google日本語入力について

    このフォーラムで「Google日本語入力」で検索をかけたら、 Google日本語入力とATOKを比較するなどいろいろな話題があって、Google日本語入力への関心の高さを改めて実感しました。 Google日本語入力はサジェストが売りですが、このサジェスト、特殊な用語とか特殊な固有名詞には強いみたいですが、一般的な文章に使えるレベルとはほど遠いと思います。 例えば、「ちゅうしんに」と入力してサジェストすると、今のところ候補は何も出てきません(最新バージョン1.2.825.0による)。 「ちゅうしんに」とくれば、「中心に立つ」、「中心にある」、「中心に位置する」など、日本語には「ちゅうしんに」に関連するいろいろな言葉があります。しかしGoogle日本語入力のサジェストは、こうした一般的な語句の組み合わせには対応できていないのです。 この辺りの事情について、みなさんのご意見を拝聴できれば幸いです。

  • Perlで変数内の日本語が文字コードに変換される

    お世話になります。Googleやbingなどで調べて見ましたが検討もつかず困っております。 PerlでDBIを使用し、データベースのテーブルAに対してSelectした場合に、fetchrow_hashrefを使用しSelect結果を取得した場合に、テーブルの列名が文字ではなく文字コードが格納されてしまいます。 テーブルAの列名はUTF-8の日本語文字になります。 以下、列名 ID|登録者|登録日 fetchrow_hashrefを使用した場合、以下のように返ってきます。 $VAR1 = { "\x{767b}\x{9332}\x{8005}" => '106.190.xxx.xxx', "\x{767b}\x{9332}\x{65e5}" => '2012-05-06 00:52:40.39496', 'id' => 38 }; 問題は目的のデータに対して列名('登録日'など)で参照する事が出来ない事ですが、今のままテーブルの列名は日本語のままで回避する方法をご教授いただけないでしょうか? hashrefを使いたい理由はテーブルの列順番が変わった場合でもプログラム上の変更を減らすために、列名にて参照したいためです。ですのでarray系の取得メソッドはなるべく使わないようにしたいです。 出来ればなぜこのようなことが起こるのか原因も含めてご教授いただけると大変助かります。。 ちなみに、データベースはPostgreSQLの8.2で日本語文字に対応していることは、自分でselectなどのコマンドを叩き確認済みです。 ヒントでもかまいませんので、どうかよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • oracle日本語カラム名

    ただ今お客様の要望でカラム名、及びテーブル名を日本語で作成しております。accessで情報を見れるよう考えています。 oracle10gで作成したところカラム名、及びテーブル名を英語で作成したときより検索に大幅に時間がかかるようになりました。どなたか原因を知っている方は教えていただきたです。 ちなみにデータ容量は約100万件1.5G程度です。

  • 日本語を問う

     大学のレポートで「日本語を問う」というレポートを課されました。内容は「国語辞典から、問題となる意味または文法記述を抜き出し、それについて現代での使用、用法と比較して、言及してください。」というものなのです。  例えば、辞書にAという言葉はBという意味であると書かれているが、実際の会話などではB’またはCという意味で使われている。そしてそれについて理由などを考えて述べなさい、という事です。  私自身普段積極的に日本語を使わないので(私は日本人で日本語母語話者ですが、普段から人と喋らないし、間違った日本語を使用しているわけでもないので、)改めて言われても具体的な日本語が思いつきません。  このような説明で分かるかどうかはわかりませんが、皆さんは何か辞書に記述されている内容と実際の用法が異なっている日本語の現象に遭遇したことはありませんか。もしあるならば教えていただけると有難いです。

  • どの国のMacBookでも日本語は利用できるのでしょうか?

    どの国のMacBookでも日本語は利用できるのでしょうか? いつもお世話になっています。 MacBookはシステム言語が多数対応していると聞きましたが、海外で購入したMacBookもシステム言語を日本語に変えれば問題なく使えるのでしょうか?

    • ベストアンサー
    • Mac
  • Android対応の日本語の対義語&反対語辞典は?

    docomo Androidスマホ SO-01H (by SONY)を使用しています。 ちなみに、私が現在インストしている Weblio類語辞典 2.3 は「同義語や関連語・対義語や反対語を検索」と詠っていますが、「対義語や反対語を検索」できないようです。該当するボタン類が見当たらないのです。