如题,求助:
Oracle在表的主键上另加函数索引后 插入记录时报ORA-04091
Oracle在表的主键上另加函数索引后 插入记录时报ORA-04091
解决方案 »
- 如何将oracle9升级到oracle11或12
- oracle 10g 中用not in 关键字查询公司所有的非部门经理的员工的编号和名称
- 存储一个文档或一幅图片
- per脚本导oracle数据中的表
- 求索引语句两问1)表中无索引,新建一索引如何写2)表中已有两个索引,再新建一和前两者结合的索引语句怎么写
- vb怎么用ado连接远程oracle
- 如何将Oracle数据库中的数据导出为xml文件??急!
- 请问那有关于oracle9i的电子般的中文图书可下载
- 昨天都没有问题,也没有改程序,怎么会提示出错呢?救我!!!!!!!!!!!!1
- ORACLE死锁为什么杀不掉?
- 启动OracleService 报在本地计算机无法启动OracleService服务。错误193:Oxc1
- ORA-03113: 通信通道的文件结束!
--不会的,是不是你表上有触发器,导致你发生变异表啊?connected to:
oracle database 10g release 10.1.0.2.0 - productionsql> create table func_tab( id varchar2(10), amt number );table created.sql> alter table func_tab add constraint pk_func_tab primary key (id);table altered.sql> create index upper_func_tab on func_tab(upper(id));index created.sql> insert into func_tab values('abc',100);1 row created.sql> explain plan for select amt from func_tab where upper(id)='abc';explained.sql> select * from table(dbms_xplan.display());plan_table_output
--------------------------------------------------------------------------------
plan hash value: 2600287052
----------------------------------------------------------------------------------------------
| id | operation | name | rows | bytes | cost (%cpu)| time |
----------------------------------------------------------------------------------------------
| 0 | select statement | | 1 | 20 | 2 (0)| 00:00:01 |
| 1 | table access by index rowid| func_tab | 1 | 20 | 2 (0)| 00:00:01 |
|* 2 | index range scan | upper_func_tab | 1 | | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------
predicate information (identified by operation id):
---------------------------------------------------
2 - access(upper("id")='abc')
note
-----
- dynamic sampling used for this statement
的测试和回复,确实 我也建了同样的测试表和用样的函数索引,并没有发现此问题。对于触发器,不知可以通过什么方式查到引用该表的触发器?
如果你用PL/SQL的话,直接在界面上展开该表下面的Triggers就知道了
select trigger_name from user_triggers where table_name='EMP';
--这个错是发生了变异表事件
select trigger_name,table_name from user_triggers where table_name='表名'select text from user_source where name='上面查到的触发器名'--看看触发器怎么写的