Thursday, January 28, 2010

Discoverer E-Learning Offer Extended Until Further Notice

Due to the great response we had from folks purchasing our Discoverer E-Learning software for Administrators and End Users we are delighted to let you know that we have extended the offer until further notice. Interested in buying? Click here.

How much does it cost?
We will let you have our E-Learning courses for the following amazing prices:
  • Discoverer Administration course only $99.00
  • Discoverer End User course only $199.00
  • Buy both course for only $249.00

This is the offer of a lifetime and these prices represent a saving of 1000s of dollars over our standard price list.

We know that these courses will be of particular interest to people outside of the USA, or for people on a limited budget who cannot get to one of our fantastic instructor-led sessions in beautiful Tennessee, or for someone like you who would like to get training but your company has cut back on your training budget. Whatever the reason, you cannot afford not to take part in this offer to get a personal copy of one or both of our world-class training.

What will you get?

When you buy our E-Learning training through this offer, you get everything you need to complete your training. Here is what you get:
  • You get the 13 Administration or 17 End User interactive video modules
  • You get a PDF copy of the full Armstrong-Smith Consulting manual
  • You get a copy of the Armstrong-Smith Consulting database schema along with full instructions for installing onto your database
  • You get the full Armstrong-Smith EUL complete with test workbooks
How do you buy?
To purchase this training please click here. You will be able to pay either by credit card or via PayPal.

Useful Patch Numbers posting updated

I have today updated my Useful Patch Numbers posting with full details for CP6

Click here for more information

Friday, January 01, 2010

There's Nothing like NULLs for Confusion

Happy New Year everyone. Here is a cautionary note about using NULLs and the 'NULL' string with Discoverer. If you want to select rows containing NULLs you need to use the condition IS NULL. However, this causes a problem if you want to select null values using a parameter because the condition column=:parameter would not return any rows if the parameter was NULL.

Before 10gR2, Discoverer did not handle selecting null values from a parameter so you needed to convert the NULL values into a NULL string and include the the NULL string in the list of values. So for example, if you had a column that contained the values 'YES', 'NO' and NULL you would create a list of values that returned the strings 'YES', 'NO' and 'NULL' then use a condition NVL(column, 'NULL') = :parameter. So when you wanted to select rows where the column contained 'YES' or was NULL, you selected 'YES' and 'NULL' from the list of values and Discoverer generated the condition NVL(column, 'NULL') IN ('YES', 'NULL') returning the correct rows (assuming your column did not actually contain any 'NULL' strings).

So far so good, but this changed with Discoverer Plus 10gR2. In this release Discoverer tried to deal with the NULL value in the list of values. So if you had 'NULL' in the list of values it would create an IS NULL condition. So in the above example you could use the conditioncolumn = :parameter and if you selected 'YES' and 'NULL' from the list of values Discoverer would generate the condition column IN ('YES') OR column IS NULL.

Great, but this release would change the 'NULL' string to NULL anywhere it was entered into a condition. So for example, if you entered the condition column = 'NULL' it would change it to column IS NULL. Also if you had the condition NVL(column, 'NULL') = 'NULL' it would change it to NVL(column,NULL) IS NULL. This would give you unexpected results and to add to the confusion, Discoverer Desktop continues to work as before so the results would be different from the Desktop edition.

However, the confusion is compounded in Discoverer Plus 10gR2 CP6. In this consolidated patchset the functionality changes yet again. Discoverer Plus nolonger converts the condition column='NULL' so Plus now returns the correct results. However it stores the condition internally as column = '''NULL''' and when you open and run the workbook in Discoverer Desktop the condition column = '''NULL''' is used so again you get different results. There are more differences when you create the conditions in Desktop and open the same workbook in Plus.

One would hope that with a product with the longevity of Discoverer the basic functionality of the product would be stable, but NULLs are nothing and nothing changes like 'NULL's.