Ganymed Geschrieben 21. Juli 2004 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
AxlHammer Geschrieben 21. Juli 2004 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden