11.2.0.3, am doing an online redefinition of a table. Here's the original table:
desc custorder
Name Null? Type
-------------------- -------- ---------------
CUST_ORDER_ID NOT NULL NUMBER(19)
CHANNEL_CODE NOT NULL VARCHAR2(32)
CURRENT_STATUS NOT NULL VARCHAR2(32)
CREATE_DTM NOT NULL DATE
TOT_AMOUNT_IN_CENTS NUMBER(10)
CUSTOMER_ID RAW(8) <===the column being redefined
CUSTOMER_NAME VARCHAR2(255)
COMPLETED_DTM DATE
And here's the new version of it:
desc redef_custorder
Name Null? Type
-------------------- -------- ---------------
CUST_ORDER_ID NOT NULL NUMBER(19)
CHANNEL_CODE NOT NULL VARCHAR2(32)
CURRENT_STATUS NOT NULL VARCHAR2(32)
CREATE_DTM NOT NULL DATE
TOT_AMOUNT_IN_CENTS NUMBER(10)
CUSTOMER_ID VARCHAR2(64) <===the column being redefined
CUSTOMER_NAME VARCHAR2(255)
COMPLETED_DTM DATE
Now just doing: EXEC DBMS_REDEFINITION.start_redef_table('ME', 'CUSTORDER', 'REDEF_CUSTORDER'); produces an ORA-42016 ("shape of interim table does not match specified column mapping").
Spelling out all the columns in a column-pair list parameter also generates the same error.
But if I miss out the "CUSTOMER_ID CUSTOMER_ID" pair from that list, the redefinition works fine.
I checked the doco: Redefining Tables Online
I couldn't find a mention of RAW being a problem in this way (it mentions LONG RAW needing to be converted to BLOB, but that's not the same thing, is it?)
Are we supposed to think "raw and long raw are the same thing, really" when reading that doco? Or is there somewhere an explicit mention that RAWs cause redefinition problems? Some piece of doco I didn't find, for example?