Describe in SQL Nav 6.1

So now in Version 6 we add yet a third Describe window, each one of which describes only certain things at certain times.

Apparently there is some sort of assumption that people never just code in the SQL window, they always use the DB Navigator. This is a bad assumption. When there are over a thousand objects in several schemas, navigating through looking for a table is not so handy. Using the find objects function is faster - but often times I know the schema and table name I want to use, so I start typing it into the Code editor. Suppose in the Code Editor I type SELECT * FROM Table1
My choices to see the column descriptions of Table1 are:

Go hunt down Table1 with the DB Navigator and then Describe or Auto Describe from there.

Ctrl F3 Describe - This is the fastest and easiest, but it puts the describe in a non-docking window that obscures the code and the result set on the the screen.

Auto Describe by clicking on hyper link. This doesn’t work for me in Version 6.1, although it did in 5.5. I have double checked the preferences for Hot Links and Describe Object at hyperlink. Auto Describe works well only when you go to an object in the DB Navigator and click there. The good news is that it is a dockable window so that I can hide it off to the edge but refer to it when needed.

Now the Toolbox describe. Basically the same as Auto Describe except mostly for use by the DB Explorer, as near as I can tell. Completely usesless when typing code into the Code Editor. The drop down is supposed to make it easy to select an object; but when a schema has 600 tables with thousands of indexes, the drop down is slow and not particularly useful. Also it doesn’t list public synonyms which in my case would add hundreds more entries.

So now I can have three different Describe windows taking up my screen all at once. Does anyone else see a problem with that?

In my opinion, this is how the Describe should work:

No matter how you invoke Describe, it should always put the results in the toolbox Describe pane. You might want to have preferences options for people who prefer the describe results be put in a dockable window. The point is Describe should always work the same way, should always go to the same window.

If I type this into the code editor:
SELECT * FROM Table1
then the columns for Table1 should automatically appear in the Toolbox Describe pane. We know from the outline tool that you are already parsing this information.

If I type in the code editor SELECT * FROM Table1 INNER JOIN Table2
right at that point after I hit the space bar after “Table2”, before I have finished the statement, the toolbox describe window should have the columns for Table2 showing for easy drag and drop. Within the tool box describe pane drop down list, Table1 should be the first entry so I can easily jump back. So if I have a query with 10 tables/views joined, those 10 tables should all automatically be the listed at the top in the drop down list of the Describe pane. Other objects according to the filter would then appear after those.

We make extensive use of synonyms. Always, always, always - if the object being described is a synonym, it should automatically reference the correct object and display the columns/parameters. I can’t see the point of me wasting my time having to click on the synonym name to see the results.

Thanks for your consideration.

Hi Charles,

We appreciate your detailed feedbacks on this issue. We actually got a similar request not long ago and the case has been targeted to 6.3. We certainly would take into account all your suggestions to make it more streamline and easier to use.

I will also raise enhancement requests for Describe window to include public synonyms and auto populate when the user is coding. Although we will need to look into both of them and decide if they’re feasible. Including public synonyms may be convenient but it may also affect the performance if the number of synonyms are large.

For the time being, to utilize the Describe pane you can filter out the objects using wildcards. Please refer to the ‘Describe Tool’ topic in the help file. Also you can also use the Dot Lookup/Code Completion to have a look at the list of columns in the table. This one is populated at run time.

Gwen

SELECT *

FROM all_tables

SELECT *

SELECT *

FROM all_tables a inner JOIN all_tab_cols ON all_tab_cols.
Not using an alias above does work though.

Just a side note, what is the deal with the word inner not getting set to uppercase like all of the other keywords? The blue coloring means we know it is a keyword.

Thanks for the reply Gwen!

I understand that I can use the wildcard to filter objects in the Describe drop down; but I don’t always get the results I expect. For instance, if I am in the code Editor and type ____****then highlight “all_tables”, then Describe with Ctrl F3, I get an accurate description.

However, if I type all_tables in the toolbox Describe filter, it can’t find it. all_tables is a synonym, so instead I tried putting SYS.ALL_TABLES in the toolbox Describe filter, still can’t find it. Apparently the toolbox describe doesn’t understand schema names.
Also, I like the ability of the toolbox to describe indexes, but I would like an option button or something to filter them out because the list can get quite long with them.

The Dot code completion often works, but sometimes doesn’t. For example, try this
____FROM all_tables a inner JOIN all_tab_cols b ON b.

You will see that no code completion comes down to help me figue out what I want to join on.

____****

Hi Charles,

I will include these suggestions in the case. Hopefully we can make the Describe Tool to take into account objects from other schema.

We’re aware that the dot lookup doesn’t work correctly for table names that contains two underscore characters. It has been fixed in our patch release (6.1.1).

The keyword inner is set to uppercase correctly in my machine. Do you have the preference ‘Keywords to uppercase’ ticked? Nonetheless, we know there’s an issue with uppercase keywords. Have a look at this thread and let me know if your case is the same.

http://sqlnavigator.inside.quest.com/thread.jspa?threadID=8924&tstart=0

Cheers,
Gwen