Henplus

HenPlus is a SQL shell written in Java that works for any database that offers JDBC support.
It supports:
* Any JDBC aware database.
* Has context sensitive command line completion for commands and tables / columns / variables within SQL-commands.
* Multiple open connection-sessions can be handled in parallel. You can just switch between them. So you can be connected to different databases to experiment with the same statement in all of them, for example.
* All JDBC-Urls of opened sessions are stored for later command line completion in the connect command.
* Command line history just like in the bash (with cursor-up/down, CTRL-R, ...)
* A describe command for database tables, that work all JDBC-Drivers that unveil the appropriate MetaData (Oracle, PostgreSQL, MySQL, DB2...)
* supports variables that are expanded like shell variables with $VARIABLENAME or ${VARIABLENAME} (with completion of their names, just like in bash)
* Dumping/Loading files across databases
* Supports several built-in commands (start, @, @@, spool) and syntax from the Oracle SQL-plus utility (like the single '/' on a line to close a statement). Most Oracle SQL-plus scripts will run directly, so its simple to switch to HenPlus.
* Allows a per-project storage of the commandline history, variables, plugins and connections.
* Allows to add your own plugins that behave just like the built-in commands.