加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Liquibase修改Oracle中包含数据的列的dataType

发布时间:2020-12-12 13:14:35 所属栏目:百科 来源:网络整理
导读:我正在尝试将数据类型从NUMBER(10,0)修改为NUMBER(30,0),对照包含这些列中数据的数据库.我必须使用liquibase.我使用以下内容: modifyDataType tableName="tableName" columnName="columnsName" newDataType="NUMBER(38,0)"/ 但是对于列中包含数据的表,我收
我正在尝试将数据类型从NUMBER(10,0)修改为NUMBER(30,0),对照包含这些列中数据的数据库.我必须使用liquibase.我使用以下内容:

<modifyDataType tableName="tableName" columnName="columnsName" newDataType="NUMBER(38,0)"/>

但是对于列中包含数据的表,我收到以下错误:

Caused by: java.sql.SQLException: ORA-01440: column to be modified must be empty to decrease precision or scale

并且不会迁移该列.可以通过此方法将包含数据的列迁移到新类型吗?

解决方法

它不是liquibase,它是引发此错误的oracle引擎. Liquibase实际上将modifyDataType转换为alter table语句.所以你的oracle引擎声明如下:

ALTER TABLE tableName MODIFTY columnsName NUMBER(38,0);

现在,modifyDataType将返回由于生成的sql语句而返回的任何错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读