- - PR -
C#でのSQL文
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-11-20 10:58
よろしくお願いします。
C#のプログラムの中で 以下のようなSQLを実行しています。 実行すると 「ORA-00923:FROMキーワードが指定の位置にありません。」 のエラーメッセージが出ます。 ----------------------------------------------------- SELECT CODE AS コード, PTN AS パターン FROM MST ----------------------------------------------------- SQLPLUSで実行すると、問題なく実行できるのですが C#の中で実行するとエラーが発生します。 "ー"を消すと問題なく、C#の中でも実行できるのですが できれば、列別名を変更したくありません。 原因を調べていますが ネット上でいろいろ調べたのですが わかりませんでした。 原因を教えてください。 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2007-11-20 11:16
この↑文章の意味が判りませんが、 とりあえず列別名に日本語使う場合は「"」で囲むです。 | ||||||||
|
投稿日時: 2007-11-20 11:18
とりあえずダブルクォート「"」
#かぶった。。。 _________________ かるあ のメモ http://karua.at.webry.info/ [ メッセージ編集済み 編集者: かるあ 編集日時 2007-11-20 11:20 ] | ||||||||
|
投稿日時: 2007-11-20 11:18
"ー"だと思います。 出遅れるとハズカシイ・・・ [ メッセージ編集済み 編集者: こあら 編集日時 2007-11-20 11:22 ] | ||||||||
|
投稿日時: 2007-11-20 22:16
ネットで調べるからだよ。リファレンスを読むこと。 ASCII 7bit コード以外の文字を使うときは二重引用符で囲む、と定義されている。
たまたま、偶然、問題がないように見えているだけ。 > とりあえず列別名に日本語使う場合は「"」で囲むです。 "列別名"だけでなく、オブジェクト名(用語忘れた)全部です。 > 出遅れるとハズカシイ・・・ 投稿できる時間が限られていると悔しい。。。 | ||||||||
|
投稿日時: 2007-11-21 10:17
使用しているデータベースやそのバージョン位は書いた方が良いですね。
10gのドキュメントですが、 http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19201-02/sql_elements.html#56722 「スキーマ・オブジェクトのネーミング規則」という項目の中に 非引用識別子には、データベース・キャラクタ・セットの英数字、アンダースコア(_)、ドル記号($)およびシャープ記号(#)のみ含めることができます。 とあります。 非引用識別子というのは二重引用符で囲わない識別子のことです。 つまり、二重引用符で囲わずに上記以外の文字を使った場合は動かない可能性が十分にあるってことです。 | ||||||||
|
投稿日時: 2007-11-21 11:22
と言いつつ、皆さんエラー番号から Oracle であることを把握して回答している・・・w 日本語を含める場合は、基本的に何らかの引用符を持ちいる場合が多いですね。 _________________ R・田中一郎 - R.Tanaka.Ichiro’s Blog | ||||||||
|
投稿日時: 2007-11-21 15:25
返答が遅くなりまして申し訳ありません。
皆さんありがとうございます。 「”」をつけたらエラーが出なくなり 実行できました。 一郎様、今後、データベース、バージョンを書くように致します。 本当にありがとうございました。 |
1