SQL Tool
Run SQL against ten relational databases through one tool — MySQL, Oracle, PostgreSQL, SQL Server, MariaDB, DB2, Informix, Derby, Firebird and Cloud Spanner — over JDBC.
The tool bundles no JDBC drivers: a vendor works iff its driver is on the server's classpath. H2, SQLite and Sybase have URL templates in the code but no driver in InTouch today, so they are deliberately not offered in the UI.
Tool ID
sql
Credential Required
Yes — JDBC database connection.
Credential Properties
| Property | Type | Default | Description |
|---|---|---|---|
type |
string (enum) | — | Required. Database vendor: mysql, mariadb, postgresql, sqlserver, oracle, db2, derby, h2, firebird, informix, spanner, sqlite, sybase |
server |
string | localhost |
Database server hostname or IP |
port |
integer | vendor default | Database port (auto-set per vendor if 0) |
database |
string | — | Database name |
login |
string | — | Username |
password |
string | — | Password |
jdbcUrl |
string | — | Full JDBC URL (overrides type/server/port/database if provided) |
properties |
object | {} |
Additional JDBC connection properties |
Default Ports
mysql: 3306, mariadb: 3306, postgresql: 5432, sqlserver: 1433, oracle: 1521, db2: 50000, firebird: 3050, informix: 9088, sybase: 5000
Operations
1. export — SELECT query to delimited file
Executes a SELECT query and writes results to a delimited file (CSV, TSV, pipe, or custom).
Properties:
| Property | Type | Default | Description |
|---|---|---|---|
statement |
string | — | Required. SQL SELECT query |
outputFile |
string | — | Required. Output file path |
outputDelimiter |
string | comma |
Delimiter: comma, tab, pipe, none, other |
customDelimiter |
string | — | Custom delimiter (when outputDelimiter is other) |
outputColumnHeader |
boolean | true |
Include column header row |
appendOutput |
boolean | false |
Append to existing file |
recordLimit |
integer | 0 |
Max records (0 = unlimited) |
Published Outputs:
- operation = "export"
- rowCount — number of rows exported
- columnCount — number of columns
- outputFile — path to output file
Progress: Logs every 10,000 rows.
2. import — Delimited file to table
Reads a delimited file and inserts rows into a database table using batched prepared statements.
Properties:
| Property | Type | Default | Description |
|---|---|---|---|
inputFile |
string | — | Required. Path to input file |
table |
string | — | Required. Target table name |
inputDelimiter |
string | comma |
Delimiter: comma, tab, pipe, other |
customInputDelimiter |
string | — | Custom delimiter |
hasColumnHeader |
boolean | true |
First row is column names (used for INSERT column list) |
batchSize |
integer | 1024 |
Rows per batch insert |
recordLimit |
integer | 0 |
Max records (0 = unlimited) |
Published Outputs:
- operation = "import"
- rowCount — rows imported
- table — target table name
- inputFile — source file path
Behavior: Uses transactions. Rolls back on error. Auto-generates column names (col1, col2...) if no header.
3. statement — Execute single DML/DDL
Executes any SQL statement: INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, etc.
Properties:
| Property | Type | Default | Description |
|---|---|---|---|
statement |
string | — | Required. SQL statement |
Published Outputs:
- operation = "statement"
- statement — the executed SQL
- updateCount — rows affected (for DML)
- rowCount — rows returned (for SELECT)
- hasResultSet — "true" or "false"
4. stream — Execute multiple statements
Executes multiple SQL statements as a single transaction. Statements come from inline text (semicolon-separated) or a file (one per line, -- comments skipped).
Properties:
| Property | Type | Default | Description |
|---|---|---|---|
statements |
string | — | Semicolon-separated SQL statements |
statementsFile |
string | — | File path containing SQL (one per line) |
One of statements or statementsFile is required.
Published Outputs:
- operation = "stream"
- statementsExecuted — count executed
- totalRowsAffected — cumulative row count
Behavior: Runs in a transaction. Rolls back on any failure. Reports which statement failed.
5. procedure — Call stored procedure
Executes a stored procedure with IN, OUT, and INOUT parameters.
Properties:
| Property | Type | Default | Description |
|---|---|---|---|
procedure |
string | — | Required. Procedure name |
procedureDatabase |
string | — | Database/catalog containing the procedure |
parameters |
array | [] |
Parameters: [{number, type, dataType, value}] |
Parameter objects:
- number (int): 1-based parameter position
- type (string): in, out, or inout
- dataType (int): JDBC SQL type constant (default: VARCHAR)
- value (string): Input value
Published Outputs:
- operation = "procedure"
- procedure — procedure name
- param_N — value of each OUT/INOUT parameter
- rowCount — rows in result set (if any)
Killable
Yes — sets killed flag and disconnects.
Chaining Patterns
- Export → File Management — export data, then copy/move the output file
- Export → FTP — export data, then upload to remote server
- Export → Email — export data, then email as attachment
- Import ← FTP — download file from FTP, then import into database
- Statement → Export — run DDL to create temp table, then export from it
- SQL → Excel — export to CSV, then convert to Excel
Error Handling
- Connection failures return FAILED with the JDBC error message
- Import rolls back the entire transaction on error
- Stream rolls back and reports which statement number failed
- Cancellation (kill) disconnects immediately
Publishes
The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.
columnCounthasResultSetinputFileoperationoutputFileprocedurerowCountstatementstatementsExecutedtabletotalRowsAffectedupdateCount