View Single Post

   
  #3 (permalink)  
Old 04-08-2008, 09:21 AM
Mike Reed
 
Posts: n/a
Default Re: owa_pattern.pattern as a type

On Tue, 20 Dec 2005 06:27:35 -0800, stephen O'D wrote:

>
> Mike Reed wrote:
>> Hi,
>> Why can't I use owa_pattern.pattern as a column type?
>>
>> SQL> create table temp(
>> 2 names owa_pattern.pattern
>> 3 ) nested table names store as temp_names;
>> names owa_pattern.pattern
>> *
>> ERROR at line 2:
>> ORA-00902: invalid datatype
>>
>>
>> SQL>

>
> I don't think you can create a table based on a PLSQL type. It has to
> be an object type:-
>
> create or replace type pattern as object ( p1 varchar2(4) );
> /
>
> create or replace type pattern_a as table of pattern;
> /
>
> create table test_pat ( names pattern_a ) nested table names store as
> names;
>
> That works!


It does work. Thanks. However, it doesn't solve my real problem. I have a
fixed set of regular expressions that I am matching. So for speed I
wanted to store the precompiled patterns in a table. i.e. I wanted to
store the out param from owa_pattern.getpat in a table so that I could do
something like:

select id from temp where owa_pattern.amatch('some text', 1, precomp) > 1;

and it would call the version of amatch that took a precompiled regular
expression. This requires the column precomp to be of type
owa_pattern.pattern. Oh well! It seemed like a good idea.

Reply With Quote