通过监听器处理作为数据库事件的一部分返回的RowID:
class DCNDemoListener implements DatabaseChangeListener
{
DBChangeNotification demo;
DCNDemoListener(DBChangeNotification dem)
{
demo = dem;
}
public void onDatabaseChangeNotification(DatabaseChangeEvent e)
{
System.out.println(e.toString());
}
}
例如:下面是DML操作数据库返回的值
ROW:operation = UPDATE,ROWID = AAASjgAABAAAVapAAA
使用上面的ROWID我想更新/插入数据库中的另一个表。我该怎么做呢?我是否首先将RowId存储在缓存中,或者是否有其他方法可以使用查询插入/更新
答案 0 :(得分:0)
使用SQL插入另一个表:
插入table2(column1,column2,....)(从table1中选择column1,column2,....其中rowid = retrived_rowid);
如果要使用C#使用第一个表中的rowid插入第二个表,则必须以某种方式将数据保留在应用程序中,然后读取数组/列表并将数据插入另一个表中一个元组一次。 ODP.net中有一种方法可以批量模式将多行插入表中。
您只能使用检索到的rowid更新原始表,因为rowid是物理行标识符,并且对于数据库中的每个元组都是唯一的。