【发布时间】:2013-02-23 17:58:36
【问题描述】:
我正在创建一个 Java 应用程序,它通过 JDBC 连接到 Oracle 数据库,并且能够在其中执行脚本。有点像蟾蜍。 我创建它的原因是因为我们不能在封闭的工作空间中使用 Toad 或 SQLplus。
在我谈到程序、函数、触发器、包……(要说的最重要的项目)之前,一切都很好。
我可以通过 JDBC 驱动程序发送它们,但它总是说它是成功的,即使它不是。 在 SQLplus 中,您会收到一条消息“.... 创建时出现编译错误”,因此实际上它也不是真正的错误。但是你可以显示错误。
有没有办法通过 JDBC 访问 show errors 遇到的错误?所以我至少现在发生了错误。
【问题讨论】:
-
您检查过
Statement.getWarnings()和Connection.getWarnings()的警告吗? -
@MarkRotteveel 我刚刚做了,现在我得到:'警告:执行完成但有警告'但我仍然没有得到实际错误。
-
遵循 Javadoc 中的说明:您需要使用 SQLException.getNextException() 或使用 iterator 来“遍历”异常
-
使用一种基于 JDBC 的开源 SQL 工具而不是重新发明轮子怎么样?如果“封闭的工作空间”是因为对工具的担忧,您可以检查它们的源代码以确保一切都符合您的环境
-
这是一个很棒的评论,对我很有帮助。我发现 Flyway 已经解决了同样的问题,并且能够实施类似的解决方案。
标签: java oracle jdbc plsql oracle11g