• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

SQL Select auf nicht existierende Spalten ohne Fehler möglich?

darktrym

Fahnenträger
Themenstarter #1
Hallo allerseits,
ist es möglich ein Select so zu formen dass wenn ich dieses verwende und die Spalten gerade nicht existieren(Recovery alten DB-Stand), das die nicht vorhandenen Felder mit Default-Werten belegt werden und kein Fehler geworfen wird?
 

-Nuke-

Well-Known Member
#3
Sowas wie SELECT t.col1, t.col2, 'col3 default' AS col3 FROM tabl AS t ?

Je nach Datenbank ggf. leicht anders formatiert.
 

darktrym

Fahnenträger
Themenstarter #4
Nein. Es existiert eine Tabelle SPECIAL mit Feld id1, id2 und eine Tabelle mit nur id1 in einem anderen Datenbankstand.
Dann soll select id1, id2 from table SPECIAL akzeptiert werden auch wenn id2 nicht existiert und einen Wert zurückgeben.
 

-Nuke-

Well-Known Member
#5
Tabelle umbenennen und eine View anlegen die Special heißt und das dann wie bei mir genannt ausfüllt? Ansonsten musst du schauen ob deine Datenbank Query Rewriting erlaubt (was intern nichts anderes macht als aus der Tabelle eine View zu machen).
 

darktrym

Fahnenträger
Themenstarter #6
Das ganze muss auf SQL-Klausel Ebene geschehen weil die Datenbank produktionsrelevant ist. Und die alte Software muss auch noch funktionieren.
Der einfachste Weg wäre eine Skalarfunktion zu schreiben um die Felder abzusichern. Aber sollte jemand auf die wahnsinnige Idee kommen die DB dann auch noch wechseln zu wollen, habe ich ein Problem. Und alle SQL-Klauseln umzuschreiben wird den Durchsatz massiv beeinträchtigen. Bliebe dann noch ein Fallback einzubauen um bei Nichtvorhandensein der Funktion clientseitig das zu fixen. Ich hatte gehofft es gibt eine Funktion im SQL Standard(Oracle DB), die das für mich übernehmen könnte.