相关文章推荐
豪情万千的爆米花  ·  利用js将 ...·  8 月前    · 
悲伤的橙子  ·  6.3.1 ...·  1 年前    · 

错误报告 -
SQL 错误: ORA-01779: 无法修改与非键值保存表对应的列
01779. 00000 -  "cannot modify a column which maps to a non key-preserved table"
*Cause:    An attempt was made to insert or update columns of a join view which
map to a non-key-preserved table.
*Action:   Modify the underlying base tables directly.

这个错误产生的原因是子查询的结果中,用来更新demo_t1的demo_t2表id不唯一,导致被更新对象test1中的一行可能要对应test2中的很多行,这样 oracle 就不知道该怎么更新

例如demo_t1中fname A fmoney '20'有可能对应demo_t2中fname A fmoney '100', ifname A fmoney '200' 这2个数据,所以导致无法更新.

删除重复数据 给demo_t2加上一个主键

ALTER TABLE DEMO_T2 ADD PRIMARY KEY(FNAME);

再次尝试,更新成功

问题描述错误报告 -SQL 错误: ORA-01779: 无法修改与非键值保存表对应的列01779. 00000 - "cannot modify a column which maps to a non key-preserved table"*Cause: An attempt was made to insert or update columns of a join view which map to a non-key-preserved table....
今天遇到一个错误: ORA - 01779 无法 修改 与非 键值 保存 对应 。 后来发现,当要对一个基于多 连接的视图进行插入,更新等操作时,容易出现这个错误。 解决办法:个人认为,这个视图不能操作,可以对它基于的 进行操作,这样,该视图里也就有相应数据了。 于是,做了下面这个实验。 SQL > create table emp2 as select * from emp; 已创建。 你要插入的 A里,有外键连接到另一个 B的主键,你在 A的外键 插入的值,在 B的主键 找不到就不能插入。 主要看两 中的数据是否一致,从 中要关联外键的字段中的数据必须包含在主 相关字段的数据内。 处理的方法有: 1> 先不验证已有数据的CONSTRANT,加上参数NOVALIDATE.*/
公司服务器周末要加硬盘,周一来后应用连不上了。报错如下 报错: ORA -12170:TNS connect timeout occurred 第一反应是监听没开: 1. 测试了一下, 连接超时没用ping 通 C:\Users\Administrator>tnsping brorcl TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 – Production on 15-6月 -2015 09:45:43 已使用的参数文件
当更新一个子查询的时候,会出现这个错误。RA- 01779 : cannot modify a column which maps to a non key-preserved table 下面先模拟一下这个错误: SQL > select * from gw1;         ID NAME ---------- ----------
ORA -12154:TNS: 无法 解析指定的连接标识符 ORA -12154:TNS:无监听程序 错误分析一、PL/ SQL 客户端登录到 数据库 ,如果配置错误会有以上错误,如下图。 这个错误主要是pl/ sql 客户端的tnsnames. ora 配置错误,或者是输入 database选项错误。 错误分析二、未配置环境变量 所以解决问题之前一定要配置环境变量TNS_ADMIN path添加;E:\PL SQL Developer(64)\instantclient_11_2 配置环境变量就是为了让PL/ SQL Developer打开时加载到tnsnames. ora 文件的内容 配置pl/ sql 的Datab
在对update进行优化时,考虑到update from 效率比较高,但由于 ora cle会对 键值 进行检查,导致报 ora - 01779 错误,通过采用BYPASS_UJVC跳过 Ora cle的键的判定,达到同样的效果。 例子如下: update (select   /*+ BYPASS_UJVC */                 t1.drawref,
ORA -01261和 ORA -01262是 Ora cle 数据库 中的错误代码,通常与控制文件相关。 ORA -01261 示控制文件中的记录已经过时, 无法 使用。这可能是由于控制文件已经被删除或损坏,或者是由于 数据库 实例 无法 访问控制文件。 ORA -01262 示控制文件中的记录已经被 修改 无法 使用。这可能是由于控制文件已经被其他进程 修改 ,或者是由于 数据库 实例 无法 访问控制文件。 要解决这些错误,可以尝试恢复控制文件,或者使用备份控制文件替换当前的控制文件。还可以检查 数据库 实例的权限和文件系统的可用空间,以确保 数据库 实例可以访问控制文件。