cancel
Showing results for 
Search instead for 
Did you mean: 

Feature, EXTRACT with OMNI functional compensation, is not supported.

former_member319447
Participant
0 Kudos

set temporary option temp_extract_name1='/home/iq/p1/team/ess/procs/sp_p1ClrptBasketMaturityMonths/new.lst'

set temporary option temp_extract_column_delimiter='|'

set temporary option temp_extract_row_delimiter='\n'

And then I use a UDF in a select statement:


select swapNum, fc_datefmtspec1(maturityDate) from #out

I get this runtime error:

"Feature, EXTRACT with OMNI functional compensation, is not supported."

Does anyone know what this means and how to fix it?

Accepted Solutions (1)

Accepted Solutions (1)

markmumy
Advisor
Advisor
0 Kudos

Mark,

Unfortunately, this is expected. The TEMP_EXTRACT options only work for queries whose entire data set and computation are inside the IQ engine.  The UDF has to push data into the external library and that breaks the "all in IQ" requirement.  I would look to stuff the result into a temp temp then run an extract from there.

The one downside may be that the licenses forbid UDFs from writing back into IQ.  This is only available via partner UDFs and via the RAP product as far as I know.

Mark

Former Member
0 Kudos

The "solely in IQ" seems to be recurring more often lately.  Perhaps a white paper with diagrams showing what features / tasks are performed solely in IQ and SQL Anywhere and what performed in both is in order.

jason

former_member319447
Participant
0 Kudos

That would be useful. Also, perhaps describe what is meant by saying that proc can be written in Watcom SQL or T-SQL, but not both at the same time. This continually confuses me, since I am calling a non T-SQL functions inside a T-SQL proc.

To me, that means I am using both at the same time.

markmumy
Advisor
Advisor
0 Kudos

With respect to the TSQL and Watcom discussion....  This is no different than someone writing in C.  You can't mix C and C#, for instance.  And for certain you can't have JAVA and C in the same program.  A C compiler won't understand JAVA calls and vice versa.

What we mean by this is that you cannot have a single procedure or batch that mixes dialects.    You can't use the TSQL IF statement then have the WATCOM SQL SET statement followed by a TSQL WHILE loop.

You can absolutely have a TSQL proc that calls a WATCOM proc and vice versa.  That is fine since each set of code is encapsulated within a standalone procedure.

Mark

markmumy
Advisor
Advisor
0 Kudos

Basically, the objects in the FROM clause must all be IQ tables (no catalog, no SYSTEM, no CIS tables).  Second, the function calls being used must be IQ functions.  So the few remaining SA functions (like LIST) and any UDFs (C, SQL, JAVA) will take some processing outside the IQ engine and memory and thus cannot be used for temp extracts.

Mark

Answers (0)