This section describes the additional options for SQL Workbench/J which are not (yet) available in the options dialog.
The name of the setting refers to the entry in the file workbench.settings
which is located in the configuration directory. Not all
listed properties will be present in workbench.settings
. In this case,
simply create a new line with the property name and the value as described here.
The position where you add this entry does not matter.
You can also change the values for these properties while the application is running by using the command WbSetConfig.
![]() | |
Every property can also be specified on the command line when starting SQL Workbench/J by setting a system
property with that name using the |
You can edit the file using a text editor. In that case you must close the application before editing the file, otherwise your changes will be overwritten when the application is closed.
You can also change any property using the SQL Workbench/J command WbSetConfig. For most of the parameters the change will be in effect immediately. For some you will still need to restart the application or at least re-connect to the database.
DBMS specific settings are controlled through properties that contain a DBMS specific value, called the the DBID. This DBID is displayed in the connection info dialog (right click on the connection URL in the main window, then choose "Connection Info").
The DBID is also reported in the log file:
INFO 15.08.2014 10:24:42 Using DBID=postgresql
If the description for a property in this chapter refers to the "DBID", then this value has to be used.
If the DBID is part of a property key this will be referred to as [dbid]
in this chapter.
When using WbSetConfig
you can use the value [dbid]
inside the property name and it will get replaced with the current DBID automatically. The following
command changes the property named workbench.db.postgresql.ddlneedscommit
if the current connection is against a PostgreSQL database:
WbSetConfig workbench.db.[dbid].ddlneedscommit=true
Property: workbench.print.nativepagedialog
Possible values: true
, false
When printing the contents of a table, this settings controls the type of print dialog to be used. The default setting will open the native print dialog of the operating system. If you experience problems when trying to print, set this property to false. SQL Workbench/J will then open a cross-platform print dialog.
Default value: true
Property: workbench.gui.tabs.defaultlabel
When adding a new editor tab, the value of this property will be used to set the new tab's title.
Property: workbench.editor.autocompletion.oracle.public_synonyms
Possible values: true
, false
When using auto completion for table columns and table names, Oracle's public synonyms
are not included by default. This has two reasons: first, the author believes that public
synonyms shouldn't be used (it's just as bad as global variables in programming) and
second, Oracle defines a huge number of public synonyms that would make the
popup with all available tables very long and hard to use. Setting this property
to true
, will include public synonyms in the popup. Please
refer to filtering synonyms for
details on how to filter out unwanted synonyms from this list.
Default value: false
Property: workbench.editor.rectselection.modifier
These properties control the modifier key that needs to be pressed to enable
rectangular selections in the editor. Possible values are alt
for
setting the Alt key as the modifier, or ctrl
for setting the Ctrl key as the modifier.
Default value: alt
Property: workbench.file.encoding
Several internal commands use an encoding when writing external text files (e.g. WbExport). If no encoding is specified for those commands, the default platform encoding as reported by the Java runtime system is used. You can overwrite the default encoding that Java assumes by setting this property.
Default value: empty, the Java runtime default is used
Property: workbench.sql.history.maxtextlength
When you execute a SQL statement in the editor, the current content of the editor is put into the history buffer. If you are editing large scripts, this can lead to memory problems. This property controls the max. size of the editor text that is put into the history.
If the current editor text is bigger than the size defined in this property the text is not put into the history.
Default value: 10485760 (10MB)
Property: workbench.clipcreate.includenewline
Possible values: true
, false
When creating a Copy code snippet,
the newlines inside the editor are preserved by putting a \n
character into the String declaration. Setting this property to false, will
tell SQL Workbench/J to not put any \n
characters into the Java string.
Default: true
Property: workbench.clipcreate.concat
When creating a Copy code snippet, each line is concatenated using the standard + operator. If your programming language uses a different concatenation character (e.g. &), this can be changed with this property.
Default: +
Property: workbench.clipcreate.codeprefix
When creating a Copy code snippet,
this is prefixed with String sql =
. With this property you can
adjust this prefix.
Default: String sql =
Property: workbench.clipcreate.codeend
When creating a Copy code snippet, this character will be appended to the end of the generated code.
Default: ;
Property: workbench.dbexplorer.switchcatalog
When connected to a DBMS that supports multiple databases (catalogs) for the
same connection, the DbExplorer displays a dropdown list with the available
databases. Switching the selected catalog in the dropdown will trigger a switch
of the current catalog/database if the DbExplorer uses
its own connection.
If you do not want to switch the database, but merely apply the new
selection as a filter (which is always done, if the DbExplorer shares the connection
with the other SQL panels) set this property to false
.
Default: true
Property: workbench.db.objecttype.selectable.[dbid]=value1,value2,...
The DbExplorer makes the "data" tab available based on the type of the selected object
in the object list (second column). If the type returned by the JDBC driver
is one of the types listed in this property, SQL Workbench/J assumes that
it can issue a SELECT * FROM
to retrieve data from that object.
Default values:
.default=view,table,system view,system table |
.postgresql=view,table,system view,system table,sequence |
.rdb=view,table,system,system view |
The values in this property are not case-sensitive (TABLE
is the same as table
)
You can customize the generated SELECT that is used to display the table data depending on the column type. Please refer to the DbExplorer chapter for details.
Property: workbench.db.[dbid].datatypes.searchable
DbExplorer's "Search table data" feature only includes
columns with the datatypes CHAR
and VARCHAR
into the WHERE clause for searching.
Some database systems allow CLOB columns to be searched using a LIKE
expression
as well. This property can be used to list all datatypes that can be used in a LIKE
condition.
Default values:
For PostgreSQL: text |
For MySQL: longtext,tinytext,mediumtext |
Property: workbench.db.[dbid].dbexplorer.use.read_uncommitted
To avoid blocking of the table list retrieval, the isolation level used in the DbExplorer can be switched to
READ_UNCOMMITTED
for DBMS that support this. This is e.g. necessary for Microsoft SQL Server
as an uncommitted DDL statement from a different connection can block the SELECT
statement
that retrieves the table information.
The isolation level will only be changed if Separate connection per tab is enabled.
For Microsoft SQL Server the timeout waiting for such a lock can be configured as an alternative.
Default values:
For Microsoft SQL Server: true |
Property: workbench.libdir
A directory that contains the .jar files for the JDBC drivers.
The value of this property can be referenced using %LibDir%
in the driver's definition. The value for this can also be specified
on the command line.
No default
Property: | workbench.db.objectinfo.includedeps |
workbench.db.[dbid].objectinfo.includedeps |
If Object info is invoked, this setting controls if dependent objects (indexes, triggers) are also displayed for tables. This setting serves as a default for all DBMS. Displaying dependent objects can also be controlled on per DBMS by adding the DBID to the property key. The value without the DBID serves as a default setting for all DBMS.
Default: false
Property: | workbench.db.objectinfo.includefk |
workbench.db.[dbid].objectinfo.includefk |
If Object info is invoked, this setting controls if foreign key constraints are also displayed when dependent objects are displayed for tables. This setting serves as a default for all DBMS. When adding the DBID to the property key this is controlled on a per DBMS level.
Default: false
Property: workbench.datapumper.autoconnect
When opening the DataPumper as a separate window it will
connect to the current profile as the source connection. If you do not want the DataPumper to
connect automatically set this property to false
Default: true
Property workbench.db.[dbid].ddlneedscommit
Possible values: true
, false
Defines if the DBMS supports transactional DDL (CREATE TABLE, DROP TABLE, ...)
Default: false
Property: workbench.db.[dbid].usejdbccommit
Possible values: true
, false
Some DBMS return an error when COMMIT
or ROLLBACK
is sent as
a regular command through the JDBC interface. If the DBMS is listed here,
the JDBC functions commit()
or rollback()
will
be used instead.
Default: false
Property: workbench.db.[dbid].inlineconstraints
Possible values: true
, false
This setting controls the generation of the CREATE TABLE
source in the DbExplorer. If a DBMS only supports defining
primary and foreign keys inside the CREATE TABLE
statement, then this property
should be set to true
.
Property workbench.db.[dbid].casesensitive
Possible values: true
, false
The search panel of the DbExplorer highlights matching values in the result tables. When using the "Server Side Search", the highlighter needs to know whether string comparisons in the database are case sensitive in order to highlight the correct values.
Default: false
Property: workbench.db.updatingcommands
for general SQL statements
Property: workbench.db.[dbid].updatingcommands
for DBMS specific update statements
When enabling the read only or confirm update option in a connection profile, SQL Workbench/J assumes a default set of SQL commands that will change the database. With this property you can add additional keywords that should be considered as "updating commands". This is a comma separated list of keywords. The keywords may not contain whitespace.
No default
Property: workbench.db.drivers.opentransaction.check
A list of JDBC driver class names that map to databases that support checking for uncommitted changes. If one of these drivers is selected in a connection profile, the option Check for uncomitted changes will be visible in the connection dialog.
To make this option work, a query that counts the number of uncommitted changes needs to be configured as well.
Default: oracle.jdbc.driver.OracleDriver,oracle.jdbc.OracleDriver,org.postgresql.Driver,org.hsqldb.jdbc.JDBCDriver
Property: workbench.db.[dbid].opentransaction.query
A query that can be used to check if the current connection has any uncommitted transactions. The query is expected to return a single row with a single numeric column. If the value is zero, no uncommitted changes are detected. Any number greater than zero means that there is an uncommitted change.
Default: For Oracle, PostgreSQL and HSQLDB, the corresponding queries are configured
Property: workbench.db.[dbid].manual
This defines the URL of the online manual for that DBMS. This URL is shown in the browser when using the menu item:
→ will display the
You can append a version number after the DBID in the property key, to define different URLs for
different DBMS versions.
The key workbench.db.microsoft_sql_server.8.manual
defines the URL for SQL Server 2000, whereas
workbench.db.microsoft_sql_server.10.5.manual
defines the URL for SQL Server 2008 R2.
The numbers have to be majorversion.minorversion
as shown in the "Connection Info" dialog
If the online manuals always have the version information at the same place of the URL, placeholders can be used, and only
a single URL is necessary. For PostgreSQL, the following URL is used:
workbench.db.postgresql.manual=http://www.postgresql.org/docs/{0}.{1}/static/index.html
Where {0}
is replaced with the major version number and the {0}
is replaced
with the minor version number.
Property: workbench.db.[dbid].exclude.synonyms
The database explorer and the auto completion can display (Oracle public) synonyms. Some of these are usually not of interest to the end user. Therefor the list of displayed synonyms can be controlled. This property defines a regular expression. Each synonym that matches this regular expression, will be excluded from the list presented in the GUI.
Default value (for Oracle): ^AQ\\$.*|^MGMT\\$.*|^GV\\$.*|^EXF\\$.*|^KU\\$_.*|^WM\\$.*|^MRV_.*|^CWM_.*|^CWM2_.*|^WK\\$_.*|^CTX_.*
Note that you need to use two backslashes in the RegeEx.
Property: workbench.db.keyword.current_date
The "literals" that are accepted for DATE columns to identify
the current date. Default values are current_date, today
Property: workbench.db.keyword.current_timestamp
The "literals" that are accepted for TIMESTAMP columns to identify
the current date/time. Default values are current_timestamp,sysdate,systimestamp
Property: workbench.db.keyword.current_time
The "literals" that are accepted for TIME columns to identify
the current time. Default values are current_time, now
Property: workbench.db.[dbid].sql.usesavepoint
Possible values: true
, false
Some DBMS (such as PostgreSQL) cannot continue inside a transaction
when an error occurs. A script with multiple DML statements can therefor
not run completely if one statement fails, even if you choose to ignore
the error.
If this property is set to true, SQL Workbench/J will set a savepoint
before executing a DML statement (SELECT, INSERT
.
In case of an error the savepoint will be rolled back and the transaction can continue.
Default value: false
Property: workbench.db.[dbid].ddl.usesavepoint
Possible values: true
, false
Some DBMS (such as PostgreSQL) cannot continue inside a transaction when an error occurs. A script with multiple DDL statements can therefor not run completely if one statement fails, even if you choose to ignore the error. If this property is set to true, SQL Workbench/J will set a savepoint before executing a DDL statement. In case of an error the savepoint will be rolled back and the transaction can continue.
Default value: false
update/insert
mode for WbImportProperty: workbench.db.[dbid].import.usesavepoint
Possible values: true
, false
Some DBMS (such as PostgreSQL) cannot continue inside a transaction
when an error occurs. When running WbImport in update,insert
or insert,update
mode, the first of the two statements
needs to be rolled back in order to be able to continue the import.
If this property is set to true, SQL Workbench/J will set a savepoint
before executing the first (insert or update) statement. In case of an error the savepoint
will be rolledback and WbImport will try to execute the second statement.
Note that enabling savepoints can drastically reduce the performance of the import.
Default value: false
Property: workbench.db.ignore.readerror
Possible values: true
, false
When retrieving data (e.g. using a SELECT
statement)
errors that are reported by the driver will be displayed to the user.
The retrieval will be terminated. If you want to ignore errors and replace
the data that could not be retrieved with a NULL
value,
set this property to true
.
Using this parameter is not recommended as it might produce results that do not reflect the data as it is stored in the database.
Default value: false
Property: workbench.db.[dbid].resultset.columns.check.readonly
Possible values: true
, false
If this property is enabled, columns in result sets will be checked whether they are marked
as read only by the JDBC driver. Read-only columns will not be included in generated DML
statements when editing data. If the driver incorrectly reports columns that can be changed
as read-only, setting this property to false
will enable editing those columns.
Default value: true
Property: workbench.db.[dbid].typemap
When using the -createTarget
parameter for
WbCopy, the type mapping from the JDBC driver might
not be sufficient or correct. With this setting you can define your own type mapping
for a specific dbms. The entry is a list of mappings that map the numeric value
of a JDBC datatype (as defined in java.sql.Types)
to a real data type name for the target DBMS. The numeric JDBC datatype value
and the DBMS specific datatype name are separated with a colon. Each pair is separated by a semicolon.
The following entry maps the JDBC datatype with the value 3 (DECIMAL) to the target
datatype double
and the value 2 (BIGINT) to the target
type NUMBER. The NUMBER datatypes needs uses two parameter placeholders
$size
and $digits
. The last mapping
maps the JDBC value -1 (LONGVARCHAR) to the DBMS type VARCHAR
using only the $size
parameter
workbench.db.some_dbid.typemap=3:DOUBLE;2:NUMBER($size,$digits);-1:VARCHAR($size)
JDBC 4.0 defines the following constants:
Property: workbench.db.updatetable.check.pkonly
(for all DBMS)
Property: workbench.db.[dbid].updatetable.check.pkonly
(will overwrite the DBMS independent configuration)
Possible values: true
, false
When changing values directly in the result set, SQL Workbench/J needs to find out which table is being edited. As this process requires multiple requests to the database server in order to support different features during editing this can be time consuming depending on the DBMS being used and the size of the database.
If this property is set to true
, only the PK definition will be retrieved, otherwise the full
definition of all columns of the table.
When this is enabled, editing results based on statements with multiple tables might not work properly. The option Highlight required fields will also have no effect as no column information will be retrieved for the table. It is also recommended to enable the option Highlight required fields to make sure the correct SQL statements are generated when only the PK information is checked.
Property: workbench.db.pk.retrieval.checkunique
(for all DBMS)
Property: workbench.db.[dbid].pk.retrieval.checkunique
(will overwrite the DBMS independent configuration)
Possible values: true
, false
This property controls the behaviour when no primary key is found when checking the update table. If this is set to true, SQL Workbench/J will use a unique index instead if available. Note that the check for the PK is still done during hte detection of the update table. Using a unique key is only a fallback.
Property: workbench.db.updatetable.check.use.cache
(for all DBMS)
Property: workbench.db.[dbid].updatetable.check.use.cache
(will overwrite the DBMS independent configuration)
Possible values: true
, false
If this is set to true
, retrieval of the table's columns, primary key (or unique index)
information will be done using the completion cache. This can speed up repeated lookups for the same table(s).
The disadvantage is that when the table definitions are changed this would not be reflected in the cache and thus the PK information used or the generated SQL statements to save the changes might be wrong. It is recommend to enable Confirm result set updates to make sure the generated SQL statements are correct.
Property: workbench.db.oracle.detectsnapshots
When displaying the list of tables in the database explorer
Oracle materialized views (snapshots) are identified as tables by the Oracle JDBC driver.
To identify a specific "table" as a materialized view, a second request to the database
is necessary (accessing the system view ALL_MVIEWS
). As this
request can slow down the retrieval performance, this feature can be turned off. If for
any reason the ALL_MVIEWS
view cannot be accessed, this feature
will be turned off until you re-connect to the database.
Default value: true
Property: workbench.db.oracle.fixcharsemantics
The Oracle driver does not report the size of VARCHAR2 columns correctly
if the character semantic has been set to "char". The JDBC driver always returns
the length in bytes.
When this property is set to true, the length for those columns will
be displayed correctly in the DbExplorer. As this means SQL Workbench/J
is using it's own query to retrieve the table definition, this might not
always yield the same results as the original statement from the Oracle driver.
If your table definitions are not displayed correcly, set this value
to false
so that the original driver methods are used.
The statement used by SQL Workbench/J is a bit faster then then original
Oracle statement, as it does not use a LIKE
predicate
(which is required to comply with the JDBC specs).
Default value: true
Property: workbench.db.oracle.fixnvarchartype
The Oracle driver does not report the type of NVARCHAR2 columns correctly. They are returned as Types.OTHER. If this property is enabled, than SQL Workbench/J is also using it's own SELECT statement to retrieve the table definition.
Default value: true
Property: workbench.db.oracle.retrieve_tablespace
Possible values: true
, false
If this is enabled, the generated SQL source for tables and indexes will contain the
corresponding TABLESPACE xxx
option to reflect the way the table was created.
If this option should not be included in the SQL, set this parameter to false
.
Default value: true
Property: workbench.db.oracle.check_default_tablespace
Possible values: true
, false
When including the tablespace for an index or table, and this option is enabled, the tablespace for tables and indexes owned by the current user is only displayed if it is different from the default tablespace. For tables and indexes owned by other users, the tablespace will still be displayed even if it's the default tablespace of the owner.
Default value: false
Property: workbench.db.microsoft_sql_server.dbexplorer.locktimeout
Possible values: positive integer value. (Timeout in milliseconds)
This defines timeout that limits the time the driver should wait when hitting a read lock
during retrieval of the table information. The timeout will be changed by running
SET LOCK_TIMEOUT ...
after the DbExplorer is opened.
The timeout will only be changed if Separate connection per tab is enabled.
As an alternative, the DbExplorer can be configured to change the isolation
level to READ UNCOMMITTED
to avoid the locks alltogether (but display potentially wrong information).
Default value: 2500
Property: workbench.db.microsoft_sql_server.remarks.propertyname
Defines the name of the extended property that is queried in order to retrieve table or column remarks for SQL Server.
SQL Workbench/J will use the table function fn_listextendedproperty to retrieve the extended property defined by this configuration setting to retrieve remarks.
Default value: MS_DESCRIPTION
Property:
workbench.db.microsoft_sql_server.remarks.object.retrieve |
workbench.db.microsoft_sql_server.remarks.column.retrieve |
Enables/disables the retrieval of extended properties as a replacement for the standard SQL COMMENT ON ...
capability.
SQL Workbench/J will use SQL Server's fn_listextendedproperty table function to retrieve table or column remarks. As this can have a performance impact on the retrieval of tables or columns, this retrieval can be disabled using this configuration setting.
The name of the extended property can be configured using
workbench.db.microsoft_sql_server.remarks.propertyname
Enabling these options is also necessary in order to get comments in a WbSchemaReport output
Default value: true
for both properties
Property: workbench.sql.script.inmemory.maxsize
This setting controls the size up to which files that are executed in batch mode or via the WbInclude command are read into memory. Files exceeding this size are not read into memory but processed statement by statement. When a file is not read into memory the automatic detection of the alternate delimiter does not work any longer. The size is given in bytes.
Default: 1048576
Property: workbench.db.ignore.[dbid]
For a DBMS identifier you can define a list of commands that are simply ignored by SQL Workbench/J. This is useful e.g. for Oracle, when you want to run scripts that are intended for SQL*Plus. If those scripts contain special SQL*Plus commands (that are not understood by the Oracle server as SQL*Plus executes these commands directly) they would fail in SQL Workbench/J. If those commands are simply ignored and not send to the server, the scripts can run without modification.
Default: workbench.db.ignore.oracle=quit,exit,whenever,spool,rem,clear,break,btitle,column,change,repheader,repfooter,run,save,store,timing,ttitle
Property: workbench.db.supportshortinclude
By default the WbInclude command
can be shortened using the @ sign. This behaviour is disabled for MS SQL to
avoid conflicts with parameter definitions in stored procedures. This property
contains a list of DBID
s for which
this should be enabled. To enable this for all DBMS, simply use * as the value for
this property.
Default: oracle, rdb, hsqldb, postgresql, mysql, adaptive_server_anywhere, cloudscape, apache_derby
Property: workbench.db.checksinglelinecmd
When parsing a SQL script, SQL Workbench/J supports statements that are put into a single line without a delimiter. This is primarily intended for compatibility with Oracle's SQL*Plus and is not enabled for other database systems.
Default: oracle
For some switches of the WbExport and WbImport command, you can override
the default values used by SQL Workbench/J in case you do not provide the parameter.
The default values mentioned in this chapter apply, if no property is defined
in the workbench.settings
file. The current default for
these properties is displayed in the help message when you run the
corresponding command without any parameters.
Property: workbench.export.text.default.header
Possible values: true
, false
This property controls whether default value for the -header
parameter of the WbExport command.
Default: false
Property: workbench.export.xml.default.verbose
Possible values: true
, false
This property controls whether XML exports are done using verbose XML or
short tags and only basic formatting. This property sets the default
value of the -verboseXML
parameter for the WbExport command.
Default: true
Property: workbench.import.default.continue
Possible values: true
, false
This property controls the default value for the parameter -continueOnError
of the WbImport command.
Default: false
Property: workbench.import.default.header
Possible values: true
, false
This property controls the default value for the parameter -header
of the WbImport command.
Default: true
Property: workbench.import.default.multilinerecord
Possible values: true
, false
This property controls the default value for the parameter -multiLine
of the WbImport command.
Default: false
Property: workbench.import.default.trimvalues
Possible values: true
, false
This property controls the default value for the parameter -trimValues
of the WbImport command.
Default: false
When SQL Workbench/J initializes the logging environment, it also adds two system property that can be used to define the logfile relative to the configuration or the installation directory:
workbench.config.dir
contains the full path to the configuration directoryworkbench.install.dir
contains the full path to the directory where sqlworkbench.jar is locatedThese properties can be used to put the logfile into the directory relative to the config or installation directory without the need to hardcode the directory name.
Property: workbench.log.file
Defines the location of the logfile. By default, the file will be named workbench.log
and will be written
into the configuration directory.
Property: workbench.log.level
Set the log level for the log file. Valid values are
Default: INFO
Property: workbench.log.format
Define the elements that are included in log messages. The following placeholders are supported:
This property does not define the layout of the message, only the elements that are logged.
If the log level is set to DEBUG, the stacktrace will always be displayed even if it is not included in the format string.
If you want more control over the log file and the format of the message, please switch the logging to use Log4J.
Default: {type} {timestamp} {message} {error}
Property: workbench.log.console
Defines whether SQL Workbench/J logs messages additionally to the standard error output
Default: false
Property: workbench.log.maxfilesize
Defines the maximum size of the logfile in bytes. If the size is exceeded a new logfile is created during the next startup.
Default: 10485760
(1MB)
Property: workbench.log.backup.count
Defines the maximum number of logfiles to be kept after a new logfile is created.
The old logfiles will be renamed with a number (workbench.log.1
being the oldest logfile)
Default: 5
Property: workbench.dbmetadata.logsql
If this is set to true
the SQL queries used to
retrieve DBMS specific meta data (such as view/procedure/trigger source,
defined triggers/views) will be logged with level INFO.
This can be used to debug customized SQL statements for DBMS's which are not (yet) pre-configured.
Default: false
Property: workbench.log.log4j
If you need more control over the logfile (e.g. for batch processing) you can delegate logging to Log4j. You can turn on Log4j logging in two different ways:
true
If you just pass true
as the value for this property, the Log4j configuration file
must be accessible to Log4j through the usual ways (please refer to the Log4j manual for details).
If you specify a configuration file, this will be "passed" to Log4j by setting the system property
log4j.configuration
to contain the correct "file URL" needed by Log4j.
When passing a configuration file through this property, you can use a system property as part of the filename
(e.g. ${user.home}/sqlworkbench.log
). If the filename denotes a relative filename
(e.g. log4j.xml
without any path information), then it is assumed to be relative to the
configuration directory.
When you turn on Log4J logging, you must copy copy the Logg4J library as log4j.jar
into the directory
where sqlworbkench.jar
is located. Do not include the version number in the filename.
![]() | |
The jar file must be named log4j.jar |
If the Log4J classes are not found, the built-in logging will be used (see above)
When Log4J logging is enabled, none of the logging properties described in the previous section will be used.
You have to configure everything through log4j.xml
.
When using
→ with Log4J enabled, and you have configured Log4J to write to multiple files, only the first file will be shown.When SQL Workbench/J initializes the logging environment, it also adds two system property that can be used to define the logfile relative to the configuration or the installation directory:
workbench.config.dir
contains the full path to the configuration directoryworkbench.install.dir
contains the full path to the directory where sqlworkbench.jar is located
These properties can be used to put the logfile into the directory relative to the config or installation directory without the need to hardcode
the directory name in log4j.xml
A sample log4j.xml
can be found in the scripts
directory of the
SQL Workbench/J distribution.
The system properties that are set by SQL Workbench/J to point to the configuration and installation directory (see above) can also
be used in the log4j.xml
file.
Property: workbench.logfile.viewer.program
This property controls which application is used to display the logfile when using
→ .The possible values for this property are:
internal
- this is the default and uses the built-in logviewersystem
- this will use the tool registered in the operating system to open files with the extension .log
Property: workbench.sql.ignoreschema.[dbid]=schema1,...
Define a list of schemas that should be ignored for the DB ID
When SQL Workbench/J creates DML statements and the current table is reported
to belong to any of the schemas listed in this property, the schema will not
be used to qualify the table. To ignore all schemas use a *, e.g.
workbench.sql.ignoreschema.rdb=*
. In this case, table names
will never be prefixed with the schema name reported by the JDBC driver.
The values specified in this property are case sensitive.
Note that for Oracle, tables that are owned by the current user will never be prefixed with the owner.
Default values:
.oracle=PUBLIC |
.postgresql=public |
.rdb=* |
Property: workbench.db.[dbid].create.table.[typename]
This defines a complete CREATE TABLE
statement that is used by
WbCopy
to create the target table.
The typename
value is the value that has to be used for the
-tableType
parameter of the WbCopy
command.
The following placeholders are supported in the template
%fq_table_name% replaced with the fully qualified table name |
%table_name% replaced with the specified table name (without schema or catalog) |
%columnlist% replaced with the column definitions (for all columns) |
%pk_definition% replaced with the primary key definition. |
The placeholder %pk_definition%
can be used if the DBMS does not support defining a primary
key using an ALTER TABLE on the created table. If this placeholder is present in the template and the table
has a primary key, the placeholder will replaced with an appropriate PRIMARY KEY (col1, ...)
expression. Note that the template must not contain the needed
comma for the PRIMARY KEY
. The comma will be added by SQL Workbench/J if a primary key
is defined. If the table has no primary key, the placeholder will automatically be removed.
Default values:
.postgresql.create.table.temp=CREATE LOCAL TEMPORARY TABLE %fq_table_name% ( %columnlist% ) ON COMMIT DROP |
.oracle.create.table.globaltemp=CREATE GLOBAL TEMPORARY TABLE %fq_table_name% ( %columnlist% ) ON COMMIT DELETE ROWS |
.h2.create.table.temp=CREATE LOCAL TEMPORARY TABLE %fq_table_name% ( %columnlist% ) |
.informix_dynamic_server.create.table.temp_nolog=CREATE TEMP TABLE %fq_table_name% ( %columnlist% %pk_definition% ) WITH NO LOG |
Property: workbench.db.[dbid].constraints.systemname
Defines a regular expression to identify system generated constraint names. If a constraint name is identified as being system generated, it is treated as if no name was defined, when e.g. creating the SQL for a table. Whether or not SQL Workbench/J then generates a name for the constraint can be controlled in the options for the DbExplorer.
Default values:
oracle: ^SYS_.* |
mysql: PRIMARY |
Property: workbench.sql.sync.chunksize
Controls the number of rows that are retrieved from the target table
when running WbDataDiff
or WbCopy
with the
-syncDelete=true
parameter.
Default value: 25
SQL Workbench/J re-generates the source of a table based on the information about the table's metadata returned by the driver. In some cases the driver might not return the correct information, or not all the information that is necessary to build the correct syntax for the DBMS. In those cases, a SQL query can be configured that can use the built-in functionality of the DBMS to return a DDL statement to re-create the table.
This DBMS specific retrieval of the table source is defined by two properties in
workbench.settings
.
Property: workbench.db.[dbid].retrieve.create.table.query
This property defines the SQL query that retrieves the DDL for the table. It must be a statement that returns a result set. The statement may contain the following placeholders:
%catalog% the catalog in which the table is defined |
%schema% the schema in which the table is defined |
%table_name% the name of table |
%fq_index_name% the fully qualified name of the table (including catalog and schema) |
If the SQL returned by the DBMS includes the indexes defined for the table, the property:
workbench.db.[dbid].retrieve.create.table.index_included
has to
be set to true
.
Property: workbench.db.[dbid].retrieve.create.table.sourcecol
By default the source code is assumed to be in the first column of the result. If that is not the case this property can be used to define the column index of the result in which the table's source is available. The first column has the index 1.
The following example configures a SQL statement to retrieve the table source using MySQL's
SHOW CREATE TABLE
:
workbench.db.mysql.retrieve.create.table.query=show create table %fq_table_name% workbench.db.mysql.retrieve.create.table.sourcecol=2 workbench.db.mysql.retrieve.create.table.index_included=true
Using use Oracle's DBMS_METADATA
to retrieve the table source, is controlled through an
Oracle specific configuration property.
SQL Workbench/J re-generates the source of an index based on the information about the table's metadata returned by the driver. In some cases the driver might not return the correct information, or not all the information that is necessary to build the correct syntax for the DBMS. In those cases, a SQL query can be configured that can use the built-in functionality of the DBMS to return the DDL to recreate the index.
This DBMS specific retrieval of the index source is defined by two properties in
workbench.settings
.
Property: workbench.db.[dbid].retrieve.create.index.query
This property defines the SQL query that should be executed to retrieve the DDL to re-create the index. It must be a statement that returns a result set. The statement may contain the following placeholders:
%catalog% the catalog in which the index is defined |
%schema% the schema in which the index is defined |
%indexname% the name of the index |
%fq_index_name% the fully qualified name of the index (including catalog and schema) |
%table_name% the name of table on which the index is defined, including the catalog or schema if necessary |
%simple_table_name% the name of table on which the index is defined without the catalog or schema. |
Property: workbench.db.[dbid].retrieve.create.index.sourcecol
By default the source code is assumed to be in the first column of the result. If that is not the case this property can be used to define the column index of the result in which the table's source is available. The first column has the index 1.
If an error occurs during retrieval, SQL Workbench/J will revert to the built-in table source generation.
The following example configures the use of the function pg_get_indexdef()
to be used
workbench.db.postgresql.retrieve.create.index.query=select pg_get_indexdef('%fq_index_name%'::regclass)
Using Oracle's DBMS_METADATA
to retrieve the index source, is controlled through an
Oracle specific configuration property.
Property: workbench.gui.filter.mru.maxsize
When saving a filter to an external file, the pick list next to the filter icon will offer a drop down that contains the most recently used filter definitions. This setting will control the maximum size of that drop down.
Default value: 15