home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Neueste VersionenFixList
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Haben Sie Probleme? - Kontaktieren Sie uns.
Kostenlos registrieren anmeldung-x26
Kontaktformular kontakt-x26

DB2 - Problembeschreibung

Problem IC89152 Status: Geschlossen

A PREDICATE USING CONTAINS FUNCTION ON A COLUMN DERIVED FROM A UNION ALL
OPERATION MIGHT RETURN SQL0901N

Produkt:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problembeschreibung:
You might get error SQL0901N with Reason "column number of 
range" when you execute an SQL statements which has both: 
1) a WHERE clause that uses the CONTAINS function, and: 
2) a FROM clause that includes more than one view, if the DDL 
for both views includes UNION ALL. 
 
For example: 
 
CREATE VIEW view1 
AS 
SELECT ... FROM tabA ... 
UNION ALL 
SELECT ... FROM tabB ... 
; 
 
CREATE VIEW view2 
AS 
SELECT ... FROM tabC ... 
UNION ALL 
SELECT ... FROM tabD ... 
; 
 
SELECT 
 ... 
FROM 
 view1 JOIN view2 ... 
WHERE 
 CONTAINS ... 
; 
 
 
The call stack is as follows: 
 
sqlnq_ftb::num2fcs 
sqlnq_handle_resolved_col_ref 
sqlnr_ftslpd_thr_union 
sqlnr_text_func_prdpd 
sqlnr_optprep 
sqlnr_optprep_action 
sqlnr_comp 
sqlnr_seq 
sqlnr_rcc 
sqlnr_exe 
sqlnn_cmpl 
sqlnn_cmpl 
sqlra_compile_var 
sqlra_find_var 
sqlra_get_var 
sqlrr_prepare
Problem-Zusammenfassung:
**************************************************************** 
* USERS AFFECTED:                                              * 
* Users of DB2 for Linux, UNIX and Windows                     * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See Error Description                                        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* .                                                            * 
****************************************************************
Local-Fix:
As a workaround, you can amend the SQL statement so that the 
CONTAINS function is no longer in the main WHERE clause but in 
the WHERE clause of subselect and applies directly to the the 
tables in a view instead, like this: 
 
SELECT ... 
FROM 
( 
 SELECT * FROM tabA WHERE CONTAINS ... 
 UNION ALL 
 SELECT * FROM tabB WHERE CONTAINS ... 
) AS view1 
JOIN view2 ... 
;
verfügbare FixPacks:
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Lösung
Problem was first fixed in Version 9.7 Fix Pack 8. 
At a minimum, this fix should be applied on the server.
Workaround
As a workaround, you can amend the SQL statement so that the 
CONTAINS function is no longer in the main WHERE clause but in 
the WHERE clause of the subselect and applies directly to the 
the 
tables in a view instead, like this: 
 
SELECT ... 
FROM 
( 
 SELECT * FROM tabA WHERE CONTAINS ... 
 UNION ALL 
 SELECT * FROM tabB WHERE CONTAINS ... 
) AS view1 
JOIN view2 ... 
;
Bug-Verfolgung
Vorgänger  : APAR is sysrouted TO one or more of the following: IC91301 
Nachfolger : 
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
17.12.2012
15.04.2013
15.04.2013
Problem behoben ab folgender Versionen (IBM BugInfos)
9.7.FP8
Problem behoben lt. FixList in der Version
9.7.0.8 FixList