SQL*Plus 256 Colours in terminal

Português/English

 

As I use a lot SQL*Plus – and I like it 😉 – sometimes I try to use some interesting tips to make my outputs more readable and interesting.

If you use a terminal emulator (like putty in Windows or most terminal emulators in Unix/Linux/Mac environments), you know it has color capabilities. And maybe you probably know that SQL*Plus also can access this capabilities, as explained here and here.

I have been using colours is scripts for some time, but just the 8-color capability. But it happens that some terminals have instead the capability to show up to 256 different colours, which is cool!

The fish.sql script from Tanel Poder (second link above) exploits very well these capability. Stay tuned!

Here I just provide a script that shows all that 256 colours as background and foreground, to ease your job of picking which ones you want to use in your scripts.

$cat term_256colors.sql
/* Show all the 256 colors (if the terminal have this capability) */

col color for a200

prompt
prompt Background colors. USAGE: chr(27) || '[48;5;' || number
define x=48
select
	'id=' || to_char(4 * (level-1) + 1,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 1 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 2,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 2 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 3,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 3 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 4,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 4 ) || 'm' || ' COLOR ' || chr(27) || '[0m' color
from dual connect by level <= 256/4;

prompt
prompt Foreground colors USAGE: chr(27) || '[38;5;' || number
define x=38
select
	'id=' || to_char(4 * (level-1) + 1,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 1 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 2,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 2 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 3,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 3 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 4,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 4 ) || 'm' || ' COLOR ' || chr(27) || '[0m' color
from dual connect by level <= 256/4;

Of course it will only show the colours if you are using a terminal that has this capability.

Here you have an excerpt of the output:

Screen Shot 2018-03-20 at 14.39.18

Screen Shot 2018-03-20 at 14.39.42

Soon you will se a nice script that I created using such capability.

That’s it! I hope you enjoy 😉 .


256 Cores no SQL*Plus usando um terminal

Português/English

Como eu uso bastante o SQL*Plus – e gosto 😉 – às vezes tento usar algumas dicas interessantes para tornar meus resultados mais legíveis e interessantes.

Se você usa um emulador de terminal (como o putty no Windows ou a maioria dos emuladores de terminal em Unix/Linux/Mac), você sabe que ele pode mostrar cores. E você também provavelmente sabe que o SQL*Plus pode também usar essa capacidade, como demonstrado aqui e aqui.

Eu tenho usado há algum tempo cores em scripts, mas apenas a capacidade de 8 cores. Mas acontece que alguns terminais têm a capacidade de mostrar 256 cores ao invés de 8, o que é bem legal!

O script fish.sql do Tanel Poder (segundo link acima) explora muito bem esse recurso.

Aqui eu demonstro um script que mostra as 256 cores de fundo e de frente, para facilitar o seu trabalho de escolher as que deseja utilizar nos seus scripts.

$cat term_256colors.sql
/* Show all the 256 colors (if the terminal have this capability) */

col color for a200

prompt
prompt Background colors. USAGE: chr(27) || '[48;5;' || number
define x=48
select
	'id=' || to_char(4 * (level-1) + 1,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 1 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 2,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 2 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 3,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 3 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 4,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 4 ) || 'm' || ' COLOR ' || chr(27) || '[0m' color
from dual connect by level <= 256/4;

prompt
prompt Foreground colors USAGE: chr(27) || '[38;5;' || number
define x=38
select
	'id=' || to_char(4 * (level-1) + 1,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 1 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 2,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 2 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 3,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 3 ) || 'm' || ' COLOR ' || chr(27) || '[0m' || '    ' ||
	'id=' || to_char(4 * (level-1) + 4,'999') || 
	chr(27) || '[&x.;5;' || ( 4 * (level-1) + 4 ) || 'm' || ' COLOR ' || chr(27) || '[0m' color
from dual connect by level <= 256/4;

Claro que as cores só vão aparecer se você utilizar um terminal que tem essa capacidade.

Aqui você pode ver um pedaço do resultado:

Screen Shot 2018-03-20 at 14.39.18

Screen Shot 2018-03-20 at 14.39.42

Em breve você vai ver por aqui um script bem legal que utiliza estes recursos. Fique ligado!

É isso! Espero que gostem 😉 .

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s