Enter SDSQL
We did exactly that. The guts of SQL Developer's sqlplus support married with a command line interface. The result is a 10mb download soon with native installers. That 10mb includes everything you need including the jdbc driver. Now while replicating sqlplus is interesting and will greatly improve our support for it, it's well boring. Writing code that does nothing more than mimic other code isn't fun. So we are adding lots and lots of new things. The first things you'll notice using sdsql is the arrow keys work, there's history, there's color these and more are just core things we added. There's also entirely new commands being added and the easiest way to see some of these new things is to use the help command. The non-sqlplus command are highlighted. Give them a try.
Help |
Here's something added for Bryn which is pretty much obvious yet never been in sqlplus. I'm in sqlplus and want to change directory to a new path and run some scripts. In sqlplus, you either exit, cd, and start back up or path all the scripts like @my/other/path/script.sql
Now there's a built in "cd" command.
Now there's a built in "cd" command.
@krisrice @thatjeffsmith More generally on SQL*Plus ++ a "cd" command (implies "pwd" too) to allow ad hoc script running with less typing.
— Bryn Llewellyn (@BrynLite) November 29, 2014
Here's a quick example. I start the tool in one path , raptor_common, then need to run a script in the sub directory. A quick cd examples then @color.sql. All host operations are now in that path. That means running a script, spooling a file, host commands, ...
KLRICE@ORCL>┌─[14:29:56]─[klrice]─[kriss-MacBook-Pro-2]:~/workspace/raptor_common$
└─>./sdsql klrice/klrice@localhost/orcl
sdsql: Release 4.1.0 Beta on Thu Dec 11 14:30:04 2014
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
KLRICE@ORCL>host pwd
/Users/klrice/workspace/raptor_common
KLRICE@ORCL>host ls
color examples login.sql sdsql test.sql
KLRICE@ORCL>cd examples <<<<<<< I can just cd to the new path
KLRICE@ORCL>host pwd <<<<<<< I can do hosty things here
/Users/klrice/workspace/raptor_common/examples
KLRICE@ORCL>host ls <<<<<<< Then run host command in that path
color.sql ctas.sql ddl_emp.sql
KLRICE@ORCL>@color <<<<<<< Then run sql from it
Colors
This is red,bold,underline
This is negative
This is faint
This is my bold
This is italic
This is underline
This is blink_slow
This is blink_fast
This is conceal
This is black
This is green
This is yellow
This is blue
This is magenta
This is cyan
This is white
This is bg_red
This is bg_black
This is bg_green
This is bg_yellow
This is bg_blue
This is bg_magenta
This is bg_cyan
This is bg_white
This is bg_red
KLRICE@ORCL>host cat color.sql
select '@|red,bold,underline This is red,bold,underline|@' "@|red Colors|@" from dual
union all
select '@|NEGATIVE_ON This is negative|@' from dual
union all
select '@|INTENSITY_FAINT This is faint|@' from dual
union all
select '@|INTENSITY_BOLD This is my bold|@' from dual
union all
select '@|ITALIC This is italic|@' from dual
union all
select '@|UNDERLINE This is underline|@' from dual
union all
select '@|BLINK_SLOW This is blink_slow|@' from dual
union all
select '@|BLINK_FAST This is blink_fast|@' from dual
union all
select '@|CONCEAL_ON This is conceal|@' from dual
union all
select '@|black This is black|@' from dual
union all
select '@|green This is green|@' from dual
union all
select '@|yellow This is yellow|@' from dual
union all
select '@|blue This is blue|@' from dual
union all
select '@|magenta This is magenta|@' from dual
union all
select '@|cyan This is cyan|@' from dual
union all
select '@|white This is white|@' from dual
union all
select '@|bg_red This is bg_red|@' from dual
union all
select '@|bg_black This is bg_black|@' from dual
union all
select '@|bg_green This is bg_green|@' from dual
union all
select '@|bg_yellow This is bg_yellow|@' from dual
union all
select '@|bg_blue This is bg_blue|@' from dual
union all
select '@|bg_magenta This is bg_magenta|@' from dual
union all
select '@|bg_cyan This is bg_cyan|@' from dual
union all
select '@|bg_white This is bg_white|@' from dual
union all
select '@|bg_red This is bg_red|@' from dual
If you want better output try the script and see why it's named color.sql