Oracle Database Error Message Codes and Their Description from ORA-00000 to ORA-00040

ORA-00000: normal, successful completion
Cause: Normal exit.
Action: None


ORA-00001: unique constraint (string.string) violated
Cause: An UPDATE or INSERT statement attempted to insert a duplicate key. For Trusted Oracle configured in DBMS MAC mode, you may see this message if a duplicate entry exists at a different level.
Action: Either remove the unique restriction or do not insert the key.


ORA-00017: session requested to set trace event
Cause: The current session was requested to set a trace event by another session.
Action: This is used internally; no action is required.


ORA-00018: maximum number of sessions exceeded
Cause: All session state objects are in use.
Action: Increase the value of the SESSIONS initialization parameter.


ORA-00019: maximum number of session licenses exceeded
Cause: All licenses are in use.
Action: Increase the value of the LICENSE MAX SESSIONS initialization parameter.


ORA-00020: maximum number of processes (string) exceeded
Cause: All process state objects are in use.
Action: Increase the value of the PROCESSES initialization parameter.

ORA-00021: session attached to some other process; cannot switch session
Cause: The user session is currently used by others.
Action: Do not switch to a session attached to some other process.




ORA-00022: invalid session ID; access denied
Cause: Either the session specified does not exist or the caller does not have the privilege to access it.
Action: Specify a valid session ID that you have privilege to access, that is either you own it or you have the CHANGE_USER privilege.


ORA-00023: session references process private memory; cannot detach session
Cause: An attempt was made to detach the current session when it contains references to process private memory.
Action: A session may contain references to process memory (PGA) if it has an open network connection, a very large context area, or operating system privileges. To allow the detach, it may be necessary to close the session’s database links and/or cursors. Detaching a session with operating system privileges is always disallowed.


ORA-00024: logins from more than one process not allowed in single-process mode
Cause: Trying to login more than once from different processes for ORACLE started in single-process mode.
Action: Logoff from the other process.


ORA-00025: failed to allocate string
Cause: Out of memory.
Action: Restart with larger sga heap.


ORA-00026: missing or invalid session ID
Cause: Missing or invalid session ID string for ALTER SYSTEM KILL SESSION.
Action: Retry with a valid session ID.


ORA-00027: cannot kill current session
Cause: Attempted to use ALTER SYSTEM KILL SESSION to kill the current session.
Action: None


ORA-00028: your session has been killed
Cause: A privileged user has killed your session and you are no longer logged on to the database.
Action: Login again if you wish to continue working.




ORA-00029: session is not a user session
Cause: The session ID specified in an ALTER SYSTEM KILL SESSION command was not a user session (for example, recursive, etc.).
Action: Retry with a user session ID.
ORA-00030: User session ID does not exist.
Cause: The user session ID no longer exists, probably because the session was logged out.
Action: Use a valid session ID.


ORA-00031: session marked for kill
Cause: The session specified in an ALTER SYSTEM KILL SESSION command cannot be killed immediately (because it is rolling back or blocked on a network operation), but it has been marked for kill. This means it will be killed as soon as possible after its current uninterruptable operation is done.
Action: No action is required for the session to be killed, but further executions of the ALTER SYSTEM KILL SESSION command on this session may cause the session to be killed sooner.


ORA-00032: invalid session migration password
Cause: The session migration password specified in a session creation call was invalid (probably too long).
Action: Retry with a valid password (less than 30 chars).
ORA-00033: current session has empty migration password
Cause: An attempt was made to detach or clone the current session and it has an empty migration password. This is not allowed.
Action: Create the session with a non-empty migration password.


ORA-00034: cannot string in current PL/SQL session
Cause: An attempt was made to issue a commit or rollback from a PL/SQL object (procedure, function, package) in a session that has this disabled (by ‘alter session disable commit in procedure’)
Action: Enable commits from PL/SQL in this session, or do not attempt to use commit or rollback in PL/SQL when they are disabled in the current session.


ORA-00036: maximum number of recursive SQL levels (string) exceeded
Cause: An attempt was made to go more than the specified number of recursive SQL levels.
Action: Remove the recursive SQL, possibly a recursive trigger.


ORA-00037: cannot switch to a session belonging to a different server group
Cause: An attempt was made to switch to a session in a different server group. This is not allowed.
Action: Make sure the server switches to a session that belongs to its server group.



ORA-00038: Cannot create session: server group belongs to another user
Cause: An attempt was made to create a non-migratable session in a server group that is owned by a different user.
Action: A server group is owned by the first user who logs into a server in the server group in non-migratable mode. All subsequent non-migratable mode logins must be made by the user who owns the server group. To have a different user login in non-migratable mode, the ownership of the server group will have to be changed. This can be done by logging off all current sessions and detaching from all existing servers in the server group and then having the new user login to become the new owner.

ORA-00039: error during periodic action
Cause: An unexpected error occurred while executing a periodically invoked
Action: Check the error stack for detailed error information.


ORA-00040: active time limit exceeded – call aborted
Cause: The Resource Manager SWITCH_TIME limit was exceeded.
Action: Reduce the complexity of the update or query, or contact your database administrator for more information.


About Mehmet Salih Deveci

I am Founder of SysDBASoft IT and IT Tutorial and Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience.I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource.I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks.I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients.If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress [email protected].-                                                                                                                                                                                                                                                 -Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için  [email protected] a mail atabilirsiniz.

Leave a Reply

Your email address will not be published. Required fields are marked *