TABLE和PL/SQL塊中。這是ORA-00904的主要來源。ORA-00904的幾種錯誤模式。TABLE和PL/SQL块中。这是ORA-00904的主要来源。ORA-00904的几种错误模式。ORA-00904は、文の中で一致しない列名または誤った構文を使用したことを意味します。TABLE、またはPL/SQLブロックで発生している可能性があります。ほとんどのユーザーはそのエラーを信じていませんが、実際にSQLパーサーは間違いを犯したことが一度もないので、この記事でエラーパターンを見てみるのが好きかもしれません。エラーパターンの1つがあなたのケースにマッチします。ほとんどのエラーは大文字と小文字を区別する問題なので、最初に緩い形式と厳密な形式の違いを説明する必要があります。通常、Oracleは、パスワード以外の大部分の識別子を大/小文字を区別しないものとして扱います。ORA-00904無効な識別子が生成された場合に注意が必要な特別な使用法がいくつかあります。ORA-00904だけでなく、ORA-00903およびORA-00911も、オブジェクト識別子の無効な使用法に関連しています。具体的には、ORA-00903は無効なテーブル名をユーザーに警告し、不正な文字を配置するためにORA-00911が発生します。Databaseのオブジェクト名と修飾子によると、データベース・オブジェクトを作成するための有効な命名形式は2種類あります。1つは引用符で囲まれていない識別子、もう1つは引用符で囲まれた識別子です。ORA-00904を回避するには、2つの命名形式の明確な違いを知っておく必要があります。句読点やその他の特別な扱いに囲まれていません。基本的に同等の文字列である限り、SQLステートメントでは大文字と小文字を区別せずに柔軟に使用できます。私は通常この記事でそれを緩い形式と呼びます。"")で始まり、終わります。空白や予約語を含め、ほとんどすべての文字を二重引用符で囲むことができます。この種の識別子は、最初に定義されたとおりに使用する必要があります。私は通常、この記事ではそれを厳密な形式と呼びます。私の知る限りでは、これがORA-00904の主な原因です。後ほど、ORA-00904無効な識別子についても詳しく説明します。ほとんどの場合、列名の誤用がORA-00904の主な原因であり、残りは構文エラーです。この記事では、次の項でORA-00904のいくつかのエラー・パターンについて説明します。