jueves, 25 de octubre de 2012

SQL(Oracel) - Querys de utilidad para administración de BD

-Consulta que muestra si la base de datos esta abierta:
          select status from v$instance

-Vista que muestra los parámetros generales de Oracle:
          select * from v$system_parameter

-Ver la versión de Oracle
     select value
          from v$system_parameter
          where name = 'compatible'

-Ver el nombre de la base de datos:
      select value
         from v$system_parameter
         where name = 'db_name'

- Ver las conexiones actuales a oracle
       select osuser, username, machine, program
          from v$session
          order by osuser

 - Ver el número de conexiones actuales a Oracle agrupado por aplicación que realiza la conexión:
          select program Aplicacion, count(program) Numero_Sesiones
             from v$session
             group by program 
             order by Numero_Sesiones desc

SQL(Oracle) - Devolver varias filas concatenadas en una columna


El siguiente query nos sirve para cuando tenemos varias filas pero solo queres una fila y que nos regrese el resultado de todas las filas concatendas en una columna, es decir si tenemos los siguientes datos:

Pais Ciudad
1 Ciudad 1
1 Ciudad 2
1 Ciudad 3
2 Ciudad 4
2 Ciudad 5
2 Ciudad 6

Al ejecutar el siguiente Query:

select   Pais,   rtrim (xmlagg (xmlelement (e,ciudad || ',')).extract ('//text()'), ',')  Ciudades
from  tablaPais
group by Pais

nos da lo siguiente:


Pais Ciudades
1 Ciudad 1,Ciudad 2,Ciudad3
2 Ciudad 3,Ciudad 4,Ciudad 5

como esta agrupado por Pais nos devuelve dos filas una con el pais 1 concatenando en la columna Ciudades el contenido de todas las ciudades del pais 1, de igual forma pasa con el pais 2.


SQL(Oracle) - Fecha de restauración del Base de Datos


El Siguiente Escript sirve para ver a que fecha fue restaurada una base de daatos:

select to_char(max(fecha),'dd/MM/yyyy HH24:MI:SS') from <nombreTabla>;

 Cortesia (CJ)

SQL(oracle) - Saber que tablas tienen un campo determinado


El siguiente query devuelve las tablas que contienen la columna con el nombre que pongamos en el where column_name, el script es el siguiente:

select owner, table_name,column_name Nombre
     from all_tab_columns
     where column_name ='nombre de la columna a buscar'
      order by owner, table_name, column_name;