Wir verwenden eine Extraktor-Anwendung, die Daten aus der Datenbank in CSV-Dateien exportieren wird. Basierend auf einer Bedingungsvariablen extrahiert es Daten aus verschiedenen Tabellen und für einige Bedingungen müssen wir UNION ALL verwenden, da die Daten aus mehr als einer Tabelle extrahiert werden müssen. Um die UNION ALL-Bedingung zu erfüllen, verwenden wir Nullen, um die Anzahl der Spalten anzupassen.Die beste Methode zum dynamischen Abrufen von Spaltennamen aus Oracle Tabellen
Momentan sind alle Abfragen im System basierend auf der Bedingungsvariablen vordefiniert. Das Problem besteht darin, dass bei jeder Änderung der Tabellenprojektion (d. H. Neue Spalte hinzugefügt, vorhandene Spalte geändert, Spalte gelöscht) der Code in der Anwendung manuell geändert werden muss.
Können Sie bitte einige Vorschläge machen, wie Sie die Spaltennamen dynamisch extrahieren, so dass Änderungen in der Tabellenstruktur keine Änderung im Code erfordern?
Mein Anliegen ist die Bedingung, die entscheidet, welche Tabelle abgefragt werden soll. Der variable Zustand wie
- wenn der Zustand A ist, dann ist von der Last TableX
- wenn die Bedingung B dann aus TableA und Tabley laden.
Wir müssen wissen, aus welcher Tabelle wir Daten bekommen müssen. Sobald wir die Tabelle kennen, ist es einfach, die Spaltennamen aus dem Data Dictionary abzufragen. Aber es gibt eine weitere Bedingung, nämlich dass einige Spalten ausgeschlossen werden müssen und diese Spalten für jede Tabelle unterschiedlich sind.
Ich versuche, das Problem nur für das dynamische Generieren der Listenspalten zu lösen. Aber mein Manager sagte mir, ich solle eine Lösung auf der konzeptionellen Ebene machen, anstatt nur zu reparieren. Dies ist ein sehr großes System, bei dem Anbieter und Verbraucher ständig Daten laden und konsumieren. Also wollte er eine Lösung, die allgemein sein kann.
Also, was ist der beste Weg zum Speichern von Bedingung, Tabellenname, ausgeschlossene Spalten? Eine Möglichkeit ist das Speichern in der Datenbank. Gibt es noch andere Möglichkeiten? Wenn ja, was ist das Beste? Da muss ich vor dem Finalisieren noch ein paar Ideen geben.
Danke,
Hallo Jim, das ist genau das, was ich wollte. Danke vielmals. Eigentlich versuche ich das Problem nur für das dynamische Erzeugen von Spalten zu lösen. Aber mein Manager sagte mir, ich solle eine Lösung auf der konzeptionellen Ebene machen, anstatt sie zu reparieren. Dies ist ein sehr großes System, bei dem Anbieter und Verbraucher ständig Daten laden und konsumieren. Er wollte also eine Lösung, die allgemein sein kann. Vielen dank für Deine Hilfe. Genau das habe ich mir gedacht. Aber ich denke, ich muss mehr Informationen über das System erhalten und an der Lösung arbeiten, die allgemein genug ist, um sie auf jedem System anzuwenden. – MNC
haben Sie keine Angst, es ein Häkchen zu geben und Antwort-Marke als beantwortet dann :) - hoffe, Sie schaffen es, um für alle Szenarien erweiterbar zu sein. Jahreszeiten Grüße ... –
Hallo Jim, Wie wählt man 2 Beiträge als Antwort. Wie ich versuche, Antwort auf Ihre und @APC zu markieren. Es erlaubt mir nicht, beide als Antwort zu markieren. – MNC