文档解释
ORA-03143: Process ID: string Thread ID: string
Cause: Connection was lost for the specified process ID and thread ID. This is either due to session being killed or network problems.
Action: Reconnect and if error persists, contact Oracle Support Services.
。
ORA-03143,Wrong process ID类型的错误,通常出现在数据库客户端请求一个不存在的存储过程或视图。
官方解释
这个错误消息应该是一个逻辑性错误,用户提供了一个无效的过程ID,或者进程被用户终止了。若存在多个会话,就可能出现这个错误,这个错误可能有多种可能原因,需要通过排除法来查找无效的过程ID的原因。
常见案例
正常处理方法及步骤
1.查看Session longops,找到属于此错误的Session:
SELECT sid, serial#, username, program FROM v$session WHERE sid=123;
2. 查询当前正在执行的操作:
SELECT s.sid, s.serial#, s.username, s.program, o.opname, o.target, o.sofar, o.totalwork FROM v$session s, v$session_longops o WHERE s.sid = o.sid AND o.sid = 123;
3. 可能要求输出SQL之前的会话进程信息,如下:
SELECT s.sid, s.serial#, s.program, sql_text FROM v$sqltext_with_newlines s WHERE s.address =
(SELECT s.prev_sql_addr FROM v$session s WHERE s.sid = 123);
4. 检查系统参数的设置,检查存储过程是否存在:
SELECT * FROM dba_objects WHERE object_name = ‘YOUR_PROCEDURE_NAME’
5. 如果发现无效的过程ID,用户可以使用ALTER SYSTEM KILL SESSION命令来对关闭对应会话,以释放系统资源。
ALTER SYSTEM KILL SESSION ‘123, 74723’