java - Oracle 数据库更改事件 - 获取更改行

标签 java events jdbc oracle11g ojdbc

class DCNDemoListener implements DatabaseChangeListener
    {
          String rid;
      DBChangeNotification demo;
      DCNDemoListener(DBChangeNotification dem)
      {
        demo = dem;
      }
      public void  onDatabaseChangeNotification(DatabaseChangeEvent e)
      {
        Thread t = Thread.currentThread();
//      System.out.println("DCNDemoListener: got an event ("+this+" running on thread "+t+")");
//      System.out.println(e.toString());
            TableChangeDescription[] tableChangeDescription = e.getTableChangeDescription();
            QueryChangeDescription[] queryChangeDescription = e.getQueryChangeDescription();
            RowChangeDescription[] rowChangeDescriptions = queryChangeDescription.getTableChangeDescription()[0].getRowChangeDescription(); // error here
            for (RowChangeDescription rowChangeDescription : rowChangeDescriptions) 
            {
              rowChangeDescription.getRowid();
            }              
  }

我在 getTableChangeDescription()[0] 处遇到错误,它说找不到符号。我已经正确导入了类和 ojdbc6.jar 文件,我也检查了 API 文档,但我不知道为什么会出现错误。

基本上,我试图拉取 ROWID 以了解执行插入/更新/删除的确切位置。

看之前的post1 , post2其他一些用户使用相同的步骤来解决问题,但我的不工作。

最佳答案

让我们看一下这两行:

QueryChangeDescription[] queryChangeDescription = e.getQueryChangeDescription();
RowChangeDescription[] rowChangeDescriptions = queryChangeDescription.getTableChangeDescription()[0].getRowChangeDescription(); // error here

queryChangeDescription.getTableChangeDescription() 出现编译错误。变量 queryChangeDescription 的类型是什么?

它是 QueryChangeDescription[]。这是一个数组类型。

你收到一个错误,因为 getTableChangeDescription 方法不在数组上。

我想你想在数组的第一个元素上调用方法,而不是在数组本身上。如果是,试试

RowChangeDescription[] rowChangeDescriptions = queryChangeDescription[0].getTableChangeDescription()[0]

关于java - Oracle 数据库更改事件 - 获取更改行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27766542/

相关文章:

java - 通过jdbc向Oracle中插入表

java - JDBC 未关闭连接

mysql - c3p0 DataSource 监视器死锁 - 所有线程挂起 - 如何修复

android - 单击事件不会在 RecyclerView 中冒泡

javascript - Target=带有 OnClick JavaScript 的空白链接

c# - 当在表单上的某处单击按钮时,wpf 编辑列表框中的项目

java - 如何保证随机数的生成概率相等?

java - 在java中设计一个项目

java - 如何使用 css 使 smartgwt 看起来像 gwtext

java - 如何以编程方式设置相对布局中 TextViews 的对齐父右属性