Dette skyldes, at Oracle kun understøtter standarden POSIX regulære udtryk i stedet for den Perl-syntaks, som du bruger i dit første eksempel.
Oracle Docs:http://docs.oracle. com/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm#CHDJGBGG POSIX Regex Standard:http://pubs.opengroup.org/onlinepubs/007908799 /xbd/re.html
Rediger:Som Alex Poole påpeger, at Oracle faktisk understøtter Perl regex-syntaks siden Oracle 10gR2. At prøve dit eksempel på min lokale 11gR2 installation tyder på, at din syntaks er forkert, følgende fungerer fint:
SELECT 1 FROM dual WHERE regexp_like('040', '^\d{3}$');