Home of SQLTools++

The following is the list of changes to the current release 1.21RC3 of SQLTools++ since the previous version SQLTools++ 1.20 RC3:

Features added (tracked on Sourceforge.net):

  • 2094823: No connection to ASM instance possible

    You can connect now to an ASM instance. Although depending on your current settings you get various error messages the connection is no longer rejected but is successfully opened. The same should apply to RDBMS instances not opened.

  • 1992460: Add "Execute script from cursor position" option

    Two new options and keyboard shortcuts have been added to the "Script" menu:
    - Execute from cursor position (Default shortcut Ctrl+Alt+F5)
    - Execute from cursor position (Halt on errors) (Default shortcut Ctrl+Alt+Shift+F5)

    These can be used to run a script from the current cursor position and halt on errors, optionally
    Note that you need to add the following two lines to your "Custom" keymap ("custom.keymap" located in the "Data" subdirectory) if you're using it because the installer never attempts to modify the "Custom" keymap if updating an existing installation:
    Script.ExecuteFromCursor      Ctrl+Alt+F5
    Script.ExecuteFromCursorHaltOnErrors Ctrl+Alt+Shift+F5

  • 1979440: Recognize DROP TYPE/CREATE TYPE operation

    The type related SQL commands are now recognized and confirmed with appropriate messages (Type created/dropped)

  • 1919413: Add SQLTools++ on sourceforge link to menu/distribution

    The installation script now adds a link to the SQLTools++ Sourceforge.net site
  • 1916777: (Optionally) do not populate Object List when connecting

    For users that have to connect using a low bandwidth (e.g. WAN) connection two enhancements have been added:
    1. If the schema browser is not visible it won't populate any lists initially (which was the case previously)
    2. You can disable the "Known object cache" feature in the "PlusPlus" settings which will prevent this in-memory cache from being populated when establishing a connection

  • 1914736: Consider "Load DDL" shortcut (Ctrl+F12) in Object List

    This feature was already available with the "Development" intermediate build. You can press now the "Load DDL" keyboard shortcut in the "Object List" (Schema Browser). This is the same as performing a double-click or selecting "Load DDL" in the right-mouse button context menu
  • 1914185: Allow "Copy Query Columns" for empty result set

    You can copy now the query columns even if the result set is empty

Bugfixes (tracked on Sourceforge.net):

  • 2270076: Snapshot DDL shows incomplete query for large query texts

    The built-in snapshot DDL generation code is quite basic anyway but additionally showed incomplete query text if the length of the query text was longer than 4000 chars. Now this has been extended to 64k which hopefully is sufficient for most complex queries

  • 2166142: Known objects are not properly redrawn when settings change

    If you change settings and the "Known object cache" is enabled then the cache contents are refreshed every time you confirm the settings changes. This refresh was not properly reflected in the editor (Only when moving the cursor the content was redrawn). This has been fixed

  • 2062502: Change "Generic Exception" dialog to point to Sourceforge
    The "Generic" exception dialog now points to the SQLTools++ Sourceforge.net site and bug tracker rather than to the rather unmoderated original SQLTools forum

  • 2062499: Stack Overflow in Connect.cpp (429) when connection is lost

    When a background connection is established (e.g. with statistics or DBMS_XPLAN.DISPLAY_CURSOR enabled) and the connection is lost a nasty "Generic" exception used to show up. This has been fixed and should work now even with these features enabled
  • 2032463: Synonyms for remote objects are shown as "INVALID"

    Synonyms for remote database objects used to be shown with status "INVALID". This has been fixed

  • 2032446: Known objects followed by a dblink - wrong highlighting

    If a known object was followed by a dblink the highlighting was incorrect. This has been fixed

  • 2017327: Extract Schema DDL doesn't use "Use DBMS_METADATA" setting
    The "Extract Schema DDL" didn't use the "Use DBMS_METADATA" setting of the corresponding setup dialog. This has been fixed

  • 1991909: Highlighting error in case of comment /* */ followed by *
    A minor highlighting error when a comment was immediately followed by an asterisk has been fixed

  • 1988773: Incorrect representation of timestamp type in Object Viewer

    The TIMESTAMP family related data types were not correctly represented in the Object Viewer window. This has been fixed

  • 1988113: Run in external tool while disconnected

    You get now an appropriate message instead of an screwed up external tool call if you're currenly not connected to a database

  • 1949675: Doing describe (F12) with lost connection raises exception

    Appropriate message shown instead of a "Generic" exception

  • 1942383: "Use DBMS_METADATA" not saved in Settings dialog

    Handling of this setting is now similar to the other settings, it used to be inconsistent

  • 1942045: Editor's backup file error

    If a backup file cannot be created the actual file save is no longer aborted and you should an explanation why the backup file could not be created

  • 1941453: Opening *.txt files results in "Language 'NONE' not found"
    This annoying error has been fixed

  • 1939328: Length of multibyte character columns incorrectly reported

    If you have multibyte character columns, e.g. NVARCHARs or multibyte database character sets (e.g. UTF8) then the byte size of the column was shown in the Object Viewer instead of the actual character size. This has been fixed

  • 1939306: Extended Block information is wrong for lines with TABs

    TABs should be treated now correctly for the extended information shown when "Enhanced Visuals" is enabled

  • 1939241: Visual match braces does not work with TAB chars

    TABs should be treated now correctly for the "match braces" functionality when "Enhanced Visuals" is enabled

  • 1938706: Object List using list representation - quick filter applied

    The list representation mode was broken when a quick filter has been applied. The columns were resized to a minimum size so that the content was unreadable

  • 1928265: Extract Schema DDL: "Type parsing error: invalid header!"

    Incomplete type definitions lead to this error message sometimes. The handling of these incomplete types has been changed accordingly so that the message should no longer show up

  • 1927183: DDL generated for deferrable disabled constraint is wrong

    The keywords for a deferrable disabled constraint used to be in the wrong order. This has been fixed

  • 1927173: Table Transformation Helper wrong GRANTS with DBMS_METADATA
    When using the "DBMS_METADATA" package to generate the DDL the GRANTS generated were too many and about unrelated tables. This has been fixed.

Known issues

  • The "Execute and Step" script execution mode is broken in the 1.21RC3 release. Note that this issue has been fixed in the "Development Build" Release available on the right hand side.

  • Quoted identifiers (using "<IDENTIFIER>") potentially are not correctly recognized by new "Known objects" hightlighting since the current tokenizer does treat them as "normal" identifiers and therefore breaks them apart in case of any special character encountered.

  • There seems to be a bug in the Oracle Client that causes all columns after a skipped LOB column (when skipping LOB fetching is enabled in the Options) to be left blank. I have not understood yet the exact root cause but when using a patched or newer client (e.g. or the issue does not show up, so it's somehow related to the Oracle Client version.

The wish list

Here is the ever growing list of features I would like to add, but haven't managed to cope with yet.

  • Nice session browser

    Still TOAD is the only tool that I'm aware of that offers a comprehensive session browser with advanced functionality like automatic grouping of Parallel Slaves etc., but sometimes the session browser in TOAD behaves strangely. So this is something I wish to have: A good session browser built into SQLTools. But it's a tedious task...

  • Enable filter in Object list


  • In Oracle 9i and above, use Oracle DBMS_METADATA package for DDL extraction


  • Edit Data feature: Extend existing Grid to enable DML operations (INSERT/UPDATE/DELETE)

  • Online visual match: Highlight matching braces/brackets etc. when moving cursor (more an OpenEditor issue)


  • Completey fix Auto-Fit in Grid to data, which sometimes does not work for me as intended
    Tip: Adjust the "Max column length" setting in the "Data Grid 1" options. It means the maximum number of chars to be used for calculating the column width.


  • Multi-connection feature

    Idea is to have support for multiple DB connections at the same time, and you can select from a drop-down list of connections which you want to use as current connection in your SQL worksheet. Currently you need to start multiple instances of SQLTools++ to keep multiple connections open at the same time.

  • Threaded query support

    Non-blocking execution of SQL

  • Execution Time in SQL history

  • Automatically save files before SQL execute


  • Null password on connect should show a separate password entry dialog


  • Preselect SYSDBA if connect as SYS

  • Run SQL file in external tool (e.g. SQL*Plus)


  • Use DBA Views optionally if available

  • Get rid of the hardcoded "RULE" hints currently used all over the place in the queries when connected to 10g or later


SQLTools++ is published under the GNU General Public License (GPL). This means that this tool can be used free of charge under the GPL. The formal terms of the GPL license can be found at http://www.gnu.org/licenses/.

SQLTools++ on Sourceforge.net. Use Sourceforge.net to submit bugs, request features and post messages in forums.

SQLTools++ current release version "SQLTools_pp 1.21 RC3"

Previous Releases

Release Date 16/Nov/2008

Download the Windows installer here:

File size: 1.113.677 bytes
MD5: 6f2652c9ff7f43f8d270b516f121f40d
SHA1: 69590637360876f0a8a0d7537470a9169147e906
Virus checked on http://www.virustotal.com, no viruses were found

Download the bare binaries without installer (can be used directly from any device like USB stick or similar):

File size: 1.196.976 bytes
MD5: 155dd67c55d54e05d8b753909f86811d
SHA1: 4051153967d0cf4bb6139835dc1aa7c674d306db
Virus checked on http://www.virustotal.com, no viruses were found

Development Build (contains only SQLTools.exe, not a full installation):

File size: 889.888 bytes
MD5: 0ca7ce073a539156487273950e565c5f
SHA1: 0c1b3f4ddd7b152a917e96708c2be7db409967f8
Virus checked on http://www.virustotal.com, no viruses were found

The Development Build is released as intermediate version containing the latest enhancements and fixes, but it is not as thoroughly tested as the official release. If you do not have a particular reason you should use the official release. This Development Build in particular fixes the bug that the original "Execute and Step" script execution mode is supposed to work again correctly. In addition it fixes a couple of bugs, the detailed description of those can be found on the Sourceforge.net "bug" tracker site searching for "Closed" bugs or by reading the release notes of the "DevBuild" package on Sourceforge.net.

2602389 Execute and Step
2492670 wrong size of *CHAR* cols in a multi-byte char set database
2490082 Long numbers are highlighted with "identifier too long"

For further details regarding known issues of the current release please check the changelog on the left hand side.

Please note that the Development Build currently contains only the main executable. In order to use it you need to have the 1.21 RC3 release already installed. You then need to replace the existing "SQLTools.exe" with the "SQLTools.exe" contained in the provided archive.

Installation instructions: If you have already an existing installation of the original SQLTools, I recommend to install SQLTools++ in a separate directory as these versions are not compatible to each other in terms of support files they require. If you have customised your existing installation (e.g. keyboard accelerators) you can try to move/migrate your changes to the new installation, but be aware that new lines have been added to some of the config files, so keep a backup of the original files in case the application does not start anymore after modifying the configuration.

If you intend to update a previous SQLTools++ installation location, the installer recognizes this and offers options to overwrite existing configuration information. It is recommended to do that to get support for all new features added. If you are using the "custom" keyboard configuration, please note that this configuration file is never updated by the installer. You therefore need to do a diff on the newly installed "default" keyboard and your "custom" config file to be able to add the new keyboard shortcuts available. If you do not add them, newly added functions like "Execute script and halt on errors" will not have a keyboard accelerator assigned in the "Custom" Keymap layout configuration (Tools->Settings->Editor->General->Keymap layout).

Download the source tarball here:

Browse the CVS repository here:

The corresponding CVS tag for this release is: "sqltpp_1_21RC3_1"

You can download the source tarball also from the CVS repository browser.

Build instructions: You need Visual C++ 2005, Oracle OCI 10g libraries and header files (part of any regular Oracle database or client installation) and the MFC libraries, which means that Visual C++ 2005 Express Edition is not sufficient since it does not contain the MFC libraries and header files. You can download or order a trial version of Visual Studio 2005 from the Microsoft homepage:


The Professional Edition trial version available there is sufficient, you don't need the Team Edition.

The Project file to use is: SQLTools2005.sln or SQLTools2005.vcproj in the 
SQLTools subdirectory

Note that it has not been tested yet with the recently released Microsoft Visual Studio 2008.