Oracle: ORA-06512:字符串缓冲区太小  https://baijiahao.baidu.com/s?id=1617919515325580702&wfr=spider&for=pc

 

trigger修改本表

 

ORA-04091: table APPS.FR_BILL_DELAYED_HEAD is mutating, trigger/function may not see it
ORA-06512: at "APPS.TR_BILL_DELAYED_HEAD", line 27
ORA-04088: error during execution of trigger 'APPS.TR_BILL_DELAYED_HEAD

https://blog.csdn.net/rudygao/article/details/39558541
https://www.cnblogs.com/soundcode/p/6171047.html

SQL> CREATE OR REPLACE TRIGGER TR_T
  2  AFTER DELETE ON T
  3  FOR EACH ROW
  4  DECLARE V_COUNT NUMBER;
  5  --PRAGMA AUTONOMOUS_TRANSACTION;
  6  BEGIN
  7     INSERT INTO T VALUES(:OLD.ID,:OLD.MC,SYSDATE);
  8     COMMIT;
  9  END TR_DEL_CABLE;
10  /但不是很推荐问题容易锁死

 

ora-02054 事务出问题,故障修复后事务自动修复

ora-03113 通信通道的文件结尾进程 

我们单位一般是dblink的问题,

我看网上情况和我的不同,他的解决办法查看/trace目录下 oracle_ora_6320.trc文件最终发现是归档日志空间不足导致顺便记录一下

https://www.cnblogs.com/myxinyang/articles/12393858.html

ORA-24756处理

看到警告日志一直报ORA-24756错误

Errors in file /Oracle/admin/NHMIX01/bdump/nhmix01_reco_4959.trc:
ORA-24756: transaction does not exist
但是去找trace文件的时候却没有

想到了事务的问题,查dba_2pc_pending

select local_tran_id,state from dba_2pc_pending;
LOCAL_TRAN_ID STATE
6.22.290635 commited

通过该视图我去到远端的数据库查询该是视图

select local_tran_id,state from dba_2pc_pending;
no rows selected.

我尝试

commit force '6.22.290635'  却发现被hang住了,其实此时不需要commit force了,此时是分布式事务的第三个阶段即forget phase发生错误,需要做的是在本地清除分布式事务信息。

exec DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('6.22.290635');

再kill了那个commit force动作。再去查询dba_2pc_pending的时候就找不到这个事务了。

原文链接(内容更全)https://www.linuxidc.com/Linux/2016-09/135020.htm

state几种情况详解:https://blog.csdn.net/a9529lty/article/details/6079086

posted on 2020-02-27 08:27  我有我的信仰  阅读(298)  评论(0)    收藏  举报