ich habe hier ein Problem bei einem Kunden. Ich kenne weder das Projekt noch die damaligen Anforderungen. Jedenfalls wurden SELECT Statements wie folgt geschrieben um Dateien aus dem Vorsystem weiter zu verarbeiten.
Leider - und das ist das Problem, gehen dabei die vorstehenden 0-en verloren. So ist z.B. 02401 Kysucke Nove Mesto dasselbe ist wie 2401 Fischamend - und das ist fatal.
Hier sind ein paar Statements:
TMP_PLZ:
SQL SELECT
„ADR_ZUSATZ“,
ORT,
to_char(PLZ) as PLZ,
„ZUST_AD“
FROM ECHT.„VIEW_KUNDEN“;
/* Das to_char() ist im Prinzip schon für die Katz’, die führende Null geht flöten */
/* das text(PLZ) bringt schon gar nix mehr, weil die führende Null schon im Jordan schwimmt */
Wie kann ich nun Postleitzahlen mit voranstehenden 0-en aus Oracle heraus bekommen?
Zur eingesetzten Oracle Version kann ich momentan leider nichts sagen.
In welchem Format ist die PLZ in der DB hinterlegt?? Numerisch? No way: Die PLZ ist hierbei bereits ohne führende 0 gespeichert.
(Var)Char: Dann darf die View nicht auf numerisch umwandeln.
diese Postleitzahlen liegen im Feld PLZ mit Format VARCHAR2(11) vor.
Als was sollten denn die PLZ abgelegt sein? Kann man vielleicht mit einem Trick etwas dazu addieren und später einfach weglassen?
TMP_PLZ:
SQL SELECT
„ADR_ZUSATZ“,
ORT,
substr(PLZ+100000,2,5) as PLZ,
„ZUST_AD“
FROM ECHT.„VIEW_KUNDEN“;
(Dieser Tipp stammt von Clemens H, welchen ich über die Expertensuche angeschrieben hatte.)
Wenn du die Daten in einem Varchar2 Attribut hast, musst du
in der Abfrage eigentlich „gar nichts“ machen
hm, da kenne ich mich zu wenig aus in Oracle. Wie war das … ?
VarChar ist ein Synonym für VarChar2 in Oracle? Wie ist das Handling denn nun?
Oder anders gefragt, kann (sollte man?) man das Format für das PLZ Feld konkret auf ‚VarChar2‘ ändern. Wie siehts jetzt nach dem Import der Datensätze aus (oder kann Oracle das so)?