Saltar al contenido

Generar HTML con SQLPLUS –M MARKUP

Generar HTML

Con este comando podemos generar html directamente desde nuestra consulta o script (soporta HTML 4.0).

Este es su formato:
HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}]
[SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]

SQL*Plus generara páginas HTML con las etiquetas <HTML> y <BODY>. Estas etiquetas se cierran cuando salimos de SQL*Plus o cerramos con SPOOL OFF.
Si ejecutamos consultas también incluirá por defecto <TABLE>, <TR> y <TD>, formateando las columnas que resultan de ésta.

Creamos un fichero de este tipo.
spool prueba.html;
SELECT distinct object_name, PACKAGE_NAME
FROM all_arguments
WHERE package_name = ‘STANDARD’
AND object_name like ‘C%’
order by object_name;

spool off;

Para lanzarlo sqlplus -S -M «HTML ON TABLE ‘BORDER=»2″‘» usuario/pass @prueba.sql > prueba.html

También podemos darle todo el tipo de formato que queramos dentro del fichero sql.
Sólo tenemos que poner las etiquetas y el texto deberá ir entre comillas, de esta manera:

HEAD ‘<TITLE>HTML CON SQLPLUS</TITLE>’ –
O meterle una hoja de estilos:

<STYLE type=»text/css»> –
<!– BODY {background: #FFFFC6} –> –
</STYLE>’ –

Veamos como podría quedar prueba.sql
SET AUTOTRACE OFF
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING ON
SET PAGESIZE 100
SET TRIMOUT   ON
SET ECHO OFF

SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP ON –
HEAD ‘<TITLE>HTML CON SQLPLUS</TITLE>’ –
BODY TEXT=»black» bgcolor=»Yellow»‘ –
TABLE ‘WIDTH=»90%» BORDER=»4″‘

COLUMN COMMENTS FORMAT A50
COLUMN column_name FORMAT A50
COLUMN Data_Type FORMAT A50
COLUMN DATA_DEFAULT FORMAT A20

spool prueba.html;

PROMPT
PROMPT FUNCIONES

SELECT distinct object_name, PACKAGE_NAME
FROM all_arguments
WHERE package_name = ‘STANDARD’
AND object_name like ‘C%’
order by object_name;

spool off;
/
exit;

Esto genera un prueba.html: