Estaba yo intentando hacer un script de espacio de tablespaces e intenté poner lo que todos vosostros pondríais en la cabecera , el nombre de la base de datos , el dia . Despues de varios intentos con declares y bloques pl/sql , descubri una cosita que me ha parecido interesante , existe una forma de crear variables dentro de sqlplus , la cuestion es crear una columna utilizando el formato new_value del tipo
column <nombre_campo> new_value <nombre_variable>
en mi caso
column v_fecha new_value var_fecha
entonces puedes hacer sql del tipo :
select to_char(sysdate,'DD-MM-YYYY HH24-MI') v_fecha from dual;
y luego utilizar este campo como si fuera una variable de sql , osease &v_fecha
en mi caso lo utilizo en un report html ( sql plus puede hacer reports html ) de la siguente manera:
column v_fecha new_value var_fecha
column instance_name new_value var_db
column version new_value var_version
column instance_name new_value var_db
column version new_value var_version
select to_char(sysdate,'DD-MM-YYYY HH24-MI') v_fecha from dual;
select instance_name ,version from v$instance;
select instance_name ,version from v$instance;
para visualizarlas utilizo el prompt
prompt <center>Database &var_db<center>
<div class="subtitle1">Oracle Version &var_version</div>
<div class="subtitle2">&var_fecha</div></CENTER>
es recomendable cuando hagais pruebas con las variables tener los settings de "set echo on" y "set termout on", dado que si os equivocais en el nombre o no le dais valor a las variables sqlplus os lo pedirá , si no teneis estos dos settings lo unico que hará sqlplus es esperarse sin sacar nada por pantalla, no os tengo que explicar lo estresante que es contenplar una pantalla en negro sin saber que se está ejecutando .<div class="subtitle1">Oracle Version &var_version</div>
<div class="subtitle2">&var_fecha</div></CENTER>
Enrique Ortiz
Nunca me he fiado de los Klingons y nunca lo haré.
Este comentario ha sido eliminado por el autor.
ResponderEliminarLas dos consultas para obtener fecha y hora se pueden hacer a la vez:
ResponderEliminarSQL> select instance_name ,version, to_char(sysdate,'DD-MM-YYYY HH24-MI') from v$instance;
INSTANCE_NAME VERSION TO_CHAR(SYSDATE,
---------------- ----------------- ----------------
SID 11.1.0.7.0 28-02-2014 16-17
Y ademas, te falta un INTO ;)
al utilizar las variables no hace falta into , solo si utilizas pl/sql
Eliminarcolumn demo new_var var_demo
select "Holakease" var_demo from dual;