finde zahl aus String

baeri

Erfahrenes Mitglied
Hallo,

Ich arbeite auf einer Oracle SQL v12 Datenbank

ich habe folgendes Problem, ich habe einen String, welcher etwa so aussieht

BLA__2829274819934_349529384_...
oder so
TEXT__2849284312594_349529384_...

ich möchte die erste Zahl ausfiltern, welche IMMER 13 Stellig ist... also habe ich mir folgendes Zusammengestöpselt:
> SUBSTR( value, InStr( value, '__', 1, 1)+2, 13)

Das funktioniert zwar ganz gut, leider gibt es aber immer mal wieder Leute die sich dann nicht an die Gegebenheiten halten... somit gibt es auch folgende Strings:

BLA_2829254518994_349529384_...
oder
BLA_HI_2149284512974_349529384_...

gibt es auch die Möglichkeit, statt "__" zu finden, dass ich nach einem Integer suche?
=> InStr( value, [0-9], 1, 1)

Vielen Dank
 
eine kleine Ergänzung
Du wolltest die erste 13stellige Zahl. Dein Pattern findet die Erste Zahl. Egal wie viele Stellen
Der folgende Code sollte die 13 Stellen
Code:
REGEXP_INSTR( BCODE, '[0-9]{13}', 1, 1 )
Leider akzeptiert Oracle die Pattern (?>!xy) und (?!xy) nicht. Somit findet er auch die Zahlen welche länger als 13 sind :(

Wenn du noch auf REGEXP_SUBSTR() wechselst, hast du gleich das Resultat und nicht nur die Startposition
 
Hallo,

vielen Dank nochmal ...

passt zwar nicht direkt zur Frage, aber gut zum Thema...
wie kann ich denn Großbuchstaben finden?

Ziel ist es aus einer Liste von Emailadressen die Adressen zu finden, welche mit Großbuchstaben versehen sind:

eineMail@domain.tld

eigentlich habe ich gehofft mit
WHERE REGEXP_INSTR( email, '[A-Z]+', 1, 1 ) > 0

mein Ziel zu erreichen, leider hab ich das gefühl, dass A-Z nicht nur groß sein muss
 

Neue Beiträge

Zurück