Vergleichen Sie die Datenunterschiede zwischen den beiden folgenden Tabellen. Ich habe dies erreicht, indem ich eine MINUS-Abfrage geschrieben habe, die aber für die aktuelle Zuweisung nicht geeignet ist. Weil nur wenige Tabellen 50-60 Spalten haben und jedes Mal die Spalten vor der Ausführung angeben müssen.plsql-Prozedur, um zwei Tabellen ohne Primärschlüsselspalte zu vergleichen
Ich habe Expert's response gefolgt und das Ziel nicht erreicht. Grundsätzlich möchte ich eine Prozedur schreiben, die:
- Akzeptiert beide Tabellennamen als Parameter.
- Holen Sie alle Spalten von CustomerTable.
- Dann MINUS Abfrage zwischen CustomerTable und StagingCustTable nur mit den Spalten in Schritt-2 abgerufen.
- Protokollieren Sie alle Unterschiede.
Customer
- Custromer_Number
- Adresse
- ORDER_NUMBER
- Kontakt
- Land
- POST_CODE
- Betrag
StagingCustTable
- Custromer_Number
- Adresse
- ORDER_NUMBER
- Kontakt
- Land
- POST_CODE
- Betrag
- RUN_ID
- RECORD_ID
Run_Id und Record_Id können ignoriert werden, um Unterschiede zu erhalten. – MathurS
Wie würden die Ergebnisse der letzten Minus-Abfrage verwendet? Für 'execute direkt 'müßten Sie in Variablen oder Sammlungen auswählen, die Vorkenntnisse über die Struktur erfordern würden. Sie könnten vielleicht 'dbms_sql' verwenden, um einen Ref-Cursor basierend auf der Abfrage zu öffnen, die aus den Tabellenspalten erstellt wurde, aber dann muss etwas mit diesem Ref-Cursor umgehen. (Was so einfach sein könnte wie SQL \ * Plus ''print'-Befehl, hängt aber davon ab, was Ihre Absichten sind). Sofern Sie dies nicht wirklich benötigen, ist Krokodilkos Ansatz viel einfacher. –