Hi!
Translate kenne ich, weiss aber gerade nicht, wie mir das
weiterhelfen könnte, da es ja Zeichenketten in Zeichenketten
umwandelt.
declare
zeichenkette varchar2(20); -- umzuwandelnde Zeichenkette
x varchar2(20); -- Hilfsvariable
y number; -- "Ziel"
begin
...
x := rpad(translate(zeichenkette,'0123456789','0'),20,'0');
if (x = '00000000000000000000') then
y := to\_number(zeichenkette);
else
-- keine rein numerische Zeichenkette
end if;
...
end;
Aber das ist Schufterei und ich mag eben elegante Lösungen
viel lieber 
Naja, die Prüfung auf korrekte Zeichen wird trotzdem eine Schufterei bleiben …
Dazu noch eine Frage: Woher kommen diese Datensätze? Werden diese ev. mit dem SQL-Loader geladen? Denn dann kannst Du hier ja bereits ein BAD-File angeben und Du ersparst Dir alles …
Grüße,
Tomh