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.
In fact, I queried SYSCOLUM with other variations of 'CAR': Car, cAr, CAr, etc. and in all cases, TBNAME and TABLE_NAME fields display the value exactly as it was specified in the WHERE condition.
SYSCOLUM is a "special" master and perhaps its internal wiring is designed to work that way. I tested querying other master files (the ones I have defined over a few Oracle tbles) and the behaviour is the same so it's nothing related only to FOCUS files.
Well, table names are of course case-insensitive in SQL, so those results amount to the same thing for SQL. You'd expect to get the table name case-folded to either upper-case or lower-case in a consistent manner, though.
However, it gets more interesting when you use LIKE...
TABLE SYSCOLUM
BY TBNAME
BY TABLE_NAME
BY FILENAME
WHERE TBNAME LIKE 'car%';
END
That gets us: car car CAR
Now try it in uppercase:
TABLE SYSCOLUM
BY TBNAME
BY TABLE_NAME
BY FILENAME
WHERE TBNAME LIKE 'CAR%';
END
That get us: nothing!
I think there may be a difference to do with NLS handling between those two operators.
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 :
Hmm - I'll take a look at the collation settings. For most things we are doing it's not an issue but we've starting using the &&IBI_IF_FLDS variable to limit access to certain fields. Everywhere else we reference table names in upper case but in this particular case (pun intended) we need to do it like this...
WHERE ((TBNAME EQ 'mytable') AND (NAME EQ 'COL1' OR 'COL2' OR 'COL3'));
Thanks to everyone for confirming my sanity
Dan
7.7.05M/7.7.03 HF6 on Windows Server 2003 SP2 output to whatever is required.
Posts: 393 | Location: St. Paul, MN | Registered: November 06, 2007