From: <man...@oz...> - 2004-02-26 16:08:14
|
--------------- On 02/25/2004 04:50:29 PM Auradkar, Rajendra V. wrote: --------------- >I am trying to compare tables from across 2 different Oracle instances. For >this I need to compare only a subset of columns of tables. How do specify >the columns list for a table? >Thanks in advance, >Raj Auradkar > I know three possible ways to compare subset of columns: 1. Use CompositeDataSet to decorates actual table with expectation table metadata: Assertion.assertEquals(expected, new CompositeTable(expected.getTableMetaData(), actual)); Works if the expectation table contains only the columns you want to compare to the actual table. The actual table get decorated with the expectation table metadata, thus only the expectation table columns from actual table get exposed. In other word, the new decorated table exposes expectation table metadata with actual table data. This technique is usually used with an XML expectation table having a subset of columns from the actual database table. Don't use this if both tables have the same columns because all of them will get exposed anyway. 2. Hide explicit columns (variation of #1) http://sourceforge.net/mailarchive/message.php?msg_id=5857670 3. Use QueryDataSet and only select columns you want to compare. You can also use a WHERE clause to select only a subset of rows. This is probably the best solution for you. Use one QueryDataSet per connection. http://www.dbunit.org/components.html#querydataset Manuel |