Friends,
Say I have the following UDF:
CREATE FUNCTION GET_MONTH(P_DAT E DATE)
RETURNS INTEGER
INHERIT SPECIAL REGISTERS
SPECIFIC GET_MONTH
DETERMINISTIC
BEGIN ATOMIC
RETURN MONTH(P_DATE);--
END;
and that I'd like to use it in the following MQT:
CREATE TABLE
UDF_MQT
AS
(
SELECT
GET_MONTH()
FROM
SYSIBM.SYSDUMMY 1
)
DATA INITIALLY DEFERRED REFRESH DEFERRED
NOT LOGGED INITIALLY;
When I try to create the MQT, I get an error SQL20058N, reason code 4:
(SQL20058N The fullselect specified for the materialized query table
<is not valid. Reason code = "4)
The fullselect must not contain references to functions that:
o depend on physical characteristics of the data, for example
DBPARTITIONNUM, HASHEDVALUE
o are defined as EXTERNAL ACTION
o are defined as LANGUAGE SQL, CONTAINS SQL, READS SQL DATA or
MODIFIES SQL DATA
Volume 2 of the SQL Reference has the following under CREATE TABLE:
When REFRESH DEFERRED or REFRESH IMMEDIATE is specified (as if,
according to the syntax diagram under refreshable-table-options, there
are any other kinds :-), the fullselect cannot include functions that
have any of the following attributes:
EXTERNAL ACTION
LANGUAGE SQL
CONTAINS SQL
READS SQL DATA
MODIFIES SQL DATA
Anyone know of a way around this, while still using a SQL scalar
function? This limitation seems very...limiting .
Thanks,
--Jeff 3 2308
jefftyzzer wrote:
Friends,
Say I have the following UDF:
CREATE FUNCTION GET_MONTH(P_DAT E DATE)
RETURNS INTEGER
INHERIT SPECIAL REGISTERS
SPECIFIC GET_MONTH
DETERMINISTIC
BEGIN ATOMIC
RETURN MONTH(P_DATE);--
END;
and that I'd like to use it in the following MQT:
CREATE TABLE
UDF_MQT
AS
(
SELECT
GET_MONTH()
FROM
SYSIBM.SYSDUMMY 1
)
DATA INITIALLY DEFERRED REFRESH DEFERRED
NOT LOGGED INITIALLY;
When I try to create the MQT, I get an error SQL20058N, reason code 4:
(SQL20058N The fullselect specified for the materialized query table
<is not valid. Reason code = "4)
The fullselect must not contain references to functions that:
o depend on physical characteristics of the data, for example
DBPARTITIONNUM, HASHEDVALUE
o are defined as EXTERNAL ACTION
o are defined as LANGUAGE SQL, CONTAINS SQL, READS SQL DATA or
MODIFIES SQL DATA
Volume 2 of the SQL Reference has the following under CREATE TABLE:
When REFRESH DEFERRED or REFRESH IMMEDIATE is specified (as if,
according to the syntax diagram under refreshable-table-options, there
are any other kinds :-), the fullselect cannot include functions that
have any of the following attributes:
EXTERNAL ACTION
LANGUAGE SQL
CONTAINS SQL
READS SQL DATA
MODIFIES SQL DATA
Anyone know of a way around this, while still using a SQL scalar
function? This limitation seems very...limiting .
There is no way around it. The problem lies in the routing. Gets pretty
pretty with SQL functions. Rather then allowing to create the beast and
never route to it we thought it better to block up front.
The "other kind" is: DEFINITION ONLY btw.
Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
WAIUG Conference http://www.iiug.org/waiug/present/Fo...Forum2006.html
Thanks, Serge. While not the answer I hoped for, at least it's
conclusive. As to my "other kind" comment, sorry--that was a cheap
shot.
BTW, my colleagues who went to your "SQL on Fire" sessions had great
things to say about it. I wish I could have attended the conference,
but going is a privilege we must rotate :-).
--Jeff
Serge Rielau wrote:
jefftyzzer wrote:
Friends,
Say I have the following UDF:
CREATE FUNCTION GET_MONTH(P_DAT E DATE)
RETURNS INTEGER
INHERIT SPECIAL REGISTERS
SPECIFIC GET_MONTH
DETERMINISTIC
BEGIN ATOMIC
RETURN MONTH(P_DATE);--
END;
and that I'd like to use it in the following MQT:
CREATE TABLE
UDF_MQT
AS
(
SELECT
GET_MONTH()
FROM
SYSIBM.SYSDUMMY 1
)
DATA INITIALLY DEFERRED REFRESH DEFERRED
NOT LOGGED INITIALLY;
When I try to create the MQT, I get an error SQL20058N, reason code 4:
(SQL20058N The fullselect specified for the materialized query table
<is not valid. Reason code = "4)
The fullselect must not contain references to functions that:
o depend on physical characteristics of the data, for example
DBPARTITIONNUM, HASHEDVALUE
o are defined as EXTERNAL ACTION
o are defined as LANGUAGE SQL, CONTAINS SQL, READS SQL DATA or
MODIFIES SQL DATA
Volume 2 of the SQL Reference has the following under CREATE TABLE:
When REFRESH DEFERRED or REFRESH IMMEDIATE is specified (as if,
according to the syntax diagram under refreshable-table-options, there
are any other kinds :-), the fullselect cannot include functions that
have any of the following attributes:
EXTERNAL ACTION
LANGUAGE SQL
CONTAINS SQL
READS SQL DATA
MODIFIES SQL DATA
Anyone know of a way around this, while still using a SQL scalar
function? This limitation seems very...limiting .
There is no way around it. The problem lies in the routing. Gets pretty
pretty with SQL functions. Rather then allowing to create the beast and
never route to it we thought it better to block up front.
The "other kind" is: DEFINITION ONLY btw.
Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
WAIUG Conference http://www.iiug.org/waiug/present/Fo...Forum2006.html
jefftyzzer wrote:
Thanks, Serge. While not the answer I hoped for, at least it's
conclusive. As to my "other kind" comment, sorry--that was a cheap
shot.
BTW, my colleagues who went to your "SQL on Fire" sessions had great
things to say about it. I wish I could have attended the conference,
but going is a privilege we must rotate :-).
The WAIUG Conference is dirt cheap. Final call for "SQL on Fire!".
Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
WAIUG Conference http://www.iiug.org/waiug/present/Fo...Forum2006.html This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Andrew Mayo |
last post by:
There is something very strange going on here. Tested with ADO 2.7 and
MSDE/2000. At first, things look quite sensible.
You have a simple SQL query, let's say
select * from mytab where col1 = 1234
Now, let's write a simple VB program to do this query back to an
MSDE/2000 database on our local machine. Effectively, we'll
|
by: Eugene |
last post by:
In a DB2 V8.1 FP4 database I am trying to create a table SQL UDF that
is to return a contents of a temporary table with in this UDF:
create function getitemdata(pint int)
returns table
(
hostid smallint,
owid bigint
)
|
by: David Carver |
last post by:
We are running into a problem with a Communication Link failure when
calling an External Stored procedure written in ILE Cobol from an SQL
UDF. When calling the stored procedure by itself and not within the
UDF it runs fine, it's only when we excute the UDF that we get the
communication link failure. I have setup EXTERNAL ACTION on the the
UDF, the COBOL program doesn't execute any SQL statements.
Here is the function and how it is...
|
by: Suresh |
last post by:
At one of the clinets I am working with, we are having a debate about
the use of MQTs or go with traditional way of creating aggregate
tables and populating them. I would go with the MQTs instead of the
traditional way.
Does anyone has any input as to which way is better from an apporach
point of view which would result that is better for an organization.
Any feedback is appreciated.
|
by: Pete H |
last post by:
Hi All;
I'm trying to get some of the samples that are amply illustrated in
multiple docs to work. When I try to create a Warehouse Center view
"...for MQ Series messages" or use the UDF wizard in Development
Center, I get the following error/warning:
-------------------------------------------------------------------------
MQSeries Integration Functions could not be found on the target
database.
To run the DB2 table UDFs built by this...
| |
by: Rhino |
last post by:
I am updating some Java UDFs from DB2GENERAL to DB2JAVA as suggested in the
manuals for DB2 Version 8 but I'm having problems with setSQLstate() and
setSQLmessage(). If I'm reading the manuals correctly, they are only
supported in UDFs that use DB2GENERAL. Is that right?
If it is, is there any equivalent to these methods for DB2JAVA UDFs? I'd
really like to be able to return a message and SQLState of my own choosing.
(I know that I...
|
by: Helmut Tessarek |
last post by:
Hi everybody,
I've written some UDFs to generate passwords within DB2. They are
compatible to the functions that are used in Apache's htpasswd utility.
Maybe someone can use them.
http://sourceforge.net/project/showfiles.php?group_id=103064&package_id=110695
The UDFS are
|
by: Carsten |
last post by:
Hello Folks,
I encountered a problem with SQL server 2000 and UDFs.
I have a scalar UDF and a table UDF where I would like the scalar UDF
to provide the argument for the table UDF like in:
SELECT
*
FROM
|
by: BD |
last post by:
Hi there.
I'm attempting to implement MQTs to improve performance on some nasty
SQL.
In the Oracle world, if I recall, materialized views must use tables
as underlying objects - ie., they cannot be based on views.
Does the same hold in db2 (8.2 LUW, 8 z/OS)?
|
by: BD |
last post by:
I'm doing some cross-platform development, under LUW 8.2 (Windows) for
z/OS 8.
I have some fairly complex queries which address some rather large
tables.
One query takes approximately 30 seconds to complete, once the result
set has been loaded into buffer caches. The initial run of the query
is about 2 minutes.
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
| |
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |