ORA-00984 column not allowed here message returned from a DML statement states that there is an issue with the text value not within the single quotes. Oracle interprets the value in the form of the column name.
Solution: Ensure text values are bound in single quotes.
Here is an example:
Create table calendar(
Username VARCHAR2(12),
Content VARCHAR2(100),
dateContent DATE,
Type CHAR(3) CHECK (type IN (‘PUB’, ‘PRV’)));
Insert into calendar that comes with
(username, content, dateContent, type)
values
(chris, assignment due, to_date(’01-OCT-2010 13:00′,’DD-MON-YYYY HH24:MI’), PUB)
/
Pointing to type column at the end will be helping in resolving the issue.
Insert into calendar(username,
content,
dateContent,
type)
values(‘chris’,
‘assignment due’,
to_date(’01-OCT-2010 13:00′,’DD-MON-YYYY HH24:MI’),
‘PUB’);
Oracle recompile invalid objects the way they’re referred to. The trigger is invalid, and when you try to insert a row, at that moment, it will try to recompile the trigger and fail, leading to the ORA-04098 error.
Then select * from user_errors at the point to type = ‘TRIGGER’ and name = ‘NEWALERT’. It helps determine what error(s) the trigger and why it won’t compile.
Usually, the cause is A column name was used in an expression were not permitted. The solution is to check the syntax of the statement. Also, you will have to use column names only where appropriate.
CREATE TABLE TEST3( ID NUMBER NOT NULL, NAME VARCHAR2(250) )
There you will have to INSERT INTO TEST3(ID, NAME) VALUES (5, “123”)
The output will be ORA-00984: column not allowed here.
Final words
Oracle mistakes happen due to simple mix-ups. There may be errors derived from copying and pasting across programs. Also, there are issues due to the mistaking program functions or just flat-out getting distracted during your work. Programming an Oracle database comes up with user errors. Spot these mistakes and fix them immediately.