TOAD for Oracle Wish List

I have been using TOAD almost since its first release, and it has grown and matured over the years and become much better with every release. It is my goto tool for database administration so much so that I always request that it be installed on workstations and VMs from which I will be managing Oracle databases. I am very grateful for all the hard work that the Quest development team puts into improving the product, and I especially appreciate the support John Dorlon provides in this forum.

With all that said, there are several things that I would like to see added to TOAD:

  • User-mode option for software installation without local administrative privilege. Then, I would not have to wait weeks for corporate admins to install or upgrade TOAD.
  • Installer requests privilege elevation when installing instead of forcing the user to close the installer and then relaunch with admin. (We always forget and always then have to close and relaunch.) Installers that require admin just do this. Why doesn't TOAD?
  • Button or menu option to create TOAD_PLAN_TABLE without having to hit CTRL-E on a query. Perhaps a drop-down option added to the Explain Plan button on the Execute toolbar. This can already done after a fashion in Options->Oracle->General->Explain plan except that the procedure there does not honor the chosen schema and just creates the table in the user's schema. (It does honor the tablespace specified, however.) It would be an improvement to have this in a toolbar or menu.
  • Right-click->row count when a table is selected in the Editor.
  • Full configuration management add-on feature so that TOAD can provide a feature set that the industry has been missing ever since Oracle Designer was abandoned. This would be HUGE. When Oracle dropped support for Designer more than a decade ago, it left a massive gap that no one has filled to this day. (Redgate is meh. It tries to do too much, and what it does do it does badly.) There is no configuration management tool in the world that understands Oracle databases properly or how to deploy configuration changes to them. Oracle Database Lifecycle Management Pack is too high-level. It does not provide database application object CM.
  • New TOAD World forum software. The current one is buggy. Create Topic is very bad. Sometimes its editor box is just three lines which seems to occur randomly during scrolling and then randomly enlarges again on another scroll action. I know the intention is to have the forum accessible above the editor, but it could work better. Also, the banner mysteriously moves around when scrolling.

Cheers,
Russ

Hi Russ,

Thanks for the kind words. I knew you've been using Toad for a while, but I didn't realize since almost the first release! Wow! I've only been here since version 7.1 or so. I'll try to address your items one by one.

Installer
I'll have to pass this on the the installer people. I'm not one of them.

Update: Try the MSI installer instead of the full installer with the other Quest products bundled inside. The MSI installer does not require elevated privs.

Plan table
That's a bug in the the options window. I'll fix that. I'm not too keen on adding another thing to the Editor's toolbar though. It's too busy already. It's not very often that you are creating a plan table though, so I hope just getting the options window fixed will be enough.

Record count in editor
You probably already know this, but if you've already selected from the table, you can right-click in the grid and choose "Record count". If you just have the table name (or any object name) in the editor, you can get a schema-browser popup menu for it by doing a Shift+F4 on it. For tables, there's a "record count" menu item in there.

Oracle Designer Replacement
I have to be honest, I've really only heard of Oracle Designer but never used it. What exactly did it do that you wish you could do in Toad? "Configuration Management" sounds vague to me so I don't know what you're looking for.

Forum
Ugh. Yes, I have my gripes about this forum too. Mostly the fact that vertical scrolling sometimes causes a chunk of the header/menu/toolbar to bounce around the screen. I'd much rather get that fixed than switch to another platform though. Last time we switched, all the links between messages (and blogs) suddenly became useless because their target no longer existed.

Not sure if you noticed this, but you can resize the edit box when typing in a message by dragging up on the blue header bar.

-John

Hey John,

Just a quick note on the editor resize control. I do use that, but when I was creating this thread and the editor shrunk to just 3 lines, that control would not work either up or down. It was stuck and did not get unstuck after that.

Cheers,
Russ

I'm facing the stuck 3 line control more than often as well. Perhaps related to the kind of browser (Firefox, Chrome...)

Mine is Edge.

Cheers,
Russ

Mine is Chrome. It doesn't get stuck in "3 line" mode, but it does have some other problems.

Quick test (a few attempts to reply per browser): Chrome and Edge did well, Firefox showed a frozen two-line window.

John,

Following up on Oracle Designer and database configuration management:

Oracle Designer was a component of Oracle Developer, and it went away when Oracle replaced Developer with JDeveloper with the rationale that the future was cloud so that the very nature of designing Oracle database applications would change dramatically. Unfortunately, Designer was the only product that provided a reliable means of applying database object version control. Other products have always focused on code and provided little or no support for version control of objects like tables, indexes, roles, privileges, grants, and other non-code objects.

Oracle Designer worked by having a repository database that contained all the metadata describing application database objects and then applying configuration management principles such as version control to them. Oracle Developer interfaced with Designer to modify the definition of database objects.

The Designer Repository database was not an application database, but developers could interface with a reference application database using Oracle Developer to build scripts from the deltas between the repository and the reference that could then be used to implement a new application version using those scripts. Any database matching the configuration of the reference database could be reliably upgraded to the new version from Designer using those scripts. Designer did not use git or anything like that but had its own mechanism for versioning objects. The scripts that Designer creates are organized by object type but create order is NOT for creation without error but rather for creation with possible reference errors with a final compile resolving all references.

Now, Redgate tries to do the same thing in a completely different way. It works WITHIN one or more development databases to track objects within them but interfaces with a git repository to coordinate version control of database objects. All of Redgate's tracking mechanisms are embedded within each application database in development, test, and production though it can produce delta scripts that can be applied to databases that do not contain Redgate tracking components. There can be multiple development databases tracked by Redgate each of which has Redgate components installed all of which would be interfaced with the same git repository to keep everything rational. The central versioning repository, then, is the git repo that all of the development database Redgates interact with. The scripts that Redgate creates are built in a big jumble--large scripts with intermingled object types that are optimized for initial creation without error. The scripts are not easily parsed by human readers who need to probe them for troubleshooting.

What the industry needs is a version control system that understands databases beyond just their internal code. The usual means of doing this is to have scripts in git that create database objects with git versioning the scripts and not the objects. There is the problem that some database objects are not changed by recreating them but rather by altering them. So, the git repo would have an initial create script and then potentially many alter scripts to change those objects over time. It is the script files themselves that are under version control and not the objects they create or alter. This means that it is usually very difficult to produce a set of scripts that will create an complete reference database with all deltas incorporated into object creation like Designer could, and there is no one place to go in git for a single object, such as a table, that shows what that table looks like with all deltas as of a particular version. One has to find all the scripts that built and modified the object over time an rationalize those manually.

Cheers,
Russ

Have you tried Toad's Git (or other VCS) integration with Team Coding?

I'm no expert on it, but I believe it always keeps complete scripts for individual objects (as opposed to the original object + a series of "alter" commands).

I'm not sure that you could, using Toad, get the script for all of the objects at a certain point in time, but of course GIT can do that (and presumably other VCS too).

I have only looked at those tools, but let me describe what the process would look like and you tell me.

The git repository for database objects would only ever have object create statements, and any time an object changed in the development database, its push to git would be a new create statement having the new object as a create statement. For example, a table's initial creation might have ten columns, and a later revision of the table might add an eleventh column. Instead of an alter table statement going into git, a new version of the create statement would be pushed to create the table with all eleven columns and whatever else. When generating a delta script, TOAD would compare the table's git create statement against a target baseline and, detecting a difference, would generate the alter table statement into a script that would add the new column.

The git repo only ever contains create statements of the table as of any given commit and TOAD would reconcile the target commit against a target database of a previous version and generate the necessary SQL delta statement that would be added to a release script set.

Now, is this how TOAD's use of git in Team Coding works?

Cheers,
Russ

Ok, I understand what you are looking for now.

Toad does some of what you want, but not all.

It does stores only "create table" statements, not alter, but it can't generate delta scripts for you to migrate a DB from one commit to another.

If you wanted to do that in Toad now, you'd have to follow these rather roundabout steps.

  1. check out the "old" commit in git
  2. Get the script for the objects as of that commit, then create them in a database somewhere.
  3. check out the "new" commit in git
  4. if needed, create the objects in another DB
  5. use Toad's schema compare to compare the 2 schemas
  6. schema compare could give you the migration script.

Let me start by taking a look at compare schema across all our schemas with two existing databases.

Here is the catch for us: The release script creation process must be executable by our CM team without dev or DBA support. In fact, it must be something that they can build into our Jenkins code generation process.

Cheers,
Russ

That's a good place to start.

One thing it needs just off the bat is an option to ignore Recycle Bin objects. Did I miss that?

I don't see an option. I thought they were just automatically excluded.

What type of object is it getting out the the RB and which version of Oracle are you using?

This should work in the meantime:

It looks like it may be just object grants to roles for deleted objects such as tables.

Thanks. I'll fix that.

@russell.cannon @avergison

I think we have the forum scrolling problem fixed. Give it a try and let me know.

By the way, if you guys have any other problems with the forum, please let me know. Now that I know who to talk to about problems in here, we should be able to get anything else resolved quickly.

Yes. That seems to be working correctly now. The title bar is not bouncing around anymore, and the editor is not getting botched.

Thanks so much,
Russ

1 Like