我想知道是否有可能继续ping一个oracle表,直到将一行添加到表或删除。

我得到确认已添加或删除该行后,我想开始下一个操作。 首选方法是一直保持ping的查询,直到它发生。 通常在查询时我使用executeQuery方法,但只有在有结果时返回

我还没有找到能够做到这一点的方法。

所以有人知道这样做的方法吗?

===============>>#1 票数:4 已采纳

在Oracle 11g中,您可以使用数据库更改通知 您可以注册以在发生更改时接收事件,而不是轮询数据库以检查更改。 还有的源代码示例在这里

如果您选择轮询,那么您应该仔细考虑您的查询。 例如,依赖于表中的行数 - SELECT COUNT(*) FROM your_table - 如果在查询的两次执行之间添加并从表中删除相同数量的行,则可能会给出错误的答案。

===============>>#2 票数:0

我不熟悉Oracle,所以我建议你采用独立于数据库的方法。

您是否删除或“停用”表中的记录? 如果你“停用”,你可以在每一行中保持一个“Version”列,在每个CUD操作中都是++'ing 例如,当您创建新行时,它的版本为1 在第一次更新是2 ,它继续。

这样,您可以依赖SELECT SUM(VERSION) ...而不是依赖SELECT COUNT(*) ... ;)

您还可以使用审计跟踪 - 审计每个表中的每个CUD操作 - 并轮询审计跟踪而不是表。

  ask by Eve translate from so

未解决问题?本站智能推荐:

1回复

无法使用Java更新Oracle数据库中的数据

我正在尝试使用此代码从oracle数据库更新数据。 该程序没有错误,但显示ORA-00933: SQL command not properly ended 。 谁能告诉我这是什么意思,我该如何纠正?
2回复

如何在java代码中从数据库表中获取Max id

我想编写从表中提供最大id的代码,但它会抛出错误。 码:
1回复

使用Java从数据库获取数据

好的,我有一个表,其中只有Oracle的一列和一个字段(假定是密码),我想获取此String并将其保存在本地变量中,以便以后与另一个变量进行比较。 因此,我的代码的重要部分如下所示: 但是该程序不会通过while循环。 因此,这里的错误是应该将结果保存在变量“ pass”中。
4回复

使用Java连接到Oracle数据库

我无法连接到Oracle database server 。 这是代码: 我收到此消息: 在学校中,此示例有效。 问题出在哪儿??
1回复

Java程序使用不同的关系数据库

我有一个普遍的问题。 是否可以使用一个java程序,该程序使用用户指定的数据库类型,例如应用程序的设置。 这意味着,根据运行应用程序的服务器以及运行的数据库服务器的类型,应用程序必须调整自身以运行其查询。 我是否必须为不同类型的数据库指定不同的查询?
2回复

在Java中使用JDBC连接到数据库

我正在尝试使用JDBC驱动程序连接到Oracle数据库,并且遇到错误:“ java.sql.SQLException:指定了无效的Oracle URL”。 我的代码如下: 有人知道是什么问题吗?
1回复

从一个Oracle数据库中选择,然后使用Java批量插入另一个Oracle数据库中

我是Java编程的初学者。 我试图使用下面的Java代码从一个Oracle数据库表中获取数据并插入到另一个数据库表中,这是成功的。 但是我不知道在此代码中实现批处理插入逻辑和增加的提取大小。 任何人都可以帮助。 我的目标是一次往返获取100行并插入100行,而不是一一插入。 提前致谢。
1回复

是否可以在数据库中安装Java编译器?

为了制作一个在线编译器,我想编译一段代码并发送回结果。 除了给出硬盘的路径外,我还可以调用一个查询,该查询反过来编译代码(不是通过提供指向javac硬盘位置的任何链接),而是编译位于DB( BLOB )中的文件。 可能吗? 可以采用这种方法吗? 通常遵循什么系统的
3回复

如何检查我是否从Java中插入数据库

请只是这里的指南! 我想在数据库中插入一些值,从Java中获取我的oracle预处理语句和内容,然后插入ok,但是我的另一个要求是通过电子邮件发送由于某种原因未插入的字段。 因此,我想将我的方法设置为int,如果出现错误则返回0,如果错误则返回1,如果没有插入则返回2……等等。但是
1回复

使用Java中的GUI将文件上传到Oracle数据库的好例子

我正在寻找一个用Java在Oracle数据库中上载文件或从中下载文件的好例子,以获取想法。 如果有人知道一个很好的例子,请您帮我吗?