Ganymed Geschrieben 21. Juli 2004 Teilen Geschrieben 21. Juli 2004 Hallo zusammen, gibt es eine Möglichkeit, in PL/SQL Strings "auszuschneiden"? Ich habe folgenden Preis-String: 1,99 2,99 0,00 1,99 3,99 0,00 2,99 1,99 0,00 Nun muss ich jeden Preis einzeln auslesen und in Variablen schreiben (die Anzahl der Preise ist immer gleich). Da ich aber nicht weiß, ob ein Preis vor dem Komma ein- oder mehrstellig ist, möchte ich mit substr mit immer einen Preis bis zum nächsten Leerzeichen ausgeben. Nur irgendwie fehlt mir da was. Ich bekomme zwar die 1,99 raus, aber beim Rest klappt das nicht. Replace und anschließendes LTrim geht auch nicht, da die 1,99 ja auch mehrfach vorkommen kann... Vielleicht habe ich auch nur ein Brett vorm Kopf, aber vielleicht kennt ihr eine Zeichenfunktion, die mir einen Preis quasi aus dem String "ausschneidet", damit ich immer den String neu von vorne auslesen kann... Gruß Ganymed Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AxlHammer Geschrieben 21. Juli 2004 Teilen Geschrieben 21. Juli 2004 Wie wärs damit DECLARE preis_string varchar2(200) := '1.99 2.03 1.98'; -- usw. pos_space NUMBER := 0; pos_lastSpace NUMBER := 0; preis_einzeln number; BEGIN WHILE instr(preis_string, ' ', pos_lastSpace+1, 1) > 0 LOOP pos_space := instr(preis_string, ' ', pos_lastSpace+1, 1); preis_einzeln := to_number(substr(preis_string, pos_lastSpace+1, pos_space-1)); pos_lastSpace := pos_space; END LOOP; END; So liest du in jedem Druchlauf der Schleife in die Variable preis_einzeln den Preis ein (nicht getestet, sollte aber klappen). Gruss, Axl Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.