ORA-54013錯誤解決辦法

pingley發表於2012-02-06
ORA-54013錯誤解決辦法
SQL> desc account_manager;
Name            Type         Nullable Default Comments 
--------------- ------------ -------- ------- -------- 
ID              CHAR(5)                                
NAME            VARCHAR2(25) Y                         
EMPLOYMENT_DATE DATE         Y        sysdate          
SALARY          NUMBER(8,2)  Y                         
COMMISSION      NUMBER(7,2)  Y                         
REGION          CHAR(1)      Y     
檢視account_manager的表結構
SQL> alter table account_manager
  2  add(amearn as (salary+commission));
Table altered
先往表account_manager中增加一個虛擬列
SQL> desc account_manager;
Name            Type         Nullable Default               Comments 
--------------- ------------ -------- --------------------- -------- 
ID              CHAR(5)                                              
NAME            VARCHAR2(25) Y                                       
EMPLOYMENT_DATE DATE         Y        sysdate                        
SALARY          NUMBER(8,2)  Y                                       
COMMISSION      NUMBER(7,2)  Y                                       
REGION          CHAR(1)      Y                                       
AMEARN          NUMBER       Y        "SALARY"+"COMMISSION"          
檢視account_manager的表結構

SQL> insert into account_manager(id,name,employment_date,salary,commission,region,amearn)
  2  values('00007','virtual column','2012/1/18',50000,4000,null,54000);
insert into account_manager(id,name,employment_date,salary,commission,region,amearn)
values('00007','virtual column',default,50000,4000,'N',54000)

ORA-54013: 不允許對虛擬列執行 INSERT 操作

SQL> insert into account_manager(id,name,employment_date,salary,commission,region)
  2  values('00007','virtual column',default,50000,4000,'N');
1 row inserted
把虛擬列從插入列表中移除,插入成功。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-715722/,如需轉載,請註明出處,否則將追究法律責任。

相關文章