Buscar este blog
jueves, 30 de mayo de 2019
Query para dividir un registro con fecha desde y hasta en tantos como meses ocupe
SELECT *
MOD(CAST((TABLANUMEROSAUX.numero - 2) +
MES_DESDE as numeric),
12) + 1 MES_FACTURAR,
ANYO_DESDE +
CEIL(CAST((MES_DESDE +
TABLANUMEROSAUX.numero - 1) / 12 as
numeric)) - 1 ANYO_FACTURAR
FROM TABLA_CON_REGISTROS FAC
JOIN TABLANUMEROSAUX on TABLANUMEROSAUX.numero <=
(SELECT ((ANYO_HASTA -
ANYO_DESDE) * 12) +
MES_HASTA -
MES_DESDE + 1)
TABLA_CON_REGISTROS, TABLA CON LOS CAMPOS FECHA DESDE Y FECHA HASTA ENTRO OTROS.
TABLANUMEROSAUX, TABLA CON CAMPO NUMERO, SECUENCIAL, 1 , 2,3,4,5,6,7,8...
domingo, 27 de enero de 2019
Instalar oracle 12c en docker
Buenas, siguiendo esta dirección:
oraclespin.com/2018/03/30/docker-installation-of-oracle-database-12c-on-mac/
docker pull absolutapps/oracle-12c-ee
docker run -d --name oracle-12cR1-ee -p 49160:22 -p 49161:1521 --privileged absolutapps/oracle-12c-ee
docker logs -f oracle-12cR1-ee
docker start oracle-12cR1-ee (If not started)
docker exec -it oracle-12cR1-ee /bin/bash
echo $ORACLE_SID
sqlplus system/oracle@//localhost:1521/orcl
docker ps
oraclespin.com/2018/03/30/docker-installation-of-oracle-database-12c-on-mac/
docker pull absolutapps/oracle-12c-ee
docker run -d --name oracle-12cR1-ee -p 49160:22 -p 49161:1521 --privileged absolutapps/oracle-12c-ee
docker logs -f oracle-12cR1-ee
docker start oracle-12cR1-ee (If not started)
docker exec -it oracle-12cR1-ee /bin/bash
echo $ORACLE_SID
sqlplus system/oracle@//localhost:1521/orcl
docker ps
jueves, 24 de enero de 2019
CONSULTAS INTERESANTES
/*CONSULTAS INTERESANTES**/
/*VER EL CONTADOR DE UN DETERMINADO CAMPO POR MES Y AÑO*/
select count (*) as contador,
EXTRACT(MONTH FROM CREATION_TIME) as mes,
EXTRACT(YEAR FROM CREATION_TIME) as anio
FROM USUARIO p
WHERE id>1 AND BORRADO=0
GROUP BY EXTRACT(YEAR FROM CREATION_TIME),EXTRACT(MONTH FROM CREATION_TIME)
ORDER BY anio,mes ASC;
GRANT SELECT, insert, update, delete ON ESQUEMA.XXX to R_ROL_LE;
/*CALCULAR EL VALOR MAXIMO DE UN CAMPO DE LAS TABLAS INDICADAS**/
(SELECT MAX(ID1)+1 FROM (
SELECT MAX(ID) "ID1" FROM USUARIO
UNION
SELECT MAX(ID) FROM UNIDADFISICA))
/**Crear tablespace de datos e indices**/
CREATE TABLESPACE DATOS_xxx datafile 'xxx_datafile.dbf' size 20M AUTOEXTEND ON;
CREATE TABLESPACE IDEX_xxx datafile 'xxx_index_datafile.dbf' size 20M AUTOEXTEND ON;
/**1) Recuperar fechas superiores a 17/02/2003 sin contar los fines de semanas.*/
select fecha
from (
select distinct trunc(CREATION_TIME) fecha
from USUARIO
where trunc(CREATION_TIME) > to_date('17/02/2007','dd/mm/yyyy')
and to_number(to_char(CREATION_TIME,'d')) < 6
order by trunc(CREATION_TIME) desc
)
/**2)Sumar 5 días a la fecha dada.**/
select to_date(sysdate)+5 from dual;
/*devolver en un campo valores de 3 campos**/
SELECT O.*,'NOMBRE-' || to_char(CAL.GRUPO)||to_char('-')||SUBSTR(TO_CHAR(CAL.ANO),3)||
CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) < 2
THEN '00'||TO_CHAR(CAL.CODCALIDAD)
END ||
CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) >1 AND LENGTH(TO_CHAR(CAL.CODCALIDAD))<3 p=""> " THEN '0'||TO_CHAR(CAL.CODCALIDAD) 3>
END|| "+
CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) >2
THEN TO_CHAR(CAL.CODCALIDAD)
END
AS CERTIFICADO FROM T o
JOIN L t on o.codl=t.codl
JOIN PO a on t.costact=a.id
JOIN G cal on cal.IDG=a.id
WHERE o.coddar IN (?1)
AND t.fecha between ?2 and ?3
ORDER BY t.fecha asc,o.orden2 asc,o.orden asc
Si queremos saber cuales son las sentencias a ejecutar para poner a disabled nuestras constraint, ejecuta:
select 'ALTER TABLE '||substr(c.table_name,1,35)|| ' DISABLE CONSTRAINT '||constraint_name||';'
from user_constraints c, user_tables u where c.table_name = u.table_name;
Si queremos saber cuales son las sentencias a ejecutar para poner a enabled nuestras constraint, ejecuta:
select 'ALTER TABLE '||substr(c.table_name,1,35)|| ' ENABLE CONSTRAINT '||constraint_name||' ;' from user_constraints c, user_tables u where c.table_name = u.table_name;
/*Con la que obtendremos la tabla y el número de registros de dicha tabla.**/
SELECT * FROM ( SELECT TABLE_NAME, to_number( extractvalue( xmltype( dbms_xmlgen.getxml('select count(*) c from '||TABLE_NAME)) ,'/ROWSET/ROW/C'))
COUNT FROM user_tables ORDER BY TABLE_NAME ) c ORDER BY COUNT
Hay un parámetro que te dice cuado hay que hacer un rebuild, después de hacer muxos insert en una tabla.
Blevel, si un índice compruebo este parámetro si es mayor que 4 hacer rebuild
Select Blevel from user_indexes
EXEC dbms_stats.gather_table_stats ('AA','USUARIO')
/*VER EL CONTADOR DE UN DETERMINADO CAMPO POR MES Y AÑO*/
select count (*) as contador,
EXTRACT(MONTH FROM CREATION_TIME) as mes,
EXTRACT(YEAR FROM CREATION_TIME) as anio
FROM USUARIO p
WHERE id>1 AND BORRADO=0
GROUP BY EXTRACT(YEAR FROM CREATION_TIME),EXTRACT(MONTH FROM CREATION_TIME)
ORDER BY anio,mes ASC;
GRANT SELECT, insert, update, delete ON ESQUEMA.XXX to R_ROL_LE;
/*CALCULAR EL VALOR MAXIMO DE UN CAMPO DE LAS TABLAS INDICADAS**/
(SELECT MAX(ID1)+1 FROM (
SELECT MAX(ID) "ID1" FROM USUARIO
UNION
SELECT MAX(ID) FROM UNIDADFISICA))
/**Crear tablespace de datos e indices**/
CREATE TABLESPACE DATOS_xxx datafile 'xxx_datafile.dbf' size 20M AUTOEXTEND ON;
CREATE TABLESPACE IDEX_xxx datafile 'xxx_index_datafile.dbf' size 20M AUTOEXTEND ON;
/**1) Recuperar fechas superiores a 17/02/2003 sin contar los fines de semanas.*/
select fecha
from (
select distinct trunc(CREATION_TIME) fecha
from USUARIO
where trunc(CREATION_TIME) > to_date('17/02/2007','dd/mm/yyyy')
and to_number(to_char(CREATION_TIME,'d')) < 6
order by trunc(CREATION_TIME) desc
)
/**2)Sumar 5 días a la fecha dada.**/
select to_date(sysdate)+5 from dual;
/*devolver en un campo valores de 3 campos**/
SELECT O.*,'NOMBRE-' || to_char(CAL.GRUPO)||to_char('-')||SUBSTR(TO_CHAR(CAL.ANO),3)||
CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) < 2
THEN '00'||TO_CHAR(CAL.CODCALIDAD)
END ||
CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) >1 AND LENGTH(TO_CHAR(CAL.CODCALIDAD))<3 p=""> " THEN '0'||TO_CHAR(CAL.CODCALIDAD) 3>
END|| "+
CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) >2
THEN TO_CHAR(CAL.CODCALIDAD)
END
AS CERTIFICADO FROM T o
JOIN L t on o.codl=t.codl
JOIN PO a on t.costact=a.id
JOIN G cal on cal.IDG=a.id
WHERE o.coddar IN (?1)
AND t.fecha between ?2 and ?3
ORDER BY t.fecha asc,o.orden2 asc,o.orden asc
Si queremos saber cuales son las sentencias a ejecutar para poner a disabled nuestras constraint, ejecuta:
select 'ALTER TABLE '||substr(c.table_name,1,35)|| ' DISABLE CONSTRAINT '||constraint_name||';'
from user_constraints c, user_tables u where c.table_name = u.table_name;
Si queremos saber cuales son las sentencias a ejecutar para poner a enabled nuestras constraint, ejecuta:
select 'ALTER TABLE '||substr(c.table_name,1,35)|| ' ENABLE CONSTRAINT '||constraint_name||' ;' from user_constraints c, user_tables u where c.table_name = u.table_name;
/*Con la que obtendremos la tabla y el número de registros de dicha tabla.**/
SELECT * FROM ( SELECT TABLE_NAME, to_number( extractvalue( xmltype( dbms_xmlgen.getxml('select count(*) c from '||TABLE_NAME)) ,'/ROWSET/ROW/C'))
COUNT FROM user_tables ORDER BY TABLE_NAME ) c ORDER BY COUNT
Hay un parámetro que te dice cuado hay que hacer un rebuild, después de hacer muxos insert en una tabla.
Blevel, si un índice compruebo este parámetro si es mayor que 4 hacer rebuild
Select Blevel from user_indexes
EXEC dbms_stats.gather_table_stats ('AA','USUARIO')
Suscribirse a:
Comentarios (Atom)