Data Quality Statements
Verwendung und Syntax
-
SELECT <select list> WITH INVALID UNIQUE(<column list>) FROM <table> ... SELECT <select list> WITH INVALID PRIMARY KEY(<column list>) FROM <table> ... SELECT <select list> WITH INVALID FOREIGN KEY(<column list>) FROM <table> REFERENCING <ref-table>(<column list>) ...
Diese Statements können benutzt werden, um die Integrität existierender Tabellen zu prüfen. Sie geben alle Zeilen zurück, die den entsprechenden Constraint verletzen.
Um damit Duplikate eindeutig identifizieren zu können, muss die Select-Liste wenigstens eine Spalte enthalten, die dies möglich macht. Wenn 2 oder mehr Zeilen absolut identisch sind und Sie nur einige davon löschen möchten (z.B. alle außer einer), können Sie ROWID benutzen um Einträge zu identifizieren. Dabei sollte aber beachtet werden, dass jede Schreiboperation auf der Tabelle sämtliche ROWIDs darin verändern kann.
Verwendung von DQS für Schlüsselgenerierung
DQS können für das Updaten von Lookup-Tabellen während des ETL-Prozesses benutzt werden:
-
- INSERT INTO LOOKUP(lookup_key, lookup_value)
- ( SELECT
- ROWNUM + ( SELECT MAX(LOOKUP_KEY) FROM LOOKUP) ),
- NEW_VALUE
- FROM
- ( SELECT DISTINCT NEW_VALUE
- WITH INVALID FOREIGN KEY(NEW_VALUE)
- FROM new_table
- REFERENCING LOOKUP(LOOKUP_VALUE)
- )
- )
- ;
Bitte beachten Sie, dass Data Quality Statements vor allen anderen Klauseln ausgewertet werden, insbesondere auch vor WHERE. Außerdem kann damit nur eine Tabelle gleichzeitig geprüft werden.















