version 12.1.0.2
> begin dbms_redefinition.redef_table (uname=>'SCOTT', tname=>'T1', table_part_tablespace=> 'NEW_TS'); end;
2 /
begin dbms_redefinition.redef_table (uname=>'SCOTT', tname=>'T1', table_part_tablespace=> 'NEW_TS'); end;
*
ERROR at line 1:
ORA-42008: error occurred while instantiating the redefinition
ORA-12018: following error encountered during code generation for "SCOTT"."REDEF$_T900740"
ORA-54013: INSERT operation disallowed on virtual columns
ORA-06512: at "SYS.DBMS_REDEFINITION", line 3385
ORA-06512: at line 1
So trying to online redef a large partitioned table, we have a virtual column on it. Ora-54013 occurs. I know the background process involved creates a temporary table and with materialized view snapshots moves the data over and with this in mind, then it makes sense that the 54013 occurred if the new table was created with DDL from the old table and then there was an insert select * , but if its clever enough to work out the virtual column is there, I would have thought the process should have been graceful enough at this stage to be able to handle virtual column, thing is I cant find a support note or online reference anywhere to actually say virtual columns arent supported so just posting this to see if anyone has seen this and its real or is it a bug
We could drop the virtual before doing the online redef and recreate after, but that then's not really an online job.
Its probably an "is what it is" thing.