Мне нужно создать новую таблицу для хранения входящего XML-сообщения, и я планирую добавить несколько виртуальных столбцов в сам оператор создания таблицы. Это прекрасно работает! Я искал и не смог найти способ изменить эту таблицу, чтобы добавить новую виртуальную колонку. Поиск в Google позволил мне this page
Но это с 2007 года, и мне интересно, доступна ли эта функция в Oracle 12c. Кто-нибудь пробовал это раньше и есть предложения? Спасибо!
Ex:
CREATE TABLE Import_Log (message_guid varchar2(36),
xml_data XMLType)
XMLTYPE xml_data STORE AS BINARY XML
VIRTUAL COLUMNS
(policynumber AS (XMLCast(XMLQuery('/PolicyMessage/Policy/PolicyNumber'
PASSING xml_data RETURNING CONTENT)
AS VARCHAR2(14))),
effective_date AS (XMLCast(XMLQuery('/PolicyMessage/Policy/PolicyEffectiveDate'
PASSING xml_data RETURNING CONTENT)
AS DATE )),
expiration_date AS (XMLCast(XMLQuery('/PolicyMessage/Policy/PolicyExpirationDate'
PASSING xml_data RETURNING CONTENT)
AS DATE ))
);
- Вышеуказанное работает нормально.
Теперь, если я хочу добавить новый виртуальный столбец, кажется, единственный способ - отбросить и воссоздать таблицу, что может быть нелегко в будущем.