【发布时间】:2015-09-03 00:42:09
【问题描述】:
我们使用 Flyway 作为数据库迁移工具。 现在我们想用它在我们的数据库上执行一些导入语句。
数据中有一些包含“;”的存储过程和命令字符。
所以我们想更改 sql 脚本中的分隔符。
在 IBM Data Studio 中,我通过以下 sql 代码实现了这一点:
--#SET TERMINATOR @
insert into "CONTROL"."AP18_ADMIN_RIGHTS" ("REG_ID", "USERNAME") values(12,'testuser')@
--#SET TERMINATOR ;
但是当我尝试使用 flyway 执行此代码时,我收到以下错误消息:
[ERROR] Failed to execute goal org.flywaydb:flyway-maven-plugin:3.0:migrate (default-cli) on project healthstat-database: org.flywaydb.core.internal.dbsupport.FlywaySqlScriptException: Error executing statement at line 3: insert into "CONTROL"."AP18_ADMIN_RIGHTS" ("REG_ID", "USERNAME") values(6,'testuser')@
[ERROR] insert into "CONTROL"."AP18_ADMIN_RIGHTS" ("REG_ID", "USERNAME") values(9,'testuser')@
[ERROR] insert into "CONTROL"."AP18_ADMIN_RIGHTS" ("REG_ID", "USERNAME") values(10,'testuser')@
[ERROR]
[ERROR] --#SET TERMINATOR: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601,SQLERRMC=(6,'testuser')@
[ERROR] insert into;, "USERNAME") values;<space>, DRIVER=3.64.82
是否可以更改sql文件中的分隔符?
【问题讨论】: