isql(1) unixODBC manual pages isql(1)

isql, iusql - unixODBC interactive SQL command-line tools

isql DSN [USER [PASSWORD]] [options]

isql and iusql are command-line tools allowing users to execute SQL interactively or in batches.

The tools provide several useful features, including an option to generate output wrapped in an HTML table.

iusql is the same as isql but includes built-in Unicode support. Some data sources only work with iusql.

DSN
The Data Source Name (DSN) used to connect to the SQL database. unixODBC looks for the specified DSN in /etc/odbc.ini and $HOME/.odbc.ini, with the latter taking precedence.

When searching the configuration files, unixODBC looks for a bare name. If the DSN begins with a semicolon, it is treated as a connection string. The connection string can contain a DSN and/or other semicolon-separated parameters.

USER
Specifies the database user or role under which the connection should be made.

This parameter overrides any UID specified in the data source configuration files.

PASSWORD
Password required to access the database for the specified USER.

This parameter overrides any PASSWORD specified in the data source configuration files.

-b
Run 'isql' in non-interactive batch mode. In this mode, 'isql' processes from standard input, expecting one SQL command per line.

-dDELIMITER
Delimit columns with the specified delimiter.

-xHEX
Delimit columns with the character represented in hexadecimal by HEX. The hexadecimal code must be in the format 0xNN (e.g. 0x09 for the TAB character).

-w
Format the result as an HTML table.

-c
Output the names of the columns on the first row. This option can only be used with the -d or -x options.

-mNUM
Limit the column display width to NUM characters.

-lLOCALE
Set the character locale to LOCALE.

-q
Wrap the character fields in double quotes.

-3
Use calls from ODBC version 3.

-n
Process multiple lines of SQL, terminated with the GO command.

-e
Use SQLExecDirect instead of Prepare.

-k
Use SQLDriverConnect.

-v
Enable verbose mode, fully describing all errors. This option is useful for debugging.

--version
Display the program version.

-LNUM
Set the maximum number of characters displayed from a character field to NUM. The default value is 300 characters.

This section briefly describes some isql and iusql run-time commands.

help

List all tables in the database.

help table

List all columns in the table.

help help

List all help options.

A bare DSN:

$ iusql WebDB MyID MyPWD -w -b < My.sql
    

Connects to the WebDB DSN as user MyID with password MyPWD, then executes the commands in the My.sql file and returns the results wrapped in an HTML table.

Each line in My.sql must only contain one SQL command, except for the last line, which must be blank (unless the -n option is specified).

A DSN in a connection string:

Note the leading semicolon on the connection string.

$ iusql ";DSN=WebDB" MyID MyPWD -w -b < My.sql
    

Options in the DSN may be overridden in the connection string:

$ iusql ";DSN=WebDB;Driver=PostgreSQL ODBC;UID=MyID;PASSWORD=secret;Debug=1;CommLog=1" -v
    

A string DSN:

A string DSN may be provided in its entirety, with no file DSN reference at all:

$ iusql ";Driver=PostgreSQL Unicode;UID=MyID;PASSWORD=secret" -v
    

Cryptic error messages

Re-run isql or iusql with the -v flag to get more information from errors, and/or enable Trace mode in odbcinst.ini.

Missing driver definition

Check that the driver name specified by the Driver entry in the odbc.ini data-source definition is present in odbcinst.ini and exactly matches the odbcinst.ini [section name].

Unloadable or incompatible driver

If the ODBC driver is properly specified for the data source, it is possible that the driver is not loadable. Check for mix-ups between Unicode and ANSI drivers, and verify the driver paths in the odbcinst.ini [section name].

Unicode data sources with ANSI clients

Some data sources are Unicode-only and require the use of iusql. If isql reports

  [IM002][unixODBC][Driver Manager]Data source name not found and no default driver specified
  [ISQL]ERROR: Could not SQLConnect
    
but the data source and driver required are listed by
  odbcinst -q -d
    
and
  odbcinst -q -s
    
then try iusql.

/etc/odbc.ini
Configuration file containing system-wide Data Source Name (DSN) definitions. See odbc.ini(5) for more information.

$HOME/.odbc.ini

Configuration file containing user-specific Data Source Name (DSN) definitions. See odbc.ini(5) for more information.

unixODBC(7), odbcinst(1), odbc.ini(5)

"The unixODBC Administrator Manual (HTML)"

The authors of unixODBC are Peter Harvey <pharvey@codebydesign.com> and Nick Gorham <nick@lurcher.org>.

For a full list of contributors, refer to the AUTHORS file.

unixODBC is licensed under the GNU Lesser General Public License. For details about the license, see the COPYING file.
Thu 14 Jan 2021 version 2.3.11