Oracle数据库:ORA-54013错误解决办法

ORA-54013: 不允许对虚拟列执行 INSERT 操作

这是Oracle 11 的新特性 —— 虚拟列。

在以前的Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图,如果我们需要在这个视图上使用索引,我们会创建基于函数的索引。现在Oracle 11允许我们直接在表上使用虚拟列来存储表达式。虚拟列的值是不存储在磁盘的,它们是在查询时根据定义的表达式临时计算的。我们不能往虚拟列中插入数据,我们也不能隐式的添加数据到虚拟列,我们只能使用物理列来插入数据。然后可以查询虚拟列的值,表达式是在查询的时候即时计算的。索引和约束同样可以应用在虚拟列上,我们也可以为虚拟列创建外键。

下面使用的数据表名是:APEX_CW_月结账单明细详情表

使用oracle中的命令窗口,输入语句查看表结构:SQL>desc APEX_CW_月结账单明细详情表;

执行后看到如下表结构:

Name                 Type         Nullable Default                      Comments
-------------------- ------------ -------- ---------------------------- --------
PK_MONTHBILLDETAILID VARCHAR2(35)
FK_MONTHBILLID       VARCHAR2(18) Y
BARCODE              VARCHAR2(15) Y
CUSTCODE             VARCHAR2(8)  Y
CUSTNAME             VARCHAR2(50) Y
EXCHARGE             NUMBER(18,2) Y
CITYCODE             VARCHAR2(3)  Y
EXPORTDAY            DATE         Y
ORICHARGE            NUMBER(18,2) Y
INCOMEDCHARGE        NUMBER(18,2) Y
ISHANDLED            VARCHAR2(1)  Y
PAYERID              VARCHAR2(8)  Y
PAYERNAME            VARCHAR2(50) Y
MANAGECITY           VARCHAR2(10) Y
CITYNAME             VARCHAR2(50) Y
DESTINCITY           VARCHAR2(3)  Y
DESTINCITYNAME       VARCHAR2(50) Y
ITEM                 VARCHAR2(6)  Y
SERVERTYPE           VARCHAR2(1)  Y
DESTINCOUN           CHAR(2)      Y
ORICURRENCY          VARCHAR2(3)  Y
TAXAMOUNT            FLOAT(63)    Y
CHARGEWEIGHT         NUMBER(10,3) Y
EXPORTCITY           VARCHAR2(3)  Y
STRFD1               VARCHAR2(20) Y
CREATETIME           DATE         Y
MONTHBILLTYPE        VARCHAR2(2)  Y        SUBSTR("FK_MONTHBILLID",1,1)

从上面看到最后一行的字段 ‘MONTHBILLTYPE’ 是通过第二行的字段 ‘FK_MONTHBILLID’ 得到的,所以如果对该表中这个字段 ‘MONTHBILLTYPE’ 进行插入(赋值)操作就会报出异常。

如果有其他对表的操作报出这种异常,原因大致如此。

时间: 2025-01-05 17:27:34

Oracle数据库:ORA-54013错误解决办法的相关文章

常见Oracle数据库问题总结及解决办法(一)

开发中常使用Oralce数据库,使用中也许会碰到形形色色的各类错误提示,如:ORA-00933:SQL命令未正确结束.ORA-009242等等,为此记录积累对于自己来说还是很有帮助的,今天就记录以前出现过的一些问题,后面会慢慢补充完善. 错误提示:ORA-00942:表或视图不存在 图1-1 图1-2 开发过程中使用PowerDesigner设计数据库并导出脚本,在执行脚本是出现上图出现的问题,为此打开PowerDesigner查看设计的表,发现表名被""引了起来(图1-2),果不其然

阿里云安装mysql数据库出现2002错误解决办法

在安装数据库的时候出现了如下错误: 解决办法如下: 1.在bin目录下 输入:kill -s 9 9907 再输入:ps -ef|grep mysql 显示如下: 2.回到lampp目录下,重启数据库,服务器: 1.  ./lampp restart

ORACLE错误1033出现和ORA-00600错误解决办法

非法关机以后,Oracle数据经常出现这个错误: EXP-00056:ORACLE错误1033出现 ORA-01033:ORACLE initialization or shutdown in progress 用户: 口令: 这个显然是数据库没有办法启动,但是数据库服务还是可以启动,但程序无法连接数据库. 首选找问题要看看数据库BDUMP目录下的ALERT文件具体报什么错误 你看到最后几行会有 报错ORA-00600: 内部错误代码,参数: [kcratr1_lostwrt], [], [],

Amazon RDS MySQL数据库还原时 log_bin_trust_function_creators 错误解决办法

使用了Amazon AWS EC2免费云空间,数据库实例采用Amazon RDS.原来在Windows Server上有一个存在大量数据的MySQL数据库.现在需要在Amazon RDS上还原这个MySQL数据库,勾掉Views(因为它会要求SUPER权限,而Master User无此权限,毕竟是托管的RDS),只留下Tables,如下图(使用Navicat): 图1:勾掉Views,因为RDS上的Masteruser无Super权限,无法还原Views对象 但在还原时,仍然出现如下的错误信息:

Oracle ORA-01033: 错误解决办法

Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误 解决办法:[[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 22 09:58:53 2019 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to

The database could not be exclusively locked to perform the operation(SQL Server 5030错误解决办法)(转)

Microsoft SQL Server 5030错误解决办法 今天在使用SQL Server时,由于之前创建数据库忘记了设置Collocation,数据库中插入中文字符都是乱码,于是到DataBase的Options中修改Collocation,出现了The database could not be exclusively locked to perform the operation这个错误,无法修改字符集为Chinese_PRC_90_CI_AS. 解决办法找了很久才找到,如下: 1.执

PHP编译安装时常见错误解决办法,php编译常见错误

PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution 解决方法: yum -y install libxslt-devel 2.configure: error: Could not find net-snmp-config binary. Please check your net-snmp installa

MySQL 1366错误解决办法

MySQL 1366错误大致描述如下 SQL Error: 1366: Incorrect string value: "xE8xAFxA6xE7xBBx86…" for column "address" at row 1 解决办法:检查数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同:不相同则会引发MySQL1366错误. 修改MySQL该字段的字符集与整理规则即可.假设数据表为phplamp, SQL语句的字符集为utf8,出错的字段为add

《BI项目笔记》SSAS部署时发生的问题——元数据管理器中存在错误 解决办法

原文:<BI项目笔记>SSAS部署时发生的问题--元数据管理器中存在错误 解决办法 在生成和部署期间出错.是否继续?解决办法: 用Microsoft SQL Server Management Studio 连接Analysis Services 然后删除多维数据库,重新布署.这样就OK的.