ホームページ >データベース >mysql チュートリアル >Oracle テーブルのクエリ時に ORA-00904:「無効な識別子」が発生するのはなぜですか?

Oracle テーブルのクエリ時に ORA-00904:「無効な識別子」が発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-23 13:06:12189ブラウズ

Why Am I Getting ORA-00904:

ORA-00904 エラー: 無効な識別子

問題:

データを取得しようとしたときWHERE 句に列値の条件が含まれる単純なクエリを使用してテーブルから取得します。無効な識別子を示す ORA-00904 エラーが発生します。

たとえば、次の列を含む reg1 という名前のテーブルが作成されているとします。

create table reg1 (
  fname varchar2(30),
  lname varchar2(30),
  addr varchar2(30),
  mail varchar2(30),
  occu varchar2(30),
  uname varchar2(30),
  passwd varchar2(30)
);

ただし、フェッチするクエリを実行すると、ユーザー名「bbb」を持つユーザーの名 (fname) と姓 (lname)例:

select fname, lname
  from reg1
 where uname="bbb";

エラー ORA-00904: "bbb": 無効な識別子が表示されます。

回答:

エラーが発生する理由は次のとおりです。 WHERE 句で比較する値は一重引用符で囲まれていません。 Oracle では、文字列値を比較する場合、文字列値がリテラルであることを示すために一重引用符で囲む必要があります。

この問題を解決するには、'bbb' 値を一重引用符で囲むだけです:

select fname, lname
  from reg1
 where uname='bbb';

この修正により、比較がリテラル文字列として正しく処理されるため、クエリはユーザー名「bbb」のユーザーのデータを正常に取得できるようになります。比較。

以上がOracle テーブルのクエリ時に ORA-00904:「無効な識別子」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。