Version 12

<< Click to Display Table of Contents >>

Navigation:  Getting Started > KeepTool Release Notes >

Version 12

Previous pageReturn to chapter overviewNext page

Version 12.2.0 (2018-05-31)

All database tools are now compatible with both KeepTool 12 and upcoming KeepTool 14 license containers.

For managing KeepTool 14 licenses, KeepTool 14 license management tools should be used.


Version 12.1.8 (2018-02-01)

The connect dialog is now able to list TNS service names in the combo box, even if an Oracle Instant Client is used. Therefore, you have to provide the location of a tnsnames.ora file in the TNS_ADMIN Windows environment variable.

As you may remember, the expandable section of the connect dialog shows the file path of the currently used Oracle Home. This information is now extended by a different [TNS_ADMIN] location, if defined using the TNS_ADMIN environment variable or the TNS_ADMIN registry entry. That path overrides the default location of the tnsnames.ora file in %oracle_home%\rdbms\admin.

Starting with Oracle 12c release 2, Oracle object names are no more restricted to a maximum of 30 characters. For Oracle 12c release 2 databases, the length check has been weakened to 128 characters.

The order of Hora’s sidebar icons has been consolidated with the order of the corresponding main menu items.


Version 12.1.7 (2017-10-04)

Direct TCP/IP connectivity now supports Oracle 12c connect modes SYSBACKUP, SYSDG, SYSKM

Direct TCP/IP connectivity now supports OS authentication

The NCHAR literal N'text' is now supported

The new data-aware Excel export is optimized for subsequent analysis 


Version 12.1.6 (2017-07-03)

The new data-aware Excel export is optimized for subsequent analysis of grid data within Microsoft Excel. The following data shaping options applied to the grid control (when using the “in-memory mode”) are now retained in the XLS and XLSX document output:

oData grouping - with the capability to collapse/expand groups within a worksheet

oTotals and group summaries - with the capability to modify/change formulas

Merged Column Grouping (when using the “in-memory mode”): 

This release introduces a new data grouping mode that enables you merge grouping columns, allowing for a more compact row list. Pressing and holding the Ctrl key while dropping a column header adjacent to another one located in the Group By box merges the two columns.

Direct TCP/IP connectivity now supports Oracle 12c authentication.



Version 12.1.5 (2017-03-13)


A new menu item
  Schema | Create BYTE to CHAR semantics conversion script ...

helps you to change nls_length_semantics of existing columns from BYTE to CHAR semantics. That can be performed best before changing from single to multi-byte character set, e.g. as a pre-migration task to Oracle 12c.

The SQL scratchpad now shows a slightly different icon for files that are stored on a network drive.

For better performance, the Tables page now comes up with the most essential (identifying) columns only. A toggle switch “show all columns” forces the remaining columns to be shown as well.

Improved performance for tooltips shown in SQL editor window (Table comments.)

“Create table”, “Add column” and “column properties” dialogs now highlight most-often-used data types ‘NUMBER’, ‘VARCHAR2’ and ‘DATE’ in data type dropdown lists using a bold blue font.

A new set of buttons below data grids allow dataset navigation, including an info panel showing record index and count.

A new dialog “view comments wizard” allows you to selectively propagate table column comments to view column comments. That makes it much more easy to having column comments for views.  

A new menu item “Show DDL” for table columns generates SQL for adding the appropriate column including single-column constraints and column comments.

For performance reasons, the column “Referenced constraints” has been removed from the tables | constraints grid. This information is still available as detail information for the currently selected constraint.


Version 12.1.4 (2017-01-16)

Each filter row in DataContent grids now allows you to select an operator such as “=” from a drop-down menu, depending on the data type of the column.

New page Additional | Flashback archives for Oracle 11g and later

The SQL page shows root folders in red font if it is not found, for example when working offline. You do not have to confirm another message box for each non-existing folder any more.  

In data content view, tooltip hints show a preview of the content of CLOB columns.

New search box on the PL/SQL page allows you to restrict the list of methods showing only items that contain the search string.

On ER Diagrammer, the “tidy up” button has been removed. The function is now called automatically each time an entity has been moved or resized.

ER diagrammer snaps entity shapes to grid on resize and move.

Grid size can be configured.

For CLOB fields, both “create INSERT script” and “create UPDATE script” commands now pass VARCHAR2 chunks to dbms_lob instead of hexadecimal encoded strings. Besides that is better readable by human, it works independently from the character set of the database.


Version 12.1.3 (2016-11-28)

Since version 12.1.1, the PL/SQL page allows you to navigate to another procedure or function implementation within the same package body by Ctrl-clicking a procedure call. Now we added two buttons ‘go back’ and ‘go forward’ to the tool bar that allow you to navigate back to the original editor position and vice versa.

Editor windows now supports SQL*Plus command EXEC

Both “Show DDL” context menu command for tables and Reverse DB generate an insert statement for spatial columns as defined in user_sdo_geom_metadata (bounding rectangle).
Clear Schema menu item now deletes from user_sdo_geom_metadata.

New main menu item “Schema | Find VARCHAR2 columns with long BYTE length ...” searches for VARCHAR2 columns that may cause problems when converting to a multi-byte character set such as UTF8:

oBecause the length exceeds 4000 bytes

oBecause columns using BYTE semantics will not fit the column length defined in bytes.

Use this dialog to check long VARCHAR2 columns before you migrate your database to a multi-byte character set such as UTF8.

Hora’s settings dialog allows you to define one or two startup windows. Some minor differences between window names and name order used in the dropdown lists of the settings dialog now have been reconciled with the captions and menu item sequence used in Hora’s toolbar. Please re-check your startup windows setting, because under some circumstances the stored index may now refer to another startup window.

When the build-in direct TCP/IP connection is used, you now have another option for entering the database connect string using service name:

This is an alternative to the existing syntax

Oracle 12c database requires a connection by service name.
For connection to Oracle11g or prior databases by SID, you can still use any of



In both data content grid and sql query resultset views, all cell texts are now aligned to the top. In the past, only memo fields, that are capable to display multi-line text, had been aligned to the top, whereas all single-line controls had been vertically centered. 

Besides tables and views, the data content browser now also shows local synonyms for tables and views.

The expandable section in the bottom of the connect dialog now allows you to enter an initialization script name. It is executed automatically each time after connect. You can use SQL and PL/SQL commands.

On the tables | columns page, all columns on band “column usage in WHERE predicates” have been moved over to the “statictics” tab. The band “column statistics”, has been removed from the columns tab, since the information is already shown on the statistics tab. This eliminates duplicate information and speeds up performance on the columns.


Version 12.1.2 (2016-10-17)

DB Compare now generates UPDATE scripts that use ALTER TABLE commands instead of re-creating the table with changed structure.

DB Compare’s overview now shows an “Update Action” instead of the former “object change status”. This action describes how to consolidate the DB schemes rather than pointing out the difference between them.

A new checkbox option on Reverse/DB now allows you to check/uncheck whether CREATE TABLESPACE commands will be created.

Compile and Refresh menu items on Hora’s Materialized View page now have been enabled for multi-select.

Hora’s “Clear Schema” main menu item now truncates temporary tables before dropping to prevent ORA-14452 error.

The Reverse/DB tool now generates Oracle Contexts implemented by the DB schema, if the user has been granted select privileges on DBA_CONTEXT, granted by HORA_USER role, maybe.

Reverse/DB now orders the generation of views, materialized views, procedures, functions and packages by object dependency. As a result, there may be multiple sections for each object type, one for each level of dependency. By unchecking an option, you can get back to alphabetic order as before.

Scheduler jobs are now supported by Hora’s “show DDL” command, Reverse DB Engineer and DB Compare tool.

Support for Windows 10 Anniversary Update has been added. CodeMeter 6.30d runtime makes sure license are repaired, since the Anniversary update is actually a reinstallation of the operating system.


Version 12.1.1 (2016-09-07)

On both PL/SQL and Tables | Triggers views, you can see red bullets in the gutter area for each error position. We added a view bar to the right of the editor window that visualizes the relative error positions within the source text by red markers. The part of source code currently visible in the editor is indicated by a gray bar that moves while scrolling the editor.

New page Database | ACLs for managing access control lists (ACLs).

In all editor windows, you can now use Shift+TAB as a shortcut to the block indent command (button and menu item).

On PL/SQL page, you can navigate to another procedure or function implementation within the same package body by Ctrl-clicking a procedure call.

Added new column “NLS length semantics” to the PLSQL overview page.

Added “PL/SQL object settings” band to the Types overview grid including “NLS length semantics” column and other columns known from PL/SQL page.

Added context menu items to DB-Compare’s object list for printing and Excel export.

Reverse/DDL now generates NLS_LENGTH_SEMANTICS setting.

DB Compare’s experimental update script now contains only changes to objects that are selected using the check box next to the object name.

CodeMeter 6.30b runtime. See for change log.

Reverse/DDL now includes Java source.

Improved display of bullets to distinguish public from private methods on PL/SQL page.


Version 12.1.0 (2016-07-05)

Now you can borrow/return a network license seat on your client. For a limited time, it allows you to use KeepTool offline. Therefore, either run “License Manager – Borrowing” from the Windows start menu, or “Help|License Management|License Manager / Borrowing” from Hora’s main menu. Options for borrowing can be configured on the license server using CodeMeter WebAdmin.

Please don’t forget to update your network license server to make sure it runs CodeMeter 6.20a or newer.

The modal dialog for creating and changing views now shows a toolbar with operations that had been available on the editor’s context menu only.

The source code window on the PL/SQL page now shows a red bullet near erroneous source code lines.

Main menu item “Help | License info“ now shows output captured from CodeMeter cmu32.exe utility.

On Oracle 10g database or later, the “resize datafile” dialog suggests purging the tablespace’s recycle bin before downsizing a data file.

The “synonym owner” dropdown list on the “create synonym” dialog now uses bold fonts for owners of existing synonyms or grants.

Added query builder and SQL*Plus execution buttons to separate SQL editor HEdit.exe. These actions formerly have been available as context menu items only.

Both DB object browser window and column selection dialog (that comes up for example when using the “Selected object | expand …” menu items) now use blue font for mandatory columns.

Tooltip hints for table comment and column description in DB object browser.

Dockable windows remember “undocked” status for next start.

Added a menu for “check all and “uncheck all” combo boxes to the confirmation dialog for operations on a multi-selection, such as “Drop user”.

A new Findpanel has been added to both Data content and SQL resultset grids. When memory mode is active, all occurrences of the search text in any column are highlighted in the grid view.

Hora’s SQL page now remembers the :parameter and &macro values for each database connection string beyond end of session.

There is a new option on the data content tab for including the ORA_ROWSCN pseudo column in the SELECT statement that populates the data grid. Oracle doesn’t allow this pseudo column to be used in conjunction with tables having a virtual private database policy. The new option lets you decide to select ORA_ROWSCN pseudo column always, never, or automatically if the table has no policy function. Whereas the latter choice is the most convenient, the other options perform better.
Remember, both ROWID and ORA_ROWSCN columns are selected but invisible by default and can be showed using the column selection tool in the upper left of the data grid.  


oOn Tables page, menu “Copy to clipboard|XXX statement”

oIn editor windows, menu “Selected object, expand XXX statement”

oIn editor windows, DB object browser, drag-drop target menu, XXX statement

now share the same column pre-selection dialog and SQL generation engine.

For INSERT statements, there is a new option “default values” that adds rather default values or NULL values (for optional columns) to the VALUES clause than formal “:” variables, that are still used for mandatory non-default columns.

For the “execute script” command, the editor component now positions the input cursor to the SQL error position similar to “execute query”.

Information shown in tooltip hints for data grid headers, DB object browser and SELECT/INSERT/UPDATE SQL generators is now cached.


Version 12.0.3 (2016-05-09)

A new option “Settings | SQL page | show active tooltips” allows you to disable context sensitive tooltips, especially when using a slow database connection.

Active tooltips on SQL page are cached now for better performance.

A new toggle switch “Sample binds” on the session page allows you to include sample binds on demand only.

Excel export now allows you to change file name. Export directory is stored as default for next call for both connection and database.


Version 12.0.2 (2016-04-25)

Tablespaces using more than 95% [99%] of the maximum auto extensible space are highlighted yellow [red].

New skins Office2016Colorful and Office2016Dark.

Support for Materialized View Refresh groups

Connect dialog now allows you to use PNG and GIF images besides BMP and JPG. Improved image alignment when displayed in form header.

On the Schema | Spatial Columns page, the menu item “Comment spatial index table” has been replaced by “Comment all spatial index support tables ...”. It batch-creates comments for all MDRT% and MDXT% tables in the current schema that are created implicitly by Oracle for spatial index support.

Wibu 6.20 license management runtime. It is recommended (but not required) to update the network license server as well.

Incremental search in data content filter box now can be disabled by settings.


Version 12.0.1 (2016-04-04)

Several Materialized View refresh options including Oracle 12c out of place refresh.

Color tags for DB connection now can be modified using the settings dialog.

New Button “Delete saved passwords” on Settings | Startup window page to delete all passwords from ktprojects.xml file that have been saved in connect dialog.

You can add a Boolean registry entry HKLM\Software\KeepTool\12\DontSavePasswords to prevent the user from saving passwords in the connect dialog. Double-click registry file DontSavePasswords or DontSavePasswordsWow6432.reg on 32-bit subsystem to import an appropriate registry key.


Version 12.0.0 (2016-03-01)


oWindows 10 support

oWIBU CodeMeter based licensing system

oDefault skin “DevExpress Style”

oNew set of material design inspired buttons

oA new button in the connect dialog opens a Windows explorer in the folder where connections are stored as XML file.

oThe direct TCP connection mode now supports object types such as spatial data) XML types and cursor data type

Oracle 12c features

oDEFAULT Values On Explicit NULLs clause support.

oImproved support for invisible columns.

oSupport for identity columns.


oHora now shows the host name of the database and the service name (or SID) in the window caption

oImproved docking performance of dbms_output and SQL query resultset windows.        

oQuick navigator buttons next to the overview grids that don’t match any data are now disabled. Remaining buttons show tooltips for first matches.

oThe schema selector in the footer of the main form now displays the logon schema, SYS, SYSTEM and PUBLIC in blue font. Oracle predefined schemas use italic font and schemas given grants to the logon user use bold font.

Schema page / Oracle Spatial

oThere are two new context menu items on Schema|Spatial columns page:

DROP spatial index

UPDATE all column data with NULL value helps developers to overcome an ORA-29858 error (ODCINDEXALTER error) after changing the SRS_ID by re-creating spatial index on the emptied column.

oA new grid view on the spatial columns page shows all available coordinate systems from MDSYS.CS_SRS.

oYou can now update spatial column metadata using a modal dialog. Furthermore, the dialog allows you to copy metadata from another column.

oA new menu item “Comment Spatial Index Table” creates comments for the MDRT_*$ table that are created by Oracle automatically for spatial index maintenance.

oA new menu item “Change SRID (Coordinate System)” allows you to change the SRID metadata, converts spatial data into the new coordinate system and recreates the spatial index.

Tables page

oNew menu item “Tables | Copy to clipboard | Table API Package”
creates a packages with member functions for insert/update/delete operations on tables  

oThe “drop constraint” dialog allows you to drop the constraint including the supporting index.

oYou can now add comments for Materialized Views

Create table dialog

oNew option “Row Dependencies” to enable row-level dependency tracking. This Option is also included in generated DDL statements.  

oThe “Add stamps” button in the create table dialog now can be configured. Click the “save as default” checkbox to save the current columns as default.

oYou can now change column order by drag/dropping the row indicator.

Data Content

oThe grid contains two invisible pseudo columns ROWID and ORA_ROWSCN. To make them visible, use the column selector in the upper left corner of grid.

oData Content shows headers of primary and unique key column using bold font. Headers of required columns are underlined as before.

oData content banner shows table comment as tooltip hint.

oThe new button next to “Apply Filter” showing a clock. Allows you to enter a “AS OF TIMESTAMP” expression for flashback query (Oracle 11g or later).

oThe context menu for spatial data allows you to shows them in an embedded OpenStreetMaps view.

oThere are two new menu items on the treeview page:

“Filter subtree” builds a SQL condition to select all tree nodes below the current node.

“Filter path to rot” builds a SQL condition to select all tree nodes from the root node up to the current node similar to a bread crumb path.

PL/SQL page

oMethod navigator moved to the left side of the editor

oProcedure/function list now uses a solid bullet for public methods.


oContext menu commands “Selected object | expand SELECT / INSERT / UPDATE / CURSOR-FOR-LOOP” show a checklist dialog that allows you to unselect columns for exclusion from DML generation.

oNew context menu command “Selected object | Expand SELECT records without details” creates a SELECT statement for the selected table name that returns all records of the master table that do not have any detail record.

oNew menu command “Format | Format Delphi Stringlist” replaces all ‘#$0D#$0A’ substrings by CRLF characters, eliminates duplicate apostrophes and removes the apostrophes at begin and end of each line. This helps Delphi developers formatting SQL text that has been captured from the debugger at runtime and changes it into pure SQL that can be executed in Hora.

oImproved Explain Plan dialog

oBoth DB object browser and code snippet tool windows are now integral part of the SQL editor window. This allows a tighter integration of SQL code generation. You can drag/drop items into the code window and create SELECT statements, dbms_output clauses and much more. Double-click object names in either code window or object browser to highlight occurrences.
There is also a button to open the SQL query builder.

oNavigation buttons for prior and next diff in file compare dialog.

Sessions page

oWhereas Hora 11’s session overview displays SQL statements for active sessions only, version 12 can also display SQL for sessions that got recently inactive.

oFor long running queries, you can see the last ‘long ops’ status message right on the overview screen. In most cases, this eliminates the need to open the long ops sheet. You will love it when monitoring sessions using the auto-refresh option.

oThe new “Status | Time” column shows how long the session is in the current status

oNew kill session option “immediate”

oThe sessions page displays captured bind parameter below the query. See Oracle documentation for details about bind capturing frequency.

oA new checkbox “Multi-instance view” allows you to switch between a v$ view based single-instance page and a gv$ view based multi-instance view without changing KeepTool settings as was required in version 11.

Database page

oNew menu item “Reset system parameter”.

oNew tab sheet “Alert log” shows most recent entries (Oracle 12c)

Reverse DB engineer

oYou can now select grantees of object privileges.

oThe tool now remembers the output path for each connection.

oDDL generation for Oracle 12c  features


oBelow the tablespaces grid view you can now see a list of related initialization parameters and replaces the db_create_file_dest text box in the top-right corner of KeepTool-11.

Container DB

oNew container detail view shows history.

oNew container properties tab sheet.

Db Compare

oNew object name exclude list in DB Compare scan options.

oDDL comparison comprises new Oracle 12c features

Hora Free

o… is our ultra-light successor to HoraLight and comes with the most essential features of both the Data Content browser and SQL pages. This tool can be used free of charge.