
No.2ベストアンサー
- 回答日時:
テーブルを使用するのも作成するのも面倒がありますが、構文上の問題はありません。
というのが、答えになるでしょうか。表名や列名に日本語文字を使用する場合は、名前を" "で囲う必要があります。制約はただこれだけです。(マニュアルに記載があります。)
ただこれだけのことなので、自分で開発したデータベースを、自分で作成したアプリで利用する場合には、何の問題もありません。ただし、日本語とシングルバイトの英文字が混在する場合は注意してください。この場合、英文字の方の大文字小文字をきちんと区別する必要があります。""で囲っていない場合は、総ての名前は大文字変換されて使用されるのですが、囲った場合はこの変換がないからです。
それより、やっかいごとは外からやってきます。
データベースの開発・メンテナンスにsql plusやEMだけを利用しているなら大丈夫ですが、サードパーティー製のソフトを利用している場合は、そのソフトが日本語表名・列名を正しくサポートしていることが必要です。
また、アプリケーションの作成の際に、ライブラリーなどを利用しているのであれば、これらも正しく日本語表名・列名に対応している必要があります。
なぜなら、普通列名や表名を" "で囲うということはしないからです。囲うことによる副作用もありますから、ライブラリーやソフトが日本語文字が混在していることを正しく認識して、日本語の混じっている時だけ正しく" "で囲うという処理が必要で、これは、明らかに特殊な処理ですから。
まぁ、今までの経験からすると、囲わなくても正しく動くことが多いです。が、正式に構文として明記されている以上、動く方が偶然であると認識しておくことは必要でしょう。特に、二バイト目のコードがASCIIコードの特殊文字の文字コードと同じになっているいくつかの文字あたりが鬼門になると思います。
表名も列名もとっても見やすくなり、メンテナンスも楽になります。が、ある程度のリスクを抱えての選択であると言うことは意識しておく必要はあるでしょう。
作法としてやって良いかどうかは、宗教論争の面がありますで、避けることにします。
mitoneko 様 ご回答いただき、ありがとうございました。
「自分で開発したデータベースを、自分で作成したアプリで利用する場合には、何の問題もありません。」という点。よく理解できました。私の場合は、おかげさまで安心して利用できます。
また、作法としては「宗教論争の面」があるということもわかり、勉強になりました。
的確な回答をいただき、感謝しております。ありがとうございました。
No.1
- 回答日時:
> 表名や列名に日本語を使っても問題はないでしょうか
ダブルクォートすれば問題はないようです(結構面倒です)。
・参考サイト
http://homepage3.nifty.com/yamada_ken1/starthp/s …
http://www.shift-the-oracle.com/guideline/multib …
・OTN掲示板の参考スレッド
http://www.oracle.co.jp/forum/message.jspa?threa …
# 日本語の表名、列名の問題は宗教論争になりがちで……
dda167 様
いつも適切なご回答をいただき、感謝しております。
よく理解できました。
MySQLをやりましたときには、5Cコードの問題があり、日本語は絶対ダメと思っていたのですが、Oracleではダブルクォートで問題がない(Oracle内だけでは)のですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
在宅ワークのリアルをインタビュー
ベテラン在宅ワーカーと 在宅ビギナーの方々に、在宅ワークの実情をお教えいただきました。
-
日本語のエイリアスは "で囲う必要があるのでしょうか"
MySQL
-
日本語のテーブル名、カラム名の定義について
SQL Server
-
Oracleで「文字が無効です」のエラーが出ます
Oracle
-
4
sqlplusで表示が変なので、出力を整形したい。
Oracle
-
5
SQLのVARCHARとVARCHAR2の違い
その他(データベース)
-
6
Oracleのデータ型、NUMBERについて
その他(データベース)
-
7
データベースのINT型項目にNULLはNG?
MySQL
-
8
SELECTで1件のみ取得するには?
Oracle
-
9
単一グループのグループ関数ではありません。
Oracle
-
10
MySQLカラム名は日本語と英数字のどちらが良いか
MySQL
-
11
GROUP BYを行った後に結合したい。
Oracle
-
12
CloseとDisposeの違い
Visual Basic(VBA)
-
13
特定のスキーマのテーブルを一括削除したい
その他(データベース)
-
14
使うべきでない文字。
MySQL
-
15
PL/SQLで@ファイル名が反応しません
Oracle
-
16
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
17
select句副問い合わせ 値の個数が多すぎます
Oracle
-
18
テーブル名が日本語だとクエリーを実行して結果を取得したときにエラーになる。
Java
-
19
Oracle 2つのDate型の値の差を「分」で取得したい
その他(データベース)
-
20
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
関連するQ&A
- 1 Oracle 11g 表2の選択結果をキーにして表1を更新したい。 表1 コード 対照 aaaaa
- 2 【oracle10g 】Oracle Enterprise Managreでの表のインポート
- 3 Oracle 10g/11での外部結合について
- 4 Oracle 11g ユーザー名およびパスワードが正しくありません。
- 5 oracle10gサーバに対しoracle9iのクライアントインストー
- 6 同一筺体にOracle 10g XE とOracle Clientを入れて動かしたい
- 7 oracle Database 10g を利用したい
- 8 Oracle 10gから11gにかえたらエラー
- 9 Oracle10g リリース2でカラム名
- 10 oracleの表の各列に対して、
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
GROUP BYを使ったSELECT文の総...
-
5
OracleのSQL*PLUSで、デー...
-
6
日本語の表名、列名の利用について
-
7
ACCESSのコンボボックスの右側...
-
8
アクセス SQLで重複排除でcount...
-
9
Accessで別テーブルの値をフォ...
-
10
phpについて%
-
11
割合(パーセント)を求めるに...
-
12
抽出したデータを修正して元の...
-
13
GROUP BYを行った後に結合した...
-
14
SELECTで1件のみ取得するには?
-
15
【Access】選択クエリのグルー...
-
16
Line Inputで文字化け(助けて...
-
17
Date型にNULLをセットしたい V...
-
18
エクセルで抽出データを削除修...
-
19
使うべきでない文字。
-
20
SQL文で素早くNULLを除外する方法
おすすめ情報