Focal Point Banner


As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.

Join the TIBCO Community
TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.

  • From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
  • Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
  • Request access to the private WebFOCUS User Group (login required) to network with fellow members.

Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.


Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [CLOSED] Master File table join Issue

Read-Only Read-Only Topic
Go
Search
Notify
Tools
[CLOSED] Master File table join Issue
 Login/Join
 
Member
posted
Hi ALL,

My master file join tables,i checked the join condition are linked correctly, but the records are not retrieved.

i checked database use the same condition and it return records, don't know why the webfocus is not retrieved records. Is it because the 2 fields column type format is different so that cannot use EQ to compare? CSCMA.CODE_VALUE is 'A10V', CSSDD.AREA_CODE is 'A4V'.

select CSCMA.code_full_desc
from CSSDD, CSCMA
where
CSCMA.CODE_VALUE = CSSDD.AREA_CODE
and CSCMA.CATEGORY_NAME='CAT2'
and CSSDD.ID = '0000002121212121'

all the 3 conditions are added in master file,
CSSDD.AREA_CODE EQ Field CSCMA.CODE_VALUE
CSCMA.CATEGORY_NAME EQ value 'CAT2'
CSSDD.ID EQ value '0000002121212121'


I have just tried change my oracle database table column size, after i changed table column size for CSSDD from varchar(4) to varachar(10) and import as master file again, there are records found. so that it means that it is the format different cause the issue. but how can we solve it? i should not change my database size.

Can help to advise? thanks.

This message has been edited. Last edited by: FP Mod Chuck,


WebFocus 8.2.0.1
Windows 7
 
Posts: 13 | Registered: June 09, 2017Report This Post
Virtuoso
posted Hide Post
quote:
Is it because the 2 fields column type format is different so that cannot use EQ to compare


Yes, should be same format. It's a better practice to have both fields with the same format.


WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF
In Focus since 2007
 
Posts: 2409 | Location: Montreal Area, Qc, CA | Registered: September 25, 2013Report This Post
Virtuoso
posted Hide Post
What DBMS are your tables in?


WebFOCUS 8206, Unix, Windows
 
Posts: 1853 | Location: New York City | Registered: December 30, 2015Report This Post
Member
posted Hide Post
quote:
Originally posted by BabakNYC:
What DBMS are your tables in?


Oracle 12c database


WebFocus 8.2.0.1
Windows 7
 
Posts: 13 | Registered: June 09, 2017Report This Post
Member
posted Hide Post
quote:
Originally posted by MartinY:
quote:
Is it because the 2 fields column type format is different so that cannot use EQ to compare


Yes, should be same format. It's a better practice to have both fields with the same format.


But my A10V table is a code table, it host codes that for other tables which exceeds length of 4 varchar, so it must be A10V.

Any other suggestion? thanks.


WebFocus 8.2.0.1
Windows 7
 
Posts: 13 | Registered: June 09, 2017Report This Post
Virtuoso
posted Hide Post
quote:
But my A10V table is a code table, it host codes that for other tables which exceeds length of 4 varchar, so it must be A10V.


You probably have something in CSSDD that identify which rows/code are for CSCMA table ?
So extract and Hold the code list specific for CSCMA table, reformat as a A4V and then JOIN the Hold table and CSCMA.


WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF
In Focus since 2007
 
Posts: 2409 | Location: Montreal Area, Qc, CA | Registered: September 25, 2013Report This Post
Virtuoso
posted Hide Post
Add this to the top of your code:
-SET &ECHO=ALL;
SET XRETRIEVAL=OFF
SET EMPTYREPORT=OFF
SET TRACEON    = STMTRACE//CLIENT
SET TRACEON    = STMTRACE/2/CLIENT
SET TRACEUSER  = ON


Then run it and show us what you get. I'm not sure I quite understand what's happening. Do you get 0 Records found? Or do you get some records but not all? If we look at the SQL trace that is generated out of WF, and attempt to run that SQL in SQL*Plus what happens?


WebFOCUS 8206, Unix, Windows
 
Posts: 1853 | Location: New York City | Registered: December 30, 2015Report This Post
Member
posted Hide Post
quote:
Originally posted by BabakNYC:
Add this to the top of your code:
-SET &ECHO=ALL;
SET XRETRIEVAL=OFF
SET EMPTYREPORT=OFF
SET TRACEON    = STMTRACE//CLIENT
SET TRACEON    = STMTRACE/2/CLIENT
SET TRACEUSER  = ON


Then run it and show us what you get. I'm not sure I quite understand what's happening. Do you get 0 Records found? Or do you get some records but not all? If we look at the SQL trace that is generated out of WF, and attempt to run that SQL in SQL*Plus what happens?


It is get 0 records found. after i changed my oracle database table column size for CSSDD to from varchar(4) to varachar(10) and import as master file again, there are records found. so that it means that it is the format different cause the issue. but how can we solve it? i should not change my database size.


WebFocus 8.2.0.1
Windows 7
 
Posts: 13 | Registered: June 09, 2017Report This Post
Virtuoso
posted Hide Post
That's most likely just because of:
SET XRETRIEVAL = OFF


The above group of statements shows a trace of your request, including what SQL gets sent to the RDBMS.

The reason Babak asked you to add that is so that the results are not masked by your table output.


WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010
: Member of User Group Benelux :
 
Posts: 1669 | Location: Enschede, Netherlands | Registered: August 12, 2010Report This Post
Virtuoso
posted Hide Post
I don't have access to Oracle so I tried this in MSS. I created two sql server tables. One is a copy of the car file with COUNTRY A10 and another with CNTRY A7V. I entered a few countries into CNTRY and joined it to the first table and wrote a simple request to bring back the matching rows between the two tables. I tried the join both in a TABLE request as well as a master file with the same outcome. Even though the format of the two fields in the join is different, the output contained the expected outcome.

I doubt if this behavior is any different in Oracle. Your findings based on changing the table structure are coincidental not causal. Here's what I tried:
FILENAME=JOINED_MSS, $
  SEGMENT=SEG01, CRFILE=IBISAMP/CAR_MSS, CRINCLUDE=ALL, $
  SEGMENT=SEG01, SEGTYPE=KU, PARENT=SEG01, CRFILE=IBISAMP/CNTRY, CRINCLUDE=ALL,
    JOIN_WHERE=COUNTRY EQ CNTRY;, $


FILENAME=CAR_MSS , SUFFIX=SQLMSS  , $
  SEGMENT=SEG01, SEGTYPE=S0, $
    FIELDNAME=FOCLIST, ALIAS=FOCLIST, USAGE=I5, ACTUAL=I4, $
    FIELDNAME=COUNTRY, ALIAS=COUNTRY, USAGE=A10, ACTUAL=A10, $
    FIELDNAME=CAR, ALIAS=CARS, USAGE=A16, ACTUAL=A16, $
    FIELDNAME=MODEL, ALIAS=MODEL, USAGE=A24, ACTUAL=A24, $
    FIELDNAME=BODYTYPE, ALIAS=TYPE, USAGE=A12, ACTUAL=A12, $
    FIELDNAME=SEATS, ALIAS=SEAT, USAGE=I3, ACTUAL=I4, $
    FIELDNAME=DEALER_COST, ALIAS=DCOST, USAGE=D7, ACTUAL=D8, $
    FIELDNAME=RETAIL_COST, ALIAS=RCOST, USAGE=D7, ACTUAL=D8, $
    FIELDNAME=SALES, ALIAS=UNITS, USAGE=I6, ACTUAL=I4, $
    FIELDNAME=LENGTH, ALIAS=LEN, USAGE=D5, ACTUAL=D8, $
    FIELDNAME=WIDTH, ALIAS=WIDTH, USAGE=D5, ACTUAL=D8, $
    FIELDNAME=HEIGHT, ALIAS=HEIGHT, USAGE=D5, ACTUAL=D8, $
    FIELDNAME=WEIGHT, ALIAS=WEIGHT, USAGE=D6, ACTUAL=D8, $
    FIELDNAME=WHEELBASE, ALIAS=BASE, USAGE=D6.1, ACTUAL=D8, $
    FIELDNAME=FUEL_CAP, ALIAS=FUEL, USAGE=D6.1, ACTUAL=D8, $
    FIELDNAME=BHP, ALIAS=POWER, USAGE=D6, ACTUAL=D8, $
    FIELDNAME=RPM, ALIAS=RPM, USAGE=I5, ACTUAL=I4, $
    FIELDNAME=MPG, ALIAS=MILES, USAGE=D6, ACTUAL=D8, $
    FIELDNAME=ACCEL, ALIAS=SECONDS, USAGE=D6, ACTUAL=D8, $



FILENAME=CNTRY, SUFFIX=SQLMSS  , $
  SEGMENT=SEG01, SEGTYPE=S0, $
    FIELDNAME=CNTRY, ALIAS=CNTRY, USAGE=A7V, ACTUAL=A7V, $


-SET &ECHO=ALL;
SET XRETRIEVAL=OFF
SET EMPTYREPORT=OFF
SET TRACESTAMP = OFF
SET TRACEON    = STMTRACE//CLIENT
SET TRACEON    = STMTRACE/2/CLIENT
SET TRACEUSER  = ON

TABLE FILE ibisamp/joined_mss
BY JOINED_MSS.SEG01.COUNTRY
BY JOINED_MSS.SEG01.CAR
BY JOINED_MSS.SEG01.CNTRY
ON TABLE PCHOLD FORMAT HTML

END

Here's the Trace:

SET XRETRIEVAL=OFF
 SET EMPTYREPORT=OFF
 SET TRACESTAMP = OFF
 SET TRACEON    = STMTRACE//CLIENT
 SET TRACEON    = STMTRACE/2/CLIENT
 SET TRACEUSER  = ON
 TABLE FILE ibisamp/joined_mss
 BY JOINED_MSS.SEG01.COUNTRY
 BY JOINED_MSS.SEG01.CAR
 BY JOINED_MSS.SEG01.CNTRY
 ON TABLE PCHOLD FORMAT HTML
 END
 -RUN
 AGGREGATION DONE ...
 SELECT
 T1."COUNTRY",
 T1."CARS",
 T2."CNTRY"
 FROM
 CAR_MSS T1,
 cntry T2
 WHERE
 (T2."CNTRY" = T1."COUNTRY")
 GROUP BY
 T1."COUNTRY",
 T1."CARS",
 T2."CNTRY"
 ORDER BY
 T1."COUNTRY",
 T1."CARS",
 T2."CNTRY";



Now if you run that SQL in the bottom of the trace in the native DBMS query tool you will find that you'll get a bunch of rows back. If you don't, then you should focus on the join behavior in Oracle. Unless you are joining tables from different DBMS's (e.g. Oracle --> FOCUS or HOLD FILE --> SQL Server) where the join is no longer executed inside the DBMS, you do not have to have the same field length. This might also happen when your code causes Optimization to be turned off. Things like DEFINE BASED JOINs could cause that. The SQL trace is where I think you should start. If the trace is not showing a single SELECT with a WHERE T1.TABLE = T2.TABLE you'll have to see why that's happening.


WebFOCUS 8206, Unix, Windows
 
Posts: 1853 | Location: New York City | Registered: December 30, 2015Report This Post
  Powered by Social Strata  

Read-Only Read-Only Topic

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [CLOSED] Master File table join Issue

Copyright © 1996-2020 Information Builders