jueves, 27 de febrero de 2014

Espacio .... La ultima frontera

buenas noches , como os comente en el post anterior estaba haciendo un script de tamaño de tablespaces , os lo dejo aqui , tiene sus fallos como por ejemplo no tener en cuenta los tablespaces en autoextend

en cuanto tenga  un momentito lo modifico , no me acuerdo de donde lo saque , me parece que es un refrito de varios scripts , bueno aqui os lo dejo

-- -----------------------------------------------------------------------------------
-- File Name    : Moni_tablespaces
-- Author       : EOT
-- Description  : Nos realiza unlistado de los tamaños de los tablespaces
-- Requirements : Access to the V$ views.
-- Call Syntax  : @Moni_tablespaces.sql
-- Last Modified: 21/08/2012
-- -----------------------------------------------------------------------------------

SET LINESIZE 145
SET PAGESIZE 9999
SET VERIFY   OFF

COLUMN tablespace_name  FORMAT A30              HEADING 'Tablespace Name'
COLUMN total            FORMAT 99,999,999,999   HEADING 'Mb |Total'
COLUMN libres           FORMAT 99,999,999,999   HEADING 'Mb | Libres'
COLUMN ocupados         FORMAT 999.99           HEADING 'Usado %'

SELECT   a.tablespace_name , (a.BYTES / 1024 / 1024) total,
            (b.BYTES / 1024 / 1024) libres,
            ROUND (((a.BYTES - b.BYTES) / a.BYTES) * 100, 2) ocupados
       FROM (SELECT   tablespace_name, SUM (BYTES) BYTES FROM dba_data_files
             GROUP BY tablespace_name) a,
            (SELECT   tablespace_name, SUM (BYTES) BYTES, MAX (BYTES) largest
                 FROM dba_free_space
             GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
ORDER BY 4 Desc;

Enrique Ortiz
El destino favorece a los niños, a los locos y a las naves llamadas Enterprise

Variables SQLPLUS

  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

select to_char(sysdate,'DD-MM-YYYY HH24-MI') v_fecha from dual;
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 .

Enrique Ortiz
Nunca me he fiado de los Klingons y nunca lo haré.

jueves, 6 de febrero de 2014

How Find ORACLE_HOME


Metodo sencillo para desde sqlplus obtener el path de ORACLE_HOME:

SQL> var OHM varchar2(100);
SQL> EXEC dbms_system.get_env('ORACLE_HOME', :OHM);

PL/SQL procedure successfully completed.

SQL> PRINT OHM

OHM
--------------------------------------------------------------------------------
/u01/app/oracle/product/11.1.0/db_1


Fuente: http://nm-mathan.blogspot.fr/

Antonio Redondo
Oracle DBA