【发布时间】:2020-05-14 17:25:17
【问题描述】:
我在用一些数据初始化我的内存数据库时遇到此错误,因为我加载数据的 sql 脚本的格式错误为 H2:
INSERT INTO cup_orchestrator.cpo_environment (`environment_id`,`environment`)
VALUES
(
1,
'DEV'
),
(
2,
'ACT'
),
(
3,
'PRD'
);
H2 预计会以这种方式进行:
INSERT INTO cup_orchestrator.cpo_environment (`environment_id`,`environment`) VALUES(1,'DEV'),(2,'ACT'),(3,'PRD');
原因:org.h2.jdbc.JdbcSQLSyntaxErrorException: SQL 语句中的语法错误“INSERT INTO CUP_ORCHESTRATOR.CPO_ENVIRONMENT (ENVIRONMENT_ID,ENVIRONMENT)[*]”;预期 "DIRECT, SORTED, DEFAULT, VALUES, SET, (, WITH, SELECT, TABLE, VALUES"; SQL 语句:
插入到 cup_orchestrator.cpo_environment (environment_id,environment)
Eclipse 中是否有任何插件可以按照 H2 期望的方式格式化 sql 脚本?我正在使用 SQL Editor 1.1.0 但没有选项。
【问题讨论】:
-
你原来的多行命令对H2完全有效,你不需要写在一行。你得到了这样的异常,因为你不知何故只将第一行传递给了 H2 而不是整个命令。
-
@EvgenijRyazanov 这个有什么配置吗?因为我在我的 sql 编辑器中做了 ctrl + c, ctrl + v。
-
对不起,我不使用那个工具,也帮不了你。我只是给你一些关于你的问题的信息,因为你对 H2 语法的假设是不正确的。
-
我也遇到过同样的问题。我通过在我的 SQL 语句末尾放置一个分号来解决它。很奇怪。
-
@EmdadulSawon 我已经有了分号。
标签: eclipse eclipse-plugin h2 spring-boot-test