【问题标题】:Oracle Database Changed Event - get Changed RowOracle 数据库更改事件 - 获取更改的行
【发布时间】:2015-03-02 05:22:52
【问题描述】:
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 以了解插入/更新/删除的确切位置。

查看其他一些用户以前的post1post2 有相同的步骤来解决问题,但我的不起作用。

【问题讨论】:

    标签: java events jdbc oracle11g ojdbc


    【解决方案1】:

    让我们看看这两行:

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

    您在queryChangeDescription.getTableChangeDescription() 上收到编译错误。变量queryChangeDescription的类型是什么?

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

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

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

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

    【讨论】:

    • 非常感谢! :) 为一件简单的事情找了好几个小时,该死。
    猜你喜欢
    • 2010-12-25
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多