2016-08-24 3 views
0

extrahieren Ich möchte aus dieser Zeichenfolge extrahieren: FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI;BYHOUR=7;BYMINUTE=0;BYSECOND=0 die Nummer, die nach 'BYHOUR=' String mit Oracle pl/SQL ist.
Es kann 1 oder 2 Zeichen lang sein (0-23)
Es ist wahrscheinlich am besten, Regex regulären Ausdruck zu verwenden, aber ich war nie flüssig bei der Erstellung von ihnen.Eine Zahl aus einer Zeichenfolge nach einer bestimmten Zeichenfolge in Oracle SQL

Kann jemand helfen und es erklären?

Antwort

1

Verwendung REGEXP_SUBSTR:

SELECT REGEXP_SUBSTR(col, 'BYHOUR=(\d{1,2})') 
FROM yourTable 
+0

Dank, es funktioniert, obwohl die Ausgabe lautet: 'BYHOUR = 12'. Ist es möglich, nur eine Zahl in dieser Anweisung zu erhalten (mit Regex) oder muss ich die Methode substr() verwenden, um sie zu bekommen? –

+0

Ich denke, Sie könnten es zu diesem REGEXP_SUBSTR ändern (col, '(\ d {1,2})', Instr (Spalte 'BYHOUR')) – Chrisrs2292

+0

@chris Siehe doppelte Frage Antwort – Bohemian

Verwandte Themen