FRM-40654问题解决

发现这样的问题有两种可能性:  

    FRM-40654:已更新记录。重新查询块,已查看更改!

1.表被锁定。查看是否有被锁定请参考下文查询,并利用SQL进行解锁。

在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.该表中有一个看不见的字符(空格结尾)遇到该问题,请用数据库后台将空格去掉(首先尝试前台诊断是否可以修改)。

你可能感兴趣的:(Oracle,Forms,&,Reports)