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

Java Oracle数据库更改事件-获取更改行,java,events,jdbc,oracle11g,ojdbc,Java,Events,Jdbc,Oracle11g,Ojdbc,我在getTableChangeDescription()[0]上收到一个错误,它说找不到符号。我已经正确导入了类和ojdbc6.jar文件,并且检查了API文档,我不知道为什么会出现错误 基本上,我正在尝试拉拽ROWID,以了解执行插入/更新/删除的确切位置 看看前面的,其他一些用户也采取了相同的步骤来解决问题,但我的步骤不起作用。让我们看一下这两行: class DCNDemoListener implements DatabaseChangeListener {

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

基本上,我正在尝试拉拽ROWID,以了解执行插入/更新/删除的确切位置


看看前面的,其他一些用户也采取了相同的步骤来解决问题,但我的步骤不起作用。

让我们看一下这两行:

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();
            }              
  }
您在
querychangescription.gettablechangescription()
上得到编译错误。变量的类型是什么
querychangescription

它是
querychangescription[]
。这是一种数组类型

由于方法
getTableChangeDescription
不在数组上,因此出现错误

我猜想您希望在数组的第一个元素上调用该方法,而不是在数组本身上。如果是,试试看

QueryChangeDescription[] queryChangeDescription = e.getQueryChangeDescription();
RowChangeDescription[] rowChangeDescriptions = queryChangeDescription.getTableChangeDescription()[0].getRowChangeDescription(); // error here
非常感谢!:)为了一件简单的事找了几个小时,该死。
RowChangeDescription[] rowChangeDescriptions = queryChangeDescription[0].getTableChangeDescription()[0]