如何解决Oracle和H2数字数据类型不兼容
我正在将Flyway用于我的Spring引导应用程序(与Oracle DB一起使用)。我有一个新的脚本,该脚本将创建带有数字字段的表格,例如:
CREATE TABLE ENGINEER (
...
SALARY NUMBER(*,2),...
);
我想用H2数据库调试应用程序,它将运行脚本。 H2文档说NUMBER(精度,小数位数)是有效的数据类型,但似乎不像Oracle那样支持精度。因此,当我运行脚本时无法成功运行,因此无法使用H2对其进行调试:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-08-21 18:19:47.026 ERROR 25932 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateException:
Migration <file-name>.sql failed
-------------------------------------------
SQL State : 42001
Error Code : 42001
Message : Syntax error in SQL statement "
CREATE TABLE ENGINEER(
...
SALARY NUMBER(*,...
)"; expected "long"; SQL statement:
CREATE TABLE ENGINEER(
...
SALARY NUMBER(*,...
) [42001-200]
Location : sql/db/migration/v04/<file-name>.sql
Line : 1
有什么办法可以使迁移脚本像上面一样保留,但是仍然可以在任何时候使用H2进行调试?
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。