The options dialog enables you to influence the behaviour and look of SQL Workbench/J to meet your needs. To open the options dialog choose→ .
With this option you can select in which language the application is shown. The new value will only be in affect when you restart the application.
With this option you can enable an automatic update check when SQL Workbench/J is started. You can define the interval in days after which the application should check for updates on the homepage. If a newer version is found on the website this will be indicated with a little globe in the statusbar. Clicking on the icon will open your default internet browser with the application's homepage.
If you disable this option, you can manually check for updates using the menu→ .
When SQL Workbench/J performs an update check, it sends the following information as part of the request to the server:
- The version of SQL Workbench/J you are using
- Whether the check was an automatic check or a manual one
- The interface language selected
- The operating system as reported by your Java installation
- The Java version you are using
If this option is enabled, the connect dialog will be shown automatically when the application is started.
If this option is enabled, then the application is closed completely if the initial connect dialog is cancelled.
This option is only valid if "Show connect dialog" is selected.
If this option is enabled, the HTML help will be shown as a single page in the browser instead of one page per chapter.
If this option is enabled, the password stored within a connection profile will be encrypted. Whether the password should be stored at all can be selected in the profile itself.
Using this option only supplies very limited security. As the source code for SQL Workbench/J is freely available, the algorithm to decrypt the passwords stored in this way can easily be extracted to retrieve the plain text passwords.
Usually SQL Workbench/J reports the success and timings for each statement that is beeing executed in the message tab of the current SQL panel. For large scripts this can slow down script execution dramatically. If this option is enabled, only a summary of the execution is printed once the script has finished. You can turn off the log during script execution by using the WBFEEDBACK command.
If this option is enabled, each editor tab will be shown with its index. You can then select the first 9 tabs by pressing Ctrl-1, Ctrl-2 and so on.
This option controls the behaviour of the tab display, if more tabs are opened than can be displayed in the current width of the window.
If this option is enabled, the tabs are always displayed in a single row. If too many tabs are open, the row can be scrolled to the display the tabs that are not visible.
If this option is disabled, the tabs are displayed in multiple rows, so that all tabs are always visible.
If this option is enabled, closing a tab needs to be confirmed, to prevent accidental closing.
Enable or disable the use of an animated icons in the SQL editor to indicate a running SQL statement. It has been reported, that the animated icon does have a severe (negativ) impact on the performance on some computers (depending on JDK/OS/Graphics driver). If you experience a high CPU usage during the execution of SQL statements, or if you find your SQL statements are running very slow, try to turn off the usage of the animated icons.
With this option you can control the level of information written to the application log. The most verbose level is
ERRORonly severe errors (either resulting from running a user command or from an internal error) are written to the application log.
When using Log4J as the logger, this will change the log level of the root logger.
At the bottom of the "General options" page, the full filename of the configuration file and the logfile are listed.
This property controls the line terminator used by the editor when sending SQL statements to the database. The value "Platform default" relates to the platform where you run SQL Workbench/J this is not the platform of the DBMS server.
The editor always uses "unix" line ending internally. If you select a different value for this property, SQL Workbench/J will convert the SQL statements to use the desired line ending before sending them to the DBMS. As this can slow down the execution of statements, it is highly recommended to leave the default setting of Unix line endings. You should only change this, if your DBMS does not understand the single linefeed character (ASCII value 10) properly.
This property controls the line terminator used when a file is saved by the editor. Changing this property affects the next save operation.
This options defines the default alternate delimiter. You can override this default in the connection profile, to use different delimiters for different DBMS. For details see using the alternate delimiter
The number of statements per tab which should be stored in the statement history. Remember that always the full text of the editor (together with the selection and cursor information) is stored in the history. If you have large amounts of text in the editor and set this number quite high, be aware of the memory consumption this might create.
If this option is enabled, the content of external files is also stored in the statement history.
Electric scrolling is the automatic scrolling of the editor when clicking into lines close to the upper or lower end of the editor window. If you click inside the defined number of lines at the upper or lower end, then the editor will scroll this line into the center of the visible area. The default is set to 3, which means that if you click into (visible) line 1,2 or 3 of the editor, this line will be centered in the display.
The number of spaces that are assumed for the
The editor recognizes character sequences that consist of letters and characters only as "words". This influences the way word by word jumping is done, or when selecting text using a doubleclick. Every character that is entered for this option is considered a "word" character and thus does not mark a word boundary.
By putting e.g. an underscore into this field, the text
MY_TABLEis recognized as a single word instead of two words (which is the default).
To enable auto-completion of brackets, enter pairs of characters that should automatically be "closed", e.g.
()''will automatically insert a closing bracket when an opening bracket is typed. To auto-complete quote characters enter two quotes.
To disable automatic closing of brackets enter nothing in this input field.
This defines the key combination that triggers the detection of expandable macros.
When running several statements (e.g. by using "Execute all") this option will highlight the current statement. The editor will be scrolled to make sure the currently executed statement is visible.
If "Highlight current statement" is enabled and this option is turned on, the highlighting will be kept once execution has finished.
If "Highlight errors" is enabled then the statement that generated an error is highlighted after execution.
Normally a right click in the SQL editor does not change the location of the cursor (caret). If this option is checked, then a right click will also change the caret's location (to where the mouse cursor is located)
If this option is turned off, then→ will only work if text is selected in the editor. If this option is turned on and no text is selected, the complete content of the editor will be executed.
If this option is enabled, then the cursor will automatically jump to the next statement in the script, when you execute a single statement using Ctrl-Enter ("Run current statement"). This can also be toggled through the menu → →
For more information on how you can execute statements in the editor, please refer to Executing Statements
When running a statement, the editor is set to read-only in order to allow a consistent statement highlighting. When this option is turned on, the text in the editor may be modified even if a statement is running. If the text in the editor is modified during execution, statement and error highlighting will not be done any more.
When analysing statements in the editor, it is assumed that individual statements are separated with a semicolon. This property controls if an empty line delimits a statement as well. This setting will be used to detect the current statement for auto-completion and when usinginside the editor.
This does not influence the behaviour when running scripts in batch mode or when using the
If this option is enabled, the file open dialog will default to the directory of the current file in the editor. If no file is loaded in the editor, the directory that is defined through the "Default directory" option will be selected.
If you want to highlight the line in which the cursor is located, specify the color for the highlighting. To disable the highlight for the current line, simply "remove" the color selection by clicking on the remove button.
The color that is used to highlight selected text.
When a statement is not executed correctly (and the DBMS signals an error) it is highlighted in the editor. With this option you can select the color that is used to highlight the incorrect statement.
You can change the colors for the different types of keywords in the editor.
The font that is used in the SQL editor. This font is also used when displaying the SQL source for tables and other database objects in the DbExplorer.
The font that is used to display result sets. This includes the object list and results in the DbExplorer.
The font that is used in the message pane of the SQL window.
The standard font that is used for menus, lables, buttons etc.
With this option you can select how the selected object name from the code completion popup is pasted into the editor.
As ismeans, that the values will be inserted into the editor as it was retrieved from the database. This option will also be used when SQL statements are generated internally (e.g. for updating the result set or when you export/copy data as SQL statements)
When selecting to paste all (or several columns) from the popup window, you can select with this option, in which order the columns should be written into the editor.
When using the quicksearch feature in the code completion this option controls the behaviour when hitting the ESC key. If this option is enabled, the ESC key will also close the popup window with the available choices. If this option is disabled, the ESC key will only close the quicksearch input field.
If this is enabled, columns are sorted alphabetically in the popup. If not, they are listed in the order as they are returned by the the database.
If this option is enabled, the typed characters match anywhere in the object name. If this optioin is disabled, the object name must start with the entered search value.
When this option is enabled, only those entries are shown in the popup that match the entered values in the quick search.
If this option is enabled, the JOIN completion generates a
USINGclause instead of an
ONclause to join the tables. If there are no columns with identical names, a join with an
ONoperator is generated.
If this option is enabled, JOIN completion will generated redundant parentheses around the join condition for the
If this option is enabled, the current workspace is saved each time you run a SQL statement.
If this option is enabled the current workspace file will be backed up, before saving the new workspace. You can keep multiple versions of the workspace by supplying a number in the "Max. Backups" input field. If a value > 1 is entered, saving the workspace will create a new "version" of the backup file. The versions will have the version number appended (e.g.
testdata.wksp.2and so on). The most recent version is the one with the highest number.
By default the backups for the workspaces are stored in the same directory as the workspace file itself. If you want to keep the (versioned) backups in a separate directory, you can specify it here.
If you specify a relative directory, it will be relative to the config directory.
You can customize how external files (that have been loaded using→ ) are remembered in the workspace. You can select three different options:
Content and filename
When this option is selected, the filename that is loaded in the editor tab will be stored in the workspace. The next time the workspace is loaded the file is opened as well. This is the default setting
When this option is selected, only the content of the editor tab is save (just like any other editor tab), but the link to the filename is removed. The next time the workspace is loaded, the file will not be opened.
Neither the content, nor the filename will be saved. The next time th workspace is loaded, the editor tab will be empty.
When you sort the result set, characters values will be sorted case-sensitiv by default. This is caused by the
compareTo()method available in the Java environment which puts lower case characters in front of upper case characters when sorting. With the "Sort Locale" option you can select which language rules should be applied while sorting. Note that sorting with a locale is slower than using the "Default" setting.
If this option is enabled the number of selected rows in the result will be displayed in the status bar.
If you have a single numeric column selected (by holding down the Alt key while selecting with the mouse), the statusbar will display the sum of the selected values.
If this option is enabled, the name of a result tab is derived from the
SELECTthat was used to generate the result. The query is analyzed and the first table name mentioned in the
FROMclause will be used for the name of the result.
The table name will not be used when the
@WbResultannotation is also specified for the query.
SQL Workbench/J uses a special display component for the contents of
CLOBcolumns that is capable of displaying multiple lines. This component honors newlines and linefeeds in the data retrieved from the database and is capable of using word wrapping for long lines (even if no newlines are embedded).
By default only
CLOBare considered to be able to contain multiple lines, so
VARCHARcolumns are usually not treated as multi-line columns. If your database stores text in VARCHAR columns that contains line breaks, you can define a threshold for the length of the column. Any column that is defined with a higher value will be displayed with the multiline component.
The default value of 250 means that a
VARCHAR(250)column will be displayed with the multiline renderer. A
VARCHAR(210)will be displayed in a single line. Note that this limit refers to the defined length of the column, not the actual length of the data.
Displaying data using the multiline component is slower than using the standard (single line) component.
The feature Adjust row height only works with multi-line columns.
If this option is enabled, the remarks defined for table columns in a result set are retrieved and shown as a tooltip. As this requires additional overhead after processing a query, it can be disabled for performance reasons.
When adding a SQL panel, this number will be used as a default for the max. rows value for the new panel.
If this option is enabled the result tab will show a warning sign if the limit defined by the max. rows setting is reached, indicating that the result might be incomplete.
If this option is enabled the row numbers for result sets are shown at the left hand side of the result.
If this option is enabled, the SQL that produced a result set is shown directly above the data inside each result tab.
The specified value will be displayed instead of
NULLvalues in the result of a SQL statement.
If this option is enabled, the widths of the result set columns are automatically adjusted to fit the largest value (respecting the min. and max. size settings) after retrieving data. Note that you can manually optimize the column widths using→ .
When calculating the optimal width for a column (either manually or if "Auto adjust column widths" is enabled, then the column's label will be included in the width calculation if this option is enabled. If this option is disabled, and the column contains very short values, the column width could be smaller than the column's label.
This option is also used when manually optimizing the column width,
When the initial display size of a column is calculated, or if you optimize the column widths to fit the actual data, columns will not exceed this width. This is useful when displaying large character columns.
When the initial display size of a column is calculated, or if you optimize the column widths to fit the actual data, columns will not exceed this width.
If this option is enabled, the height of each column is automatically adjusted after data retrieval to display as many lines of the column values (for character columns) as possible. Note that you can manually optimize the row height using→ .
Not every (character) column is displayed in a manner that multiple lines will be displayed. The default setting is to always display
CLOBcolumns as multiline.
CHAR) columns will only be displayed in multiline mode if they can hold more than 250 characters. This limit can be changed.
If this option is enabled, you can manually adjust the height of each row using the mouse. This option does not need to be enabled in order to (automatically) optimize the row height.
When calculating the optimimal height for each row, the number of lines defined with this option will never be exceeded.
Define the format for displaying date, date/time (timestamp) and time columns in the result set. For details on the format of this option, please refer to the documentation of the
SimpleDateFormatclass. This format is also used when parsing input for date or timestamp fields, so if you enter a date while editing the data, make sure you enter it the same way as defined with this option.
Here is an overview of the letters and their meaning that can be used to format the date and timestamp values. Be aware that case matters!
Letter Description G Era designator (Text, e.g. AD) y Year (Number) M Month in year (Number) w Week in year (Number) W Week in month (Number) D Day in year (Number) d Day in month (Number) F Day of week in month (Number) E Day in week (Text) a AM/PM marker H Hour in day (0-23) k Hour in day (1-24) K Hour in am/pm (0-11) h Hour in am/pm (1-12) m Minute in hour s Second in minute S Milliseconds z General time zone (e.g. Pacific Standard Time; PST; GMT-08:00) Z RFC 822 time zone (e.g. -0800)
DATEdatatype includes the time as well. But the JDBC driver does not retrieve the time part of a DATE column, so when retrieving
DATEvalues, this would remove the time stored in the database. If this option is enabled, SQL Workbench/J will treat Oracle's
TIMESTAMPcolumns, thus preserving the time information.
The character which is used as the decimal separator when displaying numbers.
Define the maximum number of digits which will be displayed for numeric columns. This only affects the display of the number internally they are still stored as the DBMS returned them. To see the internal value, leave the mouse cursor over the cell. The tooltip which is displayed will contain the number as it was returned by the JDBC driver. When exporting data or copying it to the clipboard, the real value will be used.
If this color is defined, the rows in the data table will be displayed with alternating background color.
If a color is defined, NULL values will be highlighted with the selected colors in the result set.
When this option is enabled, the statements which are sent to the database when saving changes to result set table, are displayed before execution. The update can be cancelled at that point if the statements are not correct. The generated statements can also be saved to a file from that window.
The statement(s) that are displayed in the confirmation window can not be changed!
When running a statement that would replace a result that has changes that are not saved to the database, you will be prompted whether you want to cancel the current operation that would discard those changes.
This applies to statements run in the editor, as well as to changes done in the Data tab of the DbExplorer.
You will not be prompted when running statements in the editor, when the option Append results is enabled.
When editing data either in the result set or in the data tab of the DbExplorer, fields that are set to
NOT NULLin the underlying table, will be displayed with a different background color if this option is selected.
If required fields are highlighted during editing, this option defines the background color that is used.
This property defines a mapping file for primary key columns. The information from that file is read whenever the primary keys for a table of cannot be obtained from the database. For a detailed description on how to define extra primary key columns, please refer to the
When displaying data in the Single record dialog you can customize the width for the input fields, and the default height for multiline columns.
The Database Explorer can either be displayed as a separate window or inside the main window as a another tab. If this option is selected, the Db Explorer will be displayed inside the main window. If the option Retrieve DB Explorer is checked as well, the current database scheme will be retrieved upon starting SQL Workbench/J
If this option is enabled, the tree display in the "References" and "Referenced by" tabs will automatically be loaded when the list of foreign keys is loaded. If this option is disabled, loading of the tree display must be started manually by clicking on the "reload" button.
By default triggers are shown only in the details of a table. If the option "Show trigger panel" is selected, an additional panel will be displayed in the DbExplorer that displays all triggers in the database independently of their table.
When this option is selected, the focus inside the DbExplorer will be set to the data panel, after an object in the list has been selected and the data panel is visible.
When this option is selected, the focus inside the DbExplorer will be set to the object's source panel, after an object in the list has been selected and the source panel is visible.
When this option is selected, a rectangle indicating the currently focused panel will be displayed, to indicate the component that will received keystrokes e.g. shortcuts such as
With this dropdown you can select the position of the details tabs (Columns, Source, Data etc).
If this option is enabled, the contents of the database schema is retrieved when the DB Explorer is displayed. If this option is not checked, either thebutton or selecting a schema or table type will load the list.
If this option is enabled, column definitions of a table can directly be altered by editing them inside the "Columns" tab. It also allows to directly change the name of a table in the table list.
The list of objects can be filtered with the dropdown. If the option "Remember object type" is selected, the current object type will be stored in the workspace of the current connection, and will be restored the next time.
If this option is enabled, the expression entered in the quick filter of the DbExplorer's table list is used as a regular expression (rather than a "SQL" Expression) to filter the list.
If this option is enabled, then any text that is typed into the quick filter will matched anywhere in the object name. It is equivalent to typing
*foo*into the quick filter. If this option is enabled and a wildcard is part of the value, then only that wildcard is used. Using
foo*for the filter while this option is enabled, shows all objects that start with
This option is only available when the use of regular expressions in the quick filter is disabled.
If this option is enabled, the filter expression is applied while you type. In this case, the "Filter" button does not need to be clicked in order to apply the filter expression.
If "Remember object type" is not enabled, you can define a default object type that is selected in the dropdown when the DbExplorer is displayed initially.
When this option is selected, the sort column in the data display of the DbExplorer will be restored after reloading the table data.
When you reorder the column in the data display of a table, enabling this option will automatically store the new column order and apply it the next time the table data is displayed.
If the table data was sorted by clicking on one of the columns, reloading the data will use an approriate
ORDER BYclause for the data retrieval. This is useful if not all rows were displayed in the data panel due to a max. row limit and you want the first rows displayed based on the current column sort.
When displaying the SQL source for a table, a name will be generated for primary key constraint if the current constraint has no name or a system generated name.
System generated names are identified using a regular expression that can be configured.
If this option is selected, the generated SQL will not reflect the real statement that was used to create the table!
If this option is enabled the generated table source will contain any table grants that have been defined.
If this option is enabled the generated table source will start with the approriate
The title bar of the main window displays displays information about the current connection, workspace and editor file. Some of these elements can be enabled or disabled with the options on this page.
If this option is enabled, the Application name will be put at the end of the window title.
If this option is enabled, the currently loaded workspace name will be displayed in the main window's title.
If this option is enabled, the group of the current connection profile will be displayed in the main window's title. The name of the current connection profile will always be shown.
If you select to display the current profile's group, you can select a pair of characters to put around the group name.
If you select to display the current profile's name and group, you can select the character that separates the two names.
If the current editor tab contains an external file, you can choose if and which information about the file should be displayed in the window title. You can display nothing, only the filename or the full path information about the current file. The information will be displayed behind the current profile and workspace name.
These options influence the behaviour of the SQL Formatter when reformatting a SQL statement in the editor.
When the SQL formatter hits a sub-SELECT while parsing it will not reformat any statement which is shorter then the length specified with this option, i.e. any sub-SELECT shorter then this value will be formatted as one single statement without line breaks or indention. See SQL Formatter for details on how the SQL formatting works.
This property defines the number of columns the formatter puts in on line when formatting a
SELECTstatement. The default of 1 (one) will put each column into a separate line:SELECT p.name, p.firstname, a.city, a.zip FROM person p JOIN address a ON p.person_id = a.person_id;
If this is set to 2, this would result in the following formatted SELECT:SELECT p.name, p.firstname, a.city, a.zip FROM person p JOIN address a ON p.person_id = a.person_id;
The above example would list all columns in a single line, if this option is set to 4 (or a higher value):SELECT p.name, p.firstname, a.city, a.zip FROM person p JOIN address a ON p.person_id = a.person_id;
This property defines the number of columns the formatter puts in on line when formatting an
INSERTstatement. A value of one will list each column in a separate line in the
INSERTpart and the
VALUESpartINSERT INTO PERSON ( id, firstname, lastname ) VALUES ( 42, 'Arthur', 'Dent' );
When setting this value to 2, the above example would be formatted as follows:INSERT INTO PERSON (id, firstname, lastname) VALUES (42, 'Arthur', 'Dent');
This property defines the number of columns the formatter puts in on line when formatting an
UPDATEstatement. A value of 1 (one) will put each column into a separate line:UPDATE person SET firstname = 'Arthur', lastname = 'Dent' WHERE id = 42;
With a value of 2, the above example would be formatted as follows:UPDATE person SET firstname = 'Arthur', lastname = 'Dent' WHERE id = 42;
This option defines if standard SQL keywords are generated in upper case, lower case or left unchanged.
This option defines if identifiers (table names, column names, ...) are generated in upper case, lower case or left unchanged.
This option defines if the names of SQL functions are generated in upper case, lower case or left unchanged. This does not apply to user-written functions, only standard functions available for the current DBMS.
This option controls how conditions for
JOINoperators are generated
The JOIN condition is always kept on a single line:SELECT * FROM person p JOIN address a ON p.person_id = a.person_id;
the JOIN condition is always written on a new line:SELECT * FROM person p JOIN address a ON p.person_id = a.person_id;
the JOIN condition is generated on multiple lines only if the join involves more than one condition:SELECT * FROM person p JOIN address a ON p.person_id = a.person_id; JOIN address_details ad ON ad.address_id = a.address_id AND ad.person_id = a.person_id;
If this option is selected, a space is added after the comma inside an
If this option is enabled, the commas inside the
SELECTlist are put on the start of the next line, rather than on same line as the last column.
If this option is disabled a
SELECTstatement will be formatted like this:SELECT id, lastname, firstname FROM person;
If this option is enabled the above statement will be formatted like this:SELECT id ,lastname ,firstname FROM person;
This option is only available is "Comma after line break" is enabled. In that case it controls if a space character is inserted after the comma.
If formatting of
UPDATEstatements is enabled, generated
UPDATEstatements are formatted using the SQL formatter before they are displayed.
If formatting of
INSERTis enabled, the way they generated
INSERTstatements are formatted using the SQL formatter before they are displayed.
If formatting of
DELETEis enabled, the way they generated
DELETEstatements are formatted using the SQL formatter before they are displayed.
Defines the date literal format to be used when copying data as SQL statements to the clipboard. For a detailed description of the different formats please refer to the WbExport description. This option does not influence the default format used by the
When you copy data as "Text" (tab-separated) to the clipboard, the date and timestamp format from the general options is used.
Defines the date literal format to be used for the WbExport command. The value of this option is used if the
-sqlDateLiteralsswitch is not supplied when running
WbExport. This default value is reported when
WbExportis executed without parameters.
Defines the date literal format to be used for the WbDataDiff command. The value of this option is used if the
-sqlDateLiteralsswitch is not supplied when running
WbDataDiff. This default value is reported when
WbDataDiffis executed without parameters.
This setting controls whether SQL Workbench/J uses the owner (schema) when creating SQL scripts during exporting data (through WbExport or "Save as"). When this option is selected, the usage of the schema depends on the ignore schema setting that controls ignoring certain schemas for specific DBMS. When this is option is not selected, the schema/owner will never be used for SQL scripts.
By default the DbExplorer will not generate the SQL to create empty comments (tables, views, columns,...). If this option is enabled then a corresponding SQL statement to define a comment with an empty string will be generated. If a comment is
NULLcomments will never be generated.
If this option is enabled, generated INSERT statements (e.g. when editing data) will not contain identity or autoincrement columns. When using
WbExportto create a SQL script, this can be controlled independently from the global option.
On this page, you can define external tools (programs). Currently the only place where this is used, is in the BLOB info dialog, to open the BLOB data with one of the defined external tools.
This could be a program to display images, OpenOffice to display office documents or a text editor to display text files.
If the tool needs additional parameters (e.g. to select a hex editing mode for a text editor), they have to be entered in the "Parameters" field. Do not add parameters to the definition of the executable.
If you want to use additional Look and Feels that are not part of the JDK, you can specify them here.
A Look And Feel definition consists of a name, the class name to be used and the location of the JAR file that provides the look and feel implementation. The class name that has to be used should be available in the documentation of the look and feel of your choice. The name is SQL Workbench/J internal and is only used when displaying the list of available Look and Feels.
The current look and feel is only changed when you click on the not change the look and feel.button. Simply selecting a different entry in the list on the left side will
When you switch the current Look & Feel, you will need to restart the application to activate the new look and feel. Note that if you switch the current Look & Feel it will be changed, regardless whether you close the options dialog using Cancel or OK.