oracle - 检查数据库(连接)是否存在的 Ant 任务?

标签 oracle ant ora-01017

ANT 是否有可能在构建失败的情况下检查数据库(连接)是否存在?

例如:

<target name="check-database-available">
    <sql
        classpath="${oracle.jar}" driver="oracle.jdbc.OracleDriver"
        url="jdbc:oracle:thin:@${my.db.host}:${my.db.port}:${my.db.sid}" 
        userid="${my.db.user}" 
        password="${my.db.pw}"
        onerror="continue" errorproperty="exit.status">
        select * from dual;
    </sql>
    <echo message="### exit status = ${exit.status}" />
</target>

这总是会失败并显示 BUILD FAILED 和

java.sql.SQLException: ORA-01017: invalid username/password; logon denied

因为数据库还不存在。将“onerror”设置为“continue”并检查“errorproperty”将不起作用,因为任务似乎没有被执行。

最佳答案

从 Ant v 1.8.0 开始,您可以在 SQL 任务中使用 failOnConnectionError 属性。

描述如下:

If false, will only print a warning message and not execute any statement if the task fails to connect to the database.

这看起来可以解决您的问题。

关于oracle - 检查数据库(连接)是否存在的 Ant 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3352799/

相关文章:

xml - 我想替换 <w :tab/> element with a new xml element <w:t> </w:t> in a Open XML document using XQuery

java - setString 方法从表中检索数据时出现问题

java - 获取目录中的 jar 列表并将其发送到另一个 ANT 目标

sql - Oracle:为对象类型列指定默认值

regex - 使用ant<propertyregex>,如何捕获某个用户的/etc/shadow记录?

android - build.xml version.tag for system tools 14,语法?

oracle express 系统无效的登录凭据

linux - Oracle XE - 安装后无法登录

java - ORA-01017: 用户名/密码无效;使用 wss4j 时登录被拒绝

oracle - 列出 oracle 中用户 View 的列名