Oracle 查询ora错误号以及解决方法技巧 racle 错误号以及解决方法技巧 经常有朋友问我ORACLE 类似ora-00109 错误的信息,其实我们的ORACLE系统本身已经为我们详细的说明了各种的错误信息,一般的ORA错误号都在里面,而且给出了相应的解决方法。
在UNIX 系统下只要执行这个命令就可以列出错误原因以及解决方法了。
例如ora-00109错误,只要这样
[oracle@mail oracle]$ oerr ora 109
01090, 00000, "shutdown in progress - connection is not permitted"
// *Cause: The SHUTDOWN command was used to shut down a running
// ORACLE instance, so you cannot connect to ORACLE.
// *Action: Wait for the instance to be restarted, or contact your DBA.
01091, 00000, "failure during startup force"
// *Cause: Unable to destroy the old SGA.
// *Action: Manually remove the old SGA and reissue the STARTUP command
01092, 00000, "ORACLE instance terminated. Disconnection forced"
// *Cause: The instance this process was connected to was terminated
// abnormally, probably via a shutdown abort. This process
// was forced to disconnect from the instance.
// *Action: Examine the alert log for more details. When the instance has been
// restarted, retry action.
01093, 00000, "ALTER DATABASE CLOSE only permitted with no sessions connected"
// *Cause: There is at least one more session other than the current one
// logged into the instance. ALTER DATABASE CLOSE is not permitted.
// *Action: Find the other sessions and log them out and resubmit the command
01094, 00000, "ALTER DATABASE CLOSE in progress. Connections not permitted"
// *Cause:
// *Action:
01095, 00000, "DML statement processed zero rows"
// *Cause: During a call to OTEX, an update, delete, or insert statement
// being executed processed zero rows. The execution
// of statements by OTEX was halted at this point.
// *Action:
01096, 00000, "program version (%s) incompatible with instance (%s)"
// MERGE: 1095 RENUMBERED TO 1096
// *Cause: A program is trying to connect to an instance using a different
// version of code than the database was started with. This is
// not allowed.
// *Action: Either relink the program with the same version as the database or
// restart the database using the old version of code.
01097, 00000, "cannot shutdown while in a transaction - commit or rollback first "
// *Cause: Obvious
// *Action:
01098, 00000, "program Interface error during Long Insert"
// *Cause:
// *Action:
01099, 00000, "cannot mount database in SHARED mode if started in single process mode"
// *Cause: Obvious
// *Action:
上面只是个例子,其他的错误号都可以通过这个方法得到。
其实ORACLE本身还有很多不错的东西,很多工具,不过十大家没去研究而已。
希望对大家有帮助。 [align=right][color=#000066][此贴子已经被作者于2007-6-28 16:52:10编辑过][/color][/align] ---------数据恢复 oracle数据库恢复专家 13352468096 QQ:9417901 网站:http://www.sosdb.com-----
下面是查询:0003的错误信息,很全面了。
[oracle@mail oracle]$ oerr ora 3
00030, 00000, "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.
00031, 00000, "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.
00032, 00000, "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).
00033, 00000, "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.
00034, 00000, "cannot %s 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.
00035, 00000, "LICENSE_MAX_USERS cannot be less than current number of users"
// *Cause:
// *Action:
00036, 00000, "maximum number of recursive SQL levels (%s) 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.
00037, 00000, "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.
00038, 00000, "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.
[oracle@mail oracle]$ oerr ora 3
00030, 00000, "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.
00031, 00000, "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.
00032, 00000, "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).
00033, 00000, "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.
00034, 00000, "cannot %s 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.
00035, 00000, "LICENSE_MAX_USERS cannot be less than current number of users"
// *Cause:
// *Action:
00036, 00000, "maximum number of recursive SQL levels (%s) 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.
00037, 00000, "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.
00038, 00000, "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.
[oracle@mail oracle]$ oerr ora 3
00030, 00000, "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.
00031, 00000, "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.
00032, 00000, "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).
00033, 00000, "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.
00034, 00000, "cannot %s 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.
00035, 00000, "LICENSE_MAX_USERS cannot be less than current number of users"
// *Cause:
// *Action:
00036, 00000, "maximum number of recursive SQL levels (%s) 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.
00037, 00000, "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.
00038, 00000, "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.