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' 進行插入(賦值)操作就會報出異常。
如果有其他對表的操作報出這種異常,原因大致如此。
以上所述是小編給大家介紹的Oracle數據庫ORA 54013錯誤的解決辦法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:- Oralce 歸檔日志開啟與關閉示例
- 設置oralce自動內存管理執行步驟
- 提取oralce當天的alert log的shell腳本代碼
- Oralce數據導入出現(SYSTEM.PROC_AUDIT)問題處理方法
- Oracle數據庫opatch補丁操作流程
- mysql數據庫遷移至Oracle數據庫
- VMware Workstation/Fusion 中安裝 Fedora 23/24 及其他 Linux 系統時使用 Open VM Tools 代替 VMware Tools 增強工具的方法
- oracle 創建字段自增長實現方式
- Oracle觸發器trigger詳解
- oracle 數據按主鍵刪除慢問題的解決方法
- Linux 自動備份oracle數據庫詳解
- ORACLE實現自定義序列號生成的方法
- ReactNative (API)AsyncStorage存儲詳解及實例
- 查詢Oracle中正在執行和執行過的SQL語句
- oralce和db2兼容開發注意事項