【问题标题】:H2 JdbcSQLSyntaxErrorException: Syntax error in SQL statement - INSERTH2 JdbcSQLSyntaxErrorException:SQL 语句中的语法错误 - INSERT
【发布时间】: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


【解决方案1】:

这一定是语法错误。请删除列名中的引号 (environment_id,environment) 并尝试

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多