Java 如何检查数据库是否以只读模式运行?

Java 如何检查数据库是否以只读模式运行?,java,oracle,Java,Oracle,如何检查oracle数据库是否以只读模式运行 我正在查看下面的api方法,但无论数据库处于只读模式,该方法都返回false。 此方法的源代码只返回false 谢谢你的帮助 试试看: select open_mode from v$database; 尝试: 当JDBC驱动程序告诉您数据库不是只读模式时,为什么您认为它是只读模式?以只读模式启动数据库是可能的,但这是非常非常罕见的。您控制数据库吗?一种显而易见但很暴力的方法是尝试更新表中的一行,看看它是否成功。您可以为此目的留出一个表,其中只有

如何检查oracle数据库是否以只读模式运行

我正在查看下面的api方法,但无论数据库处于只读模式,该方法都返回false。 此方法的源代码只返回false

谢谢你的帮助

试试看:

select open_mode from v$database;
尝试:


当JDBC驱动程序告诉您数据库不是只读模式时,为什么您认为它是只读模式?以只读模式启动数据库是可能的,但这是非常非常罕见的。您控制数据库吗?一种显而易见但很暴力的方法是尝试更新表中的一行,看看它是否成功。您可以为此目的留出一个表,其中只有一行,否则不会包含任何有意义的数据。@Gilbert,David-谢谢,我想到了,但我想把它作为最后一个选项,无论如何都会记住这一点。@JustinCave最初的问题是,我们有两个数据库支持以JBOSS作为应用服务器的故障切换。出于某种原因,在少数情况下,即使主数据库没有关闭,jboss也会切换到辅助数据库,而辅助数据库仍处于只读模式,这会导致应用程序失败。当JDBC驱动程序告诉您数据库处于只读模式时,为什么您认为数据库处于只读模式?以只读模式启动数据库是可能的,但这是非常非常罕见的。您控制数据库吗?一种显而易见但很暴力的方法是尝试更新表中的一行,看看它是否成功。您可以为此目的留出一个表,其中只有一行,否则不会包含任何有意义的数据。@Gilbert,David-谢谢,我想到了,但我想把它作为最后一个选项,无论如何都会记住这一点。@JustinCave最初的问题是,我们有两个数据库支持以JBOSS作为应用服务器的故障切换。由于某些原因,在少数情况下,即使主数据库没有关闭,jboss也会切换到辅助数据库,而辅助数据库仍处于只读模式,这会导致应用程序失败。谢谢,这是一种很好且简单的方法,但我们使用的数据库用户没有查询此表的权限。这就是为什么我要尝试使用任何API(如果有的话)。对不起,我不是Java爱好者,所以,我无法帮助您使用Java API选项。正如其他人所建议的,您可以尝试DML,然后检查ORA-016000错误。如果您在DML尝试中获得ORA-016000,则数据库是只读的。谢谢,这是一种很好且简单的方法,但我们使用的数据库用户没有查询此表的权限。这就是为什么我要尝试使用任何API(如果有的话)。对不起,我不是Java爱好者,所以,我无法帮助您使用Java API选项。正如其他人所建议的,您可以尝试DML,然后检查ORA-016000错误。若您在DML尝试中获得ORA-016000,则数据库为只读。