发现这样的问题有两种可能性:
1.表被锁定。 查看是否有被锁定请参考下文查询,并利用帖子中的SQL进行解锁。 如何解锁一个表-有SQL(可以用于解决错误:ORA-04021)在erp中我们常常会遇到表锁定的问题,那么我们如何去查那些表被锁定了呢?一下是fifali提供的一个查找解锁表的SQL语句,在执行该SQL后你可以杀掉该表对应的DB_PID 进程。 杀进程的语句为: alter system kill session 'session_id,serial#'; 一下是SQL - SELECT dob.OBJECT_NAME Table_Name,
- lo.LOCKED_MODE,
- lo.SESSION_ID,
- vss.SERIAL#,
- vps.spid,
- vss.action Action,
- vss.osuser OSUSER,
- vss.process AP_PID,
- VPS.SPID DB_PID,
- 'alter system kill session ' || '''' || lo.SESSION_ID || ',' ||vss.SERIAL# || ''';' kill_command
- from v$locked_object lo, dba_objects dob, v$session vss, V$PROCESS VPS
- where lo.OBJECT_ID = dob.OBJECT_ID
- and lo.SESSION_ID = vss.SID
- AND VSS.paddr = VPS.addr
- order by 2, 3, DOB.object_name;
复制代码 这是查找被锁包的SQL - select B.SID,
- b.USERNAME,
- b.MACHINE,
- a.OBJECT,
- 'alter system kill session ' || '''' || b.SID || ',' || b.SERIAL# ||
- ''';' kill_command
- FROM V$ACCESS A, V$SESSION B
- WHERE A.SID = B.SID
- and upper(a.OBJECT) like '%CUX%'
- and a.TYPE = 'PACKAGE'
|
2.该表中有一个看不见的字符(空格结尾) 遇到该问题,请用 数据库后台将空格去掉(首先尝试前台诊断是否可以修改)。 FA模块出现问题是fa_mass_additions t表内描述有多余字符 |