2016-06-27 4 views
0

Derzeit arbeiten Sie in Microsoft Access und schreiben eine PTQ in ein Oracle Data Warehouse.REGEXP-Hilfe - Oracle-Pass-Through-Abfrage

Eines der Felder ist ein Beschreibungsfeld, das alphanumerische Zeichenfolgen enthält. Manchmal alle Zeichen, manchmal die Aufnahme einer 9-stelligen Nummer. Was ich tun möchte, ist, wenn es eine 9-stellige Nummer gibt, um sie aus diesem Beschreibungsfeld auszuwählen und ein neues Feld damit zu erstellen.

SELECT description 
    REGEXP_SUBSTR(* here goes the reg exp *) "REGEXPR_SUBSTR" 
FROM myTable 

REGEXP_SUBSTR 

Antwort

0
select * from 
(
SELECT REGEXP_SUBSTR("desc",'\d{9}') REGEXPR_SUBSTR FROM temp1 
) 
where REGEXPR_SUBSTR is not null; 

Thil wird perfekt funktionieren. Es lehnt Nullen ab und akzeptiert nur 9 Ziffern. Letzte Antwort Ich schrieb in Eile. Mi scuzi :)

+0

Das hat perfekt funktioniert. Vielen Dank für die Hilfe !! – bm0r3son

0

Ich habe sqldeveloper oder sqlplus nicht, es zu überprüfen, aber lassen Sie mich versuchen:

SELECT REGEXP_SUBSTR(descritpion,'\d{0,9}') "REGEXPR_SUBSTR" FROM myTable 
+0

Dies scheint nicht vollständig zu funktionieren - es keine Fehler zurückprallen, aber es gibt eine Tonne von leeren Zeilen und dann Zeilen mit einer beliebigen Anzahl von Ziffern in ihnen zurück. Könntest du mir dabei helfen, mir einen besseren Weg zu überlegen, wie ich einfach nur die Reihe von 9 Zahlen packen und in eine eigene Spalte setzen kann? Sorry für so bedürftig - ich bin wirklich auf diesem fest. – bm0r3son