“对此视图而言,数据操纵操作不合法";发生在用户表中 [英] "data manipulation operation not legal on this view" happening in a user table

查看:361
本文介绍了“对此视图而言,数据操纵操作不合法";发生在用户表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试在表上插入属于我正在使用的用户的值时,发生此错误:

This error is happening when I'm trying to insert values on a table belong to the user which I'm using:

SQL Error: ORA-01732: data manipulation operation not legal on this view
*Cause:    
*Action:

在所有地方,人们都说尝试在视图上进行插入/更新/删除时会发生这种情况,但是它肯定是一个表,并且用户具有所需的特权.

In all the places the people say that it occurs when trying to insert/update/delete on a view, but it is certainly a table, and the user has the privileges needed.

那么,除了试图通过视图进行回义手术之外,还有其他原因吗?

So, there is any other cause for this happening beyond trying to do ilegal operation with a view?

推荐答案

我将激活SQL跟踪并再次尝试插入,然后查看跟踪文件,以确定究竟是哪个SQL语句导致了错误.

I would activate SQL tracing and try the insert again, then look at the trace file to determine exactly what SQL statement is causing the error.

如果,正如其他人所建议的那样,是由触发器针对某个其他对象执行的SQL,则您将在跟踪中看到它是递归SQL,并且将清楚地涉及到哪个对象.

If, as suggested by others, it is SQL executed by a trigger against some other object, you'll see that in the trace as recursive SQL and it will be clear what object is involved.

如果跟踪中没有递归SQL,则很可能您没有访问您认为的对象,并且跟踪应显示正在使用的实际对象ID,您可以根据数据字典进行检查.

If there is no recursive SQL in the trace, then it is likely that you are not accessing the object you think you are, and the trace should show the actual object ID being used, which you can check against the data dictionary.

如果它实际上只是一个表,并且不涉及任何递归SQL,则听起来您需要Oracle支持.

If it really is just a table, and there is no recursive SQL involved, then it sounds like you have a case for Oracle support.

这篇关于“对此视图而言,数据操纵操作不合法";发生在用户表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆