ORA-00984 column
not allowed here
- Cause:
A column name was used in an expression where it is not permitted, such
as in the VALUES clause of an INSERT statement.
-
- Action:
Check the syntax of the statement and use column names only where
appropriate.
-
An ORA-00984 will be thrown if a column name (like in the VALUES clause of an
INSERT statement), is used in an expression where it is not permitted. You
may have used a column name in an expression where it is not permitted.
Typically, ORA-00984 occurs while including a column name in the
VALUES
clause of an INSERT
statement.
To correct ORA-00984, you simply need to view the syntax of the
SQL statement and only use column names
where they are appropriate.
This was a helpful question relating to
ORA-00984 from "ORACLE DBA FORUM":
Question:
I have received an ORA-00984 error, but am not seeing anything in the
AUD$
table. I have also not found anything in the other views, or
alert.log
file. How can I find the fault causing the ORA-00984?
Answer:
You should look for the
DML error logging (log the failed insert)
To resolve ORA-00984, there are a few different
ways that you can audit within Oracle, in addition to the
AUDIT
syntax:
- Use system-level triggers (DML and
DDL) to audit
- Use
LogMiner (DML and
DDL)
These links may also be helpful in resolving ORA_00984:
http://www.dba-oracle.com/art_dbazine_sys_trigs.htm
(for new
DML logging features in Oracle 10g (release 2)
http://www.dba-oracle.com/bp/bp_book11_audit.htm