The Oracle docs note this on the ora-00904 error*:
ORA-00904 string: invalid identifier
Cause: The column name entered is either missing or invalid.
Action: Enter a valid column name. A valid column name must begin with a letter, be less than or equal to 30 characters, and consist of only alphanumeric characters and the special characters $, _, and #. If it contains other characters, then it must be enclosed in double quotation marks. It may not be a reserved word.
*According to Oracle documentation, ORA-00904 does not occur in Oracle 10g
When ORA-00904 occurs, you must enter a valid column name as it is either missing or the one entered is invalid.
To avoid ORA-00904, column names cannot be a reserved word, and must contain these four criteria to be valid:
- begin with a letter
- be less than or equal to twenty characters
- consist only of alphanumeric and the special characters ($_#); other characters need double quotation marks around them
Another important factor in correcting ORA-00904 is remembering to run catproc.sql
You can also check your trace file to find the particular error which is causing the ORA-00904 to occur.