【发布时间】:2018-04-18 11:16:50
【问题描述】:
我有一些 oracle sql 脚本,它们可以从 SQLDeveloper 或 SQLPlus 完美运行。现在我想实现 Flyway 工具来控制数据库迁移。但是当我尝试执行以下字符串时
EXEC USERNAME.PA_SECURITY.SP_TBL_PLC_ADD('V_NAME', USERNAME.PA_SECURITY.POLICY_NAME);
我收到错误 ORA-00900:无效的 SQL 语句。 从 flyway 文档中,我看不到使用 SP 的任何限制。但我不明白,我的 SQL 有什么问题。它可以与其他工具一起使用。
【问题讨论】:
-
exec是 SQL*Plus(或 SQL Developer)命令,它不是常规的 SQL command。您不能通过 JDBC(我认为 Flyway 正在使用)执行它。您需要将其包装到匿名 PL/SQL 块中(或说服 Flyway 使用CallableStatement) -
谢谢!它的作品