Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> PL/SQL Cursor : Is this the best way?
Hi,
I'm writing an integrity checker for our system at work which basically scans the database tables for any discrepant pieces of data that should not be there. Anyway, there's one rule which is as follows :
(I've changed the names of tables and columns)
For all names in table_a whose status is 'P', a record should exist in
table_b. I want a list of all names and corresponding status which DO
NOT meet this rule.
I've come up with the following cursor in PL/SQL (Oracle 7.3.3) :
CURSOR rule_cursor IS SELECT a.name, a.status FROM table_a a WHERE a.status = 'P' AND a.name NOT IN (SELECT b.name FROM table_a a, table_b b WHERE a.name = b.name);
My question is this ... is there an easier, more efficient way of doing this? I'm fairly new to PL/SQL, and to me, it seems an awful amount of work to be done for something which seems straight forward. I've tried more "simpler" SELECTS, but all come back with incorrect results.
Any help will be greatly appreciated.
Thanks in advance.
Received on Wed Jun 16 1999 - 05:05:55 CDT