Steve,

A couple of things come to mind, neither of which is as elegant/simple as it
would be if we had arrays as a datatype.

1) Use a cursor.  Fetch a record from the table, locate the equivalent
record in the view, compare each field.
2) Create another view that retrieves your PK and does the dirty work of
comparing the fields in both the table and the view where the result is the
set of non-matching records.

i.e.:

CREATE VIEW ab (PKname) AS SELECT T1.PKname FROM tablea T1,viewb T2 WHERE
T2.PKname = T1.PKname AND (T1.columname1 <> T2.columnname1 OR T1.columnname2
<> T2.columnname2 ... etc. for all columns you wish to compare ...)

Emmitt Dove
Manager, Converting Applications Development
Evergreen Packaging, Inc.
[email protected]
(203) 214-5683 m
(203) 643-8022 o
(203) 643-8086 f
[email protected]

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Wills, Steve
Sent: Tuesday, June 08, 2010 06:33
To: RBASE-L Mailing List
Subject: [RBASE-L] - Record-To-Record Equality Test?

Does anyone know of a means to compare two records, in toto, for
equality||inequality?
 
The records have exactly the same structure, including column names and PK,
and have a 1:1 relationship.
 
One record comes from a local table and represents the data as it was at its
original INSERTion or most recent UPDATE.  The other record is in a view,
populated by the data as it currently exists in a production database.  It
might or might not have changed since the most recent refresh of the local
data.
 
I would like to find a way to take a "management by exception" approach to
by means of a record-by-record comparison between the pair of records.
Then, if there is a difference, dig into the nature of the inequality.
 
IOW, for any PK, is #RecordInLocalTable = #RecordInProductionView?  If
equal, get next PK-matched pair of records.  If not, then lather, rinse,
repeat.
 
Thanks,
Steve in Memphis
 


Reply via email to