Oracle, führende 0 verschwindet - wie text() laden

Hallo zusammen,

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 */

PLZ:
noconcatenate load
ADR_ZUSATZ,
ORT,
text(PLZ) as PLZ,
ZUST_AD
resident TMP_PLZ;

/* 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.

Besten Dank für die Hilfe,
olli

Hi!

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.

Grüße,
Tomh
(Ich hoffe, ich habe nix überlesen …)

Hey Tomh,

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.)

Dank & Gruß, olli

  • Wenn du die Daten in einem Varchar2 Attribut hast, musst du in der Abfrage eigentlich „gar nichts“ machen

Beispiel :

SELECT a.string
FROM test_varchar a;

string

1115454
05487
0989878

Gruss

Hi,

  • 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)?

Sorry für diese Anfängerfragen.

Dank & Gruß, olli

ich dachte, dein Feld PLZ ist im Varchar2 Format ??. mach doch einfach mal ein

SELECT PLZ from myTable;

und schau, ob deine „0“-en da sind ?

gruss

Du hast Recht. Sorry, hab ich gerade durcheinander gehauen.

Die 0-en sind da. Werde mal deinen Tipp anregen. Problem dabei ist, dass die Statements alle umgeschrieben werden müssen.

Grüße, olli