在Oracle数据库中将varchar2列转换为clob数据类型时出现问题

在Oracle数据库中将varchar2列转换为clob数据类型时出现问题,oracle,liquibase,liquibase-hibernate,liquibase-sql,liquibase-pro,Oracle,Liquibase,Liquibase Hibernate,Liquibase Sql,Liquibase Pro,我的数据库中有一个Person表。我正在使用Oracle数据库。我有一个列ADDRESS,它具有varchar2数据类型。我想将此列的数据类型从varchar2更改为clob。我通过液化来做这个改变。这是我的零钱 <changeSet id="15" author="shivam"> <sql> ALTER TABLE PERSON ADD ADDRESS_CLOB VARCHAR2(2040 CHAR); ALTER TABLE

我的数据库中有一个Person表。我正在使用Oracle数据库。我有一个列ADDRESS,它具有varchar2数据类型。我想将此列的数据类型从varchar2更改为clob。我通过液化来做这个改变。这是我的零钱

<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>

ALTER TABLE PERSON ADD ADDRESS_CLOB VARCHAR2(2040字符);
更改表人修改地址\u CLOB LONG;
修改表人修改地址;
更新个人设置地址\u CLOB=地址;
更改表中人员的删除列地址;
ALTER TABLE PERSON DROP列地址\u CLOB;

通过上述变更集,我将能够从varchar2转换为clob。但正如您所看到的,我的最后一个列名是ADDRESS\u CLOB。但我的要求是最后的列名应该是地址,并且应该是clob数据类型。我如何才能做到这一点,请帮助我。

您只需将该列重命名为:

alter table person rename column address_clob to address;

请注意,在。

中,您只需使用以下命令重命名列:

alter table person rename column address_clob to address;

请注意,在。

中,如果我将您的命令写入变更集中,则会出现几个问题。如果此命令失败,您还需要注意如何回滚。请详细说明问题:数据库问题?哪些错误消息?液化问题?如果你已经测试了这个问题,但失败了,请用相关输出编辑你的问题。你能确切地告诉我你不明白的地方吗?如果你不详细说明“问题”在这方面,没有人能真正帮助您。没有什么可以明确地回滚的:在Oracle中,所有DDL命令都在它们自己的事务中运行:如果ALTER语句失败,它将由Oracle自动回滚。如果我将您的命令写在变更集中,那么将有几个问题。如果此命令失败,您还需要注意如何回滚。请详细说明问题:数据库问题?哪些错误消息?液化问题?如果你已经测试了这个问题,但失败了,请用相关输出编辑你的问题。你能确切地告诉我你不明白的地方吗?如果你不详细说明“问题”在这方面没有人能真正帮助你。没有什么可以明确地回滚:在Oracle中,所有DDL命令都在它们自己的事务中运行:如果ALTER语句失败,Oracle将自动回滚它。