gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:45:08 26 4
gpt4 key购买 nike

我正在尝试针对包含这些列中的数据的数据库将 dataType 从 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 语句的结果返回的任何错误。

关于oracle - 使用 Liquibase 修改 Oracle 中包含数据的列的 dataType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15410589/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com