Home / Oracle Error / ORA-54002 when trying to create Virtual Column using REGEXP_REPLACE on Oracle 12cR2

ORA-54002 when trying to create Virtual Column using REGEXP_REPLACE on Oracle 12cR2

I encountered an issue today trying to create a table in an Oracle 12cR2 database, the DDL for which, I extracted from an Oracle 11gR2 database. The error returned when trying to create the table was:

ORA-54002: only pure functions can be specified in a virtual column expression

The definition of the table included a Virtual Column which used a REGEXP_REPLACE call to derive a value from another column on the table.

Running this on 11gR2 gives:

Running this on 12cR2 gives:

As you can see, 12cR2 gives the ORA-54002 error.

In my case, I was able to rewrite the virtual column to use simple string functions such as SUBSTR, TRANSLATE and INSTR to achieve what I wanted and the virtual column was allowed to be created with these – problem solved – a shame really as the REGEXP_REPLACE approach was far neater.

৩৮তম বিসিএস এর জন্য ৫০টি মডেল টেস্ট।
* ৩০ টি বিষয় ও অধ্যায় ভিত্তিক মডেল টেস্ট
* ২০ টি পুর্নাঙ্গ মডেল টেস্ট
* বিষয় ভিত্তিক রিপর্ট
* সময় ভিত্তিক রিপর্ট
* ভুল প্রশ্ন গুলো একসাথে ব্যাখাসহ
* বেশির ভাগ প্রশ্ন ব্যাখাসহ
* প্রথম ১০ জন মেধা তালিকা প্রকাশ
* প্রথম ১০ জন মেধা তালিকার সাথে আপনার রেজাল্ট তুলনা করতে পারবেন
*ইমেইল এর মাধ্যমে সবধরণের নোটিফিকেশান
GET UPDATE INSTANTLY
Increase your knowledge!
Your Information will never be shared with any third party.
৩৮তম বিসিএস জন্য ৫০টি মডেল টেস্ট
* ৩০ টি বিষয় ও অধ্যায় ভিত্তিক মডেল টেস্ট
* ২০ টি পুর্নাঙ্গ মডেল টেস্ট
* বিষয় ভিত্তিক রিপর্ট
* সময় ভিত্তিক রিপর্ট
* ভুল প্রশ্ন গুলো একসাথে ব্যাখাসহ
* বেশির ভাগ প্রশ্ন ব্যাখাসহ
* প্রথম ১০ জন মেধা তালিকা প্রকাশ
* প্রথম ১০ জন মেধা তালিকার সাথে আপনার রেজাল্ট তুলনা করতে পারবেন
*ইমেইল এর মাধ্যমে সবধরণের নোটিফিকেশান