3ENGINE

Programación y otros cachivaches

Etiqueta: SQL

Página 3/4

Tecnologia

Convertir un datetime a cadena formateada en SQL Server


Si necesitas mostrar en un select una cadena de tipo datetime y quieres cambiar su formato, puedes hacer servir la función CONVERT para SQL Server.

CONVERT(data_type(length),data_to_be_converted,style)

Parámetros style aceptados:

ID EstiloFormato Estilo
100 o 0mon dd yyyy hh:miAM (o PM)
101mm/dd/yy
102yy.mm.dd
103dd/mm/yy
104dd.mm.yy
105dd-mm-yy
106dd mon yy
107Mon dd, yy
108hh:mm:ss
109 o 9mon dd yyyy hh:mi:ss:mmmAM (o PM)
110mm-dd-yy
111yy/mm/dd
112yymmdd
113 o 13dd mon yyyy hh:mm:ss:mmm(24h)
114hh:mi:ss:mmm(24h)
120 o 20yyyy-mm-dd hh:mi:ss(24h)
121 o 21yyyy-mm-dd hh:mi:ss.mmm(24h)
126yyyy-mm-ddThh:mm:ss.mmm(sin espacios)
130dd mon yyyy hh:mi:ss:mmmAM
131dd/mm/yy hh:mi:ss:mmmAM

Ejemplo:

SELECT CONVERT(VARCHAR(24),GETDATE(),113) 

Referencias:
What are the valid styles for converting datetime to string?
SQL Server CONVERT() Function
How to convert from string to datetime?




Tecnologia

Activar y desactivar todas las restricciones de tabla en Oracle para eliminar datos


Si necesitas eliminar todos los datos de una base de datos, y no tienes ganas de pensar en el orden de los «delete from tablaXYS» para cumplir con las restricciones de integridad. Lo mas rápido es desactivar las foreign keys, eliminar todas las tablas y dejar otra vez las foreign keys como estaban.

Activar y desactivar todas las restricciones de tabla en Oracle

Deshabilitar todas las foreign keys de todas las tablas:

BEGIN  
  FOR c IN
  (SELECT c.owner, c.table_name, c.constraint_name    
   FROM user_constraints c, user_tables t    
   WHERE c.table_name = t.table_name    
   AND c.status = 'ENABLED'
   AND c.CONSTRAINT_TYPE = 'R'     
   ORDER BY c.constraint_type DESC)   
LOOP     
  dbms_utility.exec_ddl_statement('alter table ' || c.owner || 
  '.' || c.table_name || 'disable constraint ' || c.constraint_name);   
END LOOP; 
END;

Volver a habilitar todas las foreign keys de todas las tablas:

BEGIN  
  FOR c IN
  (SELECT c.owner, c.table_name, c.constraint_name
   FROM user_constraints c, user_tables t
   WHERE c.table_name = t.table_name
   AND c.status = 'DISABLED'
   AND c.CONSTRAINT_TYPE = 'R'    
   ORDER BY c.constraint_type)
LOOP
  dbms_utility.exec_ddl_statement('alter table ' || c.owner || 
   '.' || c.table_name || ' enable constraint ' || c.constraint_name);   
END LOOP; 
END;

Recursos
Disable all table constraints in Oracle




Tecnologia

line-feed o carriage-return en Oracle


En Oracle, para añadir a un texto un line-feed o un carriage-return:

  SELECT '"' || chr(10) || '"' FROM DUAL;
  SELECT '"' || chr(13) || '"' FROM DUAL;

De modo que para buscar, por ejemplo, un texto que contenga un line-feed:

  SELECT * FROM MITABLA WHERE MICAMPO LIKE '%'||chr(10)||'%';



Tecnologia

Obtener lista y uso de índices de una tabla ORACLE


Para averiguar la lista de indices asociados a una tabla:

select *
from all_indexes
where table_name = 'NOMBRE_TABLA'

Para averiguar si se hace uso de un índice en una consulta, activar el monitoreo:

ALTER INDEX NOMBRE_INDICE MONITORING USAGE;

Despues de realizar la consulta, para averiguar si se ha utilizado:

select *
from v$object_usage
where table_name = 'NOMBRE_TABLA'

Para desactivar el monitoreo:

ALTER INDEX NOMBRE_INDICE NOMONITORING USAGE;

Mas información en este enlace