如果数据库无法在SQL中连接,如何跳过数据库?

时间:2013-12-03 22:58:23

标签: oracle

有4个数据库可供使用。我每天都在运行批处理以获取一些数据。

如果其中一个连接失败,那么批处理操作将停止。

如果无法连接,有没有办法跳过数据库?

数据库错误就像

  

无法解析TNsname   Lsnrtcl状态未知......等。

1 个答案:

答案 0 :(得分:2)

我不知道您使用的语言或应用程序框架,但大多数语言都有try/catch个构造。你把你的连接放在try块中的db中,如果它失败了,它会进入catch,你可以记录失败或做你想做的事情或者什么也不做(不推荐但可能)但是关于它的好处是它确保程序不会因捕获的事件而中止。例如。在Java中:

Connection cxn = null;

try {
   cxn = SomeConnectionFactory.getConnection(...);
} catch (SqlException sqlEx) {
   logger.info("Connection to xyz failed");
}

大多数其他语言的try / catch块结构相似。还有一个finally子句可以选择性地附加到它的末尾,无论尝试成功还是失败,你都可以放置你想要发生的东西。

在你的情况下,你可能希望有一种循环,在其中迭代你想要进行的所有预期连接并嵌套这样的try / catch块,这样如果其中一个连接失败,那么主循环进入下一次迭代。