0

我的数据库中有一张Person表。我正在使用Oracle数据库。我有一列ADDRESS具有varchar2数据类型。我想将此列的数据类型从varchar2更改为clob。我正在通过Liquibase进行此更改。这是我的变更集。

<changeSet id="15" author="shivam">
    <sql>
        ALTER TABLE PERSON ADD ADDRESS_CLOB VARCHAR2(2040 CHAR);
        ALTER TABLE PERSON MODIFY ADDRESS_CLOB LONG;
        ALTER TABLE PERSON MODIFY ADDRESS_CLOB CLOB;
        UPDATE PERSON SET ADDRESS_CLOB = ADDRESS;
        ALTER TABLE PERSON DROP COLUMN ADDRESS;
    </sql>
    <rollback>
        ALTER TABLE PERSON DROP COLUMN ADDRESS_CLOB;
    </rollback>
</changeSet>

通过上述变更集,我将能够从varchar2转换为clob。但正如您所看到的,我的最后一列名称是ADDRESS_CLOB。但我的要求是最终列名应该是ADDRESS并且它应该是clob数据类型。我该怎么做,请帮助我。

4

1 回答 1

2

您只需要使用以下命令重命名该列:

alter table person rename column address_clob to address;

请注意,在Oracle 数据库中,DDL 不像在其他数据库中那样是事务性的

于 2020-06-19T09:57:53.973 回答