I Used String für diese AbfrageUngültige Nummer In substr
to_number(substr(skidno,instr(skidno,'/')+1,length(skidno)))
das i für ths Abfrage übergeben werden Skid keine 'MMM-1718/000325/1' ich erhielt ungültige Nummer
I Used String für diese AbfrageUngültige Nummer In substr
to_number(substr(skidno,instr(skidno,'/')+1,length(skidno)))
das i für ths Abfrage übergeben werden Skid keine 'MMM-1718/000325/1' ich erhielt ungültige Nummer
Sie nicht konvertieren es zu nummerieren, weil Sie "/" im Ergebnis erhalten. Ergebnis: '000325/1'.
Wenn Sie nur benötigen nur die Zahl zwischen ‚/‘ dann unten probieren:
to_number(substr(skidno ,instr(skidno ,'/')+1,
instr(skidno ,'/',1,2) -instr(skidno ,'/',1,1)-1))
Wenn Ihre Notwendigkeit, den Teil nach dem zweiten Auftreten von „/“ zu extrahieren ist; Die folgende Abfrage genügt Ihren Bedarf ---
select to_number(trim('/' FROM
substr('MMM-1718/000325/1',
instr('MMM-1718/000325/1', '/', 1, 2))))
from dual;
Möglicherweise möchten Sie regexp_substr
verwenden. Wenn Sie wollen nur die Zahl am Ende des Wertes erhalten:
to_number(regexp_substr(skidno, '\d+$'))
Da Sie Teil der Zeichenfolge benötigen, das von Zeichen ‚/‘ nach dem zweiten Auftreten beginnt und geht zum Ende der Zeichenfolge, die folgenden Lösung ist wahrscheinlich die einfachste mit substr/instr:
with t as
(
select 'MMM-1718/000325/1' mystring
from dual
)
select to_number(substr(mystring, instr(mystring, '/', 1, 2) + 1))
from t;
Hinweis: in diesem Fall müssen Sie nur noch in Funktion substr Ausgangsposition definieren; Länge der Zeichenfolge wird nicht benötigt.
Obwohl dies mehr oder weniger das ist, was Pratik in seiner Antwort schrieb. –
Ich denke, Sie erhalten das Leerzeichen und die 1, und das kann nicht in eine Zahl umgewandelt werden – Jens
wo ist die Abfrage genau? –
skid no pass für die Abfrage – siva