Version 11 released

KeepTool now comes in 3 editions: Light, Professional and Enterprise.

We’ve realigned our product suite by packaging our current lineup of executable programs into one of 3 packages, each of which is targeted at a specific user group.

KeepTool Light

Hora Light is our end-user adaptation that has been available as a licensed product since 2006. Hora Light is now licensed as KeepTool Light.

KeepTool Professional

KeepTool Professional includes our core database development and administration tool, Hora, and the three independent executable files that were formerly packaged with Hora, and accessible from Hora via the Tools menu. A license for Hora now becomes a license for KeepTool Professional.

KeepTool Enterprise

KeepTool Enterprise is our ultimate package. In the Enterprise Edition are all the products included in KeepTool Professional, plus ER Diagrammer, PL/SQL Debugger and DB Compare. The first two of these were formerly sold and licensed individually, but starting with KeepTool 11, they will be available only as part of the Enterprise bundle.

DB Compare is a completely new product that we will tell you about in another section of this newsletter.

32-bit and 64-bit versions.

Although a 64-bit version of the Windows operating system has been available since Windows Vista was introduced in 2006, 64-bit versions have only recently become pre-dominant in PCs sold with Windows 7 and Windows 8. To let users take full advantage of these, KeepTool is now offered in a 64-bit version as well as a 32-bit version.

Not sure which version you have? You can have Microsoft determine this for you automatically, or you can do this manually. Just go to for details.


For each of our 3 Editions, we now offer two license types: the Workstation and the Network license.

If you’ve never tried any of our products before, you don’t need to choose between the two type of license right away. As a starting point, why not take advantage of our 30-day trial period and install KeepTool Enterprise? Try out each of the products and decide for which of your co-workers the each of the three editions would be most suitable.

Then, towards the end of the 30-day trial period, you’ll need to determine how many licenses to order for each product. The key thing to remember is that the Workstation license is tied to only one computer—there is no way of temporarily transferring or “loaning” one of the covered products to anyone else unless they sit down at your computer. However, if you’re self-employed and use only one computer to connect to Oracle, or if you have a laptop that you bring to different client’s sites, then this is the license type for you. And when it comes time to replace your computer, we’ve made the process of transferring that license to a new machine easier than before.

On the other hand, the Network license places a limit only on the number of concurrent users. So, if you know that you have, at the most, five people using the additional tool set found in KeepTool Enterprise, but probably no more than two at a time, you can install the Enterprise Edition on each of the five computers, but pay for only two licenses.

This is all made possible by designating a single machine on the network as a License Server. This server keeps track of the number of concurrent usages at any given time.

When it comes time to transfer the license server to a new physical machine, that process is also straightforward. And when someone new joins your staff, the KeepTool software can be loaded on their machine and be made available immediately.

If you’re currently running KeepTool 10 or an earlier version, you will notice certain similarities to the licensing structure that we had before. The key difference is that we are now licensing editions, rather than individual products.


Here are the prices for new and upgrade licenses for the three editions:

KeepTool Light 11 KeepTool Professional 11 KeepTool Enterprise 11
Full license 99€ 699€ 999€
Upgrade from HoraLight 10 39€ 379€ 499€
Upgrade from Hora 10,
ER Diagrammer 10 or Debugger 10
279€ 399€

As usual, we are offering volume discounts of 20% for 5-9 licenses, and 30% for 10 or more licenses. And if you’ve bought KeepTool 10, our current version, between January 1 and February 17, 2014, the upgrade is free.

Introducing DB Compare

DB Compare is our first new product in quite a while, and it is the result of requests that we’ve had for a tool that can compare two different schemas. These can be in the same database, or different databases, as long as you can log on to each of them.

It builds on Reverse DDL Engineer’s ability to parse metadata and turn it into CREATE, ALTER and GRANT statements by prompting the user for two logons. As soon as the second user is logged on, it goes to work, building a tree view of all the various types of objects and highlighting those that are different between the two.

As an example, we have built an almost exact copy of the HR sample schema, calling it HR2.

It is important to know that DB Compare considers Schema 1 to be correct, and it generates DDL to make Schema 2 look like Schema 1. Moreover, it uses the term “added” for objects found only in Schema 2, “removed” for objects only in Schema 1, and “changed” for changed objects. These are represented by the colors green, red and blue respectively.

The first difference is in Tables, where the highlighting shows that the COUNTRIES table in HR2 has an additional column. Line 6 is shown in blue as being changed (the comma has been removed); line 10 is shown in green as added, and the remaining lines match each other.

DB Compare
Taking a look at the second tab, Update Script, we have the DDL to drop the existing table in Schema 2 and recreate it to look like the one in table 1 with the added column. The Update Script is marked “Experimental,” as further modifications are being planned.

DB Compare
Next, under Indexes, we can see that one of the indexes for the EMPLOYEES table is missing in HR2. Not only is it labeled “removed” in the tree view, but the DDL in the right window is blank.

DB Compare
Here is an example of a PL/SQL program unit that has changed. For demonstration purposes, we have altered the function EMP_COUNT in the HR2 schema to include another field in the DBMS_OUTPUT. Here again, the changed line is shown in blue, and the added line in green.

DB Compare
You can scroll through both files simultaneously by dragging either of the vertical scroll bars. Certainly a lot easier than eyeballing the code yourself, line by line!

Situations like this may have developed in your work environment. Schemas that were once made to look exactly like each other in different test environments may have had undocumented or accidental changes made to them over time that you were unaware of. When you notice that test results vary from one environment to the next, it could be because the environments are not really identical. Then it may be time to give DB Compare a try.

Release Notes Version 11

Version 11.0.0
released 17-February-2014

KeepTool 11 is now available as a native 64 bit application.
Our new version is packaged in 3 editions:
Light Edition
(contains HoraLight)
Professional Edition
(contains Hora, SQL Editor, Reverse DB and HTML Doc)
Enterprise Edition
(contains Hora, SQL Editor, Reverse DB, HTML Doc, ER Diagrammer, Debugger and new DB Compare)
We use a new licensing procedure that allows license transfer between workstations and a more flexible license management.
KeepTool 11 supports touch screen gestures.
Support for Oracle 12c database and 12c client software has been added.
Support for IP V.6 has been added to the direct TCP/IP connectivity. You can change between IPv4, IPv6 and IPBoth in the settings.
The Direct TCP/IP option now supports connections via service_name or instance by using a syntax like
Our new DB Compare tool allows you to compare databases
It shows a list of changed objects
For each changed object you can see syntax highlighted DDL statements side by side, whereas different background color indicate the added, removed and changed parts.
The indicator area next to the scrollbar visualizes the region of source code that is captured by the visible editor area and where changed source has been changed.
Create an update script to synchronize structure (basic support)
General changes
Modal dialogs for renaming Oracle objects now show you the current utilization of the 30-character-limited length for the new identifier
Each Hora page now shows information about the database connected to. This is helpful when running multiple KeepTool instances against different databases at the same time.
For Windows 7 and later our tools now make use of progressbar animation in the Windows taskbar when perfoming data dictionary scans in RevDDL, ER Diagrammer, DB Compare, HTML Doc.
For SYS and SYSTEM users you can configure now a separate start page. By default it shows the SQL page instead of the tables page.
Changes on the schema page.
The schema privileges cross table view now uses a different background color when the user has a private synonym for the object. That allows you to view both private privileges and synonyms in a single grid view.
New context menu items have been added for creating and dropping synonyms for all granted or all not granted objects.
A new tab sheet shows unusable indexes.
The new menu item Schema | Mask Schema Data opens a wizard that helps you to anonymize your database.
A new menu item Schema | Recently changed objects shows you a list of recently changed database objects including time stamps.
Hora now remembers a “current schema” change from the last session and asks you when connecting again if you want to change the schema.
Several new context menu items have been added to the Table | Copy to clipboard menu on the tables overview page:
Table description
Copies the column definition of the table into the clipboard
MERGE statement
Creates a MERGE SQL statement for the selected table
WHERE condition
Creates a template for a WHERE condition that includes all columns
Copy to clipboard | CURSOR FOR LOOP
Creates a CURSOR FOR LOOP statement for the selected table.
Read-only columns are now displayed using a gray font.
The context menu on the tables | overview page that generates a SELECT statement now prompts you for an (optional) table alias.
New menu items have been added to the triggers context menu:
Sequenced PK trigger wizard
It helps you to create a trigger that fills the primary key column from a sequence value.
Mutating trigger wizard
It creates a compound trigger to avoid the “mutating error” when updating an aggregated value of the master table value after changes on the detail table.
Instead of trigger wizard
It is a great help for creating instead of triggers for views.
A new menu item Table | Column | Lob segment | Move tablespace allows you to move a lob segment to another tablespace
A separate Show DDL menu items has been added for constraints and for indexes
SQL editor changes
A new menu item in the SQL editor “Selected object | Expand CURSOR FOR LOOP” changes the selected table name to a CURSOR FOR LOOP statement.
Double-clicking a word in the SQL editor highlights all occurrences of the word in the editor.
The Query generator now optionally speaks ANSI SQL (INNER JOIN, etc.)
The query execution plan now can be exported to Excel
The SQL Query builder now uses a blue font for not null columns.
Data content browser and SQL resultset grid
The tree view now shows different cell background colors depending on the indention depth. This makes it much easier to understand the tree structure.
The Excel export option is now also available for the tree view as well.
The SQL recording now also keeps track of DML changes made by editing data in content grid
Besides the INSERT and UPDATE script, you can now generate a MERGE and a DELETE script from the data content grid.
The Data Content | Create Update Script command now shows you a list of Primary Key and UNIQUE constraints. This allows you to choose which key columns will be used to build the WHERE condition.
The generated HTML documentation for the schema now
Shows views in a separate list.
Shows cross-references between tables/views and PL/SQL objects.
View and package definition now uses syntax highlighting.
Spatial data support
The create INSERT script command now supports the SDO_GEOMETRY data type.
A new context menu item both data contents and SQL query result set grid allow structured SDO_GEOMETRY data view.
A new Tables | Columns | Bounding Rect sheet shows the bounding rectangle for spatial columns (ALL_SDO_GEOM_METADATA).
A Context menu item copies an INSERT statement into the clipboard for transfering the bounding rectangle to another database.
Another context menu item allows you to export spatial data from a field to a KML file that can be opened in Google Earth.
A new context menu item in both SQL and data content pages allow you to create a KML file from spatial data for the entire result set.
On the Schema page you will find a new tab sheet “Spatial columns” showing all spatial columns of the schema including the bounding rectangle definition from ALL_SDO_GEOM_METADATA and the supporting spatial index. The context menu allows you to create an insert script that also rebuilds the spatial index. Furthermore, you can export the bounding rectangle to a KML file for showing in Google EarthTM.
PL/SQL page
The error highlighting now uses more subdued colors.
The height of the PL/SQL error list is now automatically adjusted according to the number of errors.
PL/SQL packages automatically recompile the package body when the package specification has been changed. This shows you resulting errors immediately rather than invalidating the body only.
PL/SQL packages and bodies as well as procedures and functions are now show on the same tab. This makes it much more easier to switch between package specification and body.
PL/SQL objects as well as tables/views with LAST_DDL_TIME changed recently are highlighted in green color. Now you see at a glance what has been changed recently. There is a confirmation button that resets highlighting horizon to current date.
Red highlighting of erroneous objects keeps as is, but uses a more subdued hue.
Recently changed objects that are currently invalid are highlighted in yellow color instead of green.
The PL/SQL page keeps track of the editor scroll position when switching between PL/SQL source code of different objects during session.
The sessions page introduces new highlighting colors:
transaction+active: green
in transaction+inactive: yellow
The sessions page now shows the service name. A checkbox marks sessions running locally on your machine.
Reverse DB now generated PL/SQL code to create Policies
There is a new Active Session History tab on the AWR page.
A new page DBA Container Database has been added for Oracle 12c