Sie sind auf Seite 1von 4

**

select created from dba_users where username='&USUARIO'; --SYSTEM


UNDEFINE USUARIO
set verify off se eliminan las lineas del antiguo valor y nuevo valor
con set verify on se vuelve a colocar las lineas.
**
select add_months('21-02-16',-1) from dual
show parameter nls_date_format
select sysdate from dual;
alter session set nls_date_format='DD-MM-YYYY';
select sysdate+1 from dual;
select sysdate-1/24/60/60*7 from dual;
***flashback table producto to timestamp sysdate-1/24/60*5 -> se puede hacer ell
o mas adelante
select
select
select
select
select
select
select
select
select

round(to_date('15-07-2015','DD-MM-YYYY'),'MONTH') from dual;


round(to_date('16-07-2015','DD-MM-YYYY'),'MONTH') from dual;
round(to_date('15-06-2015','DD-MM-YYYY'),'MONTH') from dual;
round(to_date('16-06-2015','DD-MM-YYYY'),'MONTH') from dual;
round(to_date('14-02-2016','DD-MM-YYYY'),'MONTH') from dual;
round(to_date('15-02-2016','DD-MM-YYYY'),'MONTH') from dual;
round(to_date('16-02-2016','DD-MM-YYYY'),'MONTH') from dual;
round(to_date('16-02-2016','DD-MM-YYYY'),'YEAR') from dual;
round(to_date('16-02-2016','DD-MM-YYYY'),'YEAR') from dual;

Si redondeamos por mes -> todos los dias hasta el 15 se mantiene el mes
>=16 pasa al mes siguiente independientemente del mes que
nos encontremos
redondeo por ao -> Enero a Junio -> Se queda en el ao
Julio - a Diciembre -> pasa al siguiente ao
*********
set serveroutput on
begin
dbms_output.put_line('Hola a todos '||2);
end;
/
************
select to_char(sysdate, 'MM-DD-YYYY') from dual;
select to_char(sysdate, 'DD/MM') from dual;
select to_char(sysdate, 'MONTH') from dual;
select to_char(sysdate-10, 'fmMM-DD-YYYY') from dual;
select to_char(sysdate-10, 'MM-DD-YYYY') from dual;
select
select
select
select

to_char(sysdate,'DD-MM-YYYY
to_char(sysdate,'DD-MM-YYYY
to_char(sysdate,'DD-MM-YYYY
to_char(sysdate,'DD-MM-YYYY

HH24:MI:SS') from dual;


HH:MI:SS') from dual;
HH:MI:SS AM') from dual;
HH:MI:SS PM') from dual;

select to_char(sysdate, 'DD-MM " del "YYYY') from dual;


select to_char(sysdate, 'ddspth') from dual;
**********************
select min(bytes)/1024/1024, MAX(BYTES)/1024/1024 from dba_data_files; -> el min
no solo trabaja con numeros sino tb con fechas

create
insert
insert
insert
select
insert
insert
select
select
select
select
select

table demo (campo1 number);


into demo values (100);
into demo values (200);
into demo values (300);
* from demo;
into demo values (null);
into demo values (100);
count(*) from demo; -> 5
count(CAMPO1) from demo; -> 4
avg(CAMPO1) from demo; -> 175
count(1) from dual; -> 5
count(NVL(CAMPO1,0)) from dual;

********************
select count(1) from dba_segments where segment_type='TABLE';
select segment_type, count(*) from dba_segments group by segment_type;
select owner, object_type, count(*) from dba_objects group by owner, object_type
order by 1,3 desc;
select owner, object_type, count(*) from dba_objects group by owner, object_type
having count(*)>=100 order by 1,3 desc;
select owner, object_type, count(*) as total from dba_objects group by owner, ob
ject_type having total(*)>100 order by 1,total desc;
select owner, object_type, count(*) from dba_objects where owner='SYSTEM' group
by owner, object_type having count(*)>=100 order by 1,3 desc;

select username,to_char(created,'dd/MONTH/yyyy') from dba_users where created <


to_date('&fecha','dd/mm/yyyy');
Select segment_name, case When (bytes/2014 > 5 and bytes/2014<20) then 'Indices
pequeos'
When (bytes/2014 > 21 and bytes/2014<50) then 'Indices m
edianos'
When (bytes/2014 > 50 and bytes/2014<100) then 'Indices
grandes'
else 'Otros tamaos'
end
from dba_segments
Where segment_type = 'INDEX';
select distinct decode(length(OBJECT_TYPE), 7 , ' 7 dig',5, '5 dig','0 dig') as
probar_decode, OBJECT_TYPE from dba_objects where rownum<=20;
spool /tmp/decode.sql
--Empleado con el mayor salario:
select first_name from employees where salary in (select max(salary) from
employees);
select name, min(bytes)/1024/1024 minGB, max(bytes)/1024/1024 maxGB from v$temp
file group by name;
----------MXIMO Y MNIMO DE EXPIRY_DATESELECT TO_CHAR(MAX(EXPIRY_DATE),'DD:MON:YYYY') "MAX", MIN(EXPIRY_DATE) "MIN" FRO
M DBA_USERS;
---- comision con maximo salario
select nvl(commission_pct,0) com, salary from hr.employees where salary =( selec

t max(m.salary) from hr.employees m);


------ GROUP BY-------------------------------select owner,object_type from dba_objects group by owner,object_type order by ow
ner desc
------- group by con having-------------------------select owner,segment_type, count(segment_type) from dba_segments group by owner,
segment_type having count(segment_type) > 100 order by 1
--- FILTRO SYS
select owner,object_type, count(1) nro from dba_objects where owner ='SYS' group
by owner,object_type having count(1)>100 order by 1,3 desc;
--OBJECT VALIDOS
SELECT OWNER,OBJECT_TYPE,COUNT(1)
FROM DBA_OBJECTS
WHERE STATUS = 'VALID'
GROUP BY OWNER,OBJECT_TYPE
select SEGMENT_TYPE,AVG(BYTES)as "Promedio" from dba_segments group by SEGMENT_T
YPE having AVG(BYTES)>8000;

select (avg(salary)) from employees group by department_id;


select Max(avg(salary)) from employees group by department_id;
select first_name,salary from employees where salary >= (select Max(avg(salary))
from employees group by department_id);
-----tablespace y nombre
select d.FILE_NAME, d.TABLESPACE_NAME as nombre from DBA_TABLESPACES e join dba_
data_files d
on e.TABLESPACE_NAME=d.TABLESPACE_NAME;
select b.TABLESPACE_NAME "TABLESPACE NAME" ,a.FILE_NAME "DATA FILE" from dba_da
ta_files a join dba_tablespaces b on a.TABLESPACE_NAME=b.TABLESPACE_NAME
------------- rangos en join
select e.last_name,e.salary from hr.employees e join hr.employees j on e.salary
>j.salary;
//investigar
select column_name,data_type from cols where table_name='DBA_DATA_FILES'
INTERSECT
select column_name,data_type from cols where table_name='DBA_TABLESPACES'
select t1.tablespace_name from dba_data_files t1 natural join dba_tablespace t2
select t1.tablespace_name from dba_data_files t1,dba_tablespace t2 using(tablesp
ace_name,status)
create table t1 (pu number,pe number, cod0 varchar(10),cantidad0 number);
create table t2 (pu number,pe number, cod varchar(10),cantidad number);
select * from t1
select * from t2
insert into t1 values(10,1,'001',20);
insert into t2 values(20,2,'001',20);
insert into t2 values(30,3,'001',20);
insert into t2 values(40,4,'001',20);
insert into t1 values(50,5,'001',20);
insert into t1 values(60,6,'001',20);
insert into t1 values(70,7,'001',20);
insert into t1 values(80,8,'001',20);
commit;

insert into demo0 values(10,'001',20);


insert into demo0 values(20,'001',20);
insert into demo2 values(30,'001',20);
insert into demo2 values(40,'001',20);
commit;
select cantidad from t1 natural join t2
select cantidad from t1,t2 using(pu)
select cantidad from demo0 natural join demo1;
select cantidad from demo0 join demo1 using(pu,pe)
//
-----------------SUBQUERY----------------------------------------------------select upper(last_name),to_char(hire_date,'DAY "de " MM "del " YYYY') from emplo
yees where hire_date >
(select hire_date from employees where last_name = 'Davies')
select c.file#,a.file_name,b.tablespace_name,a.status,a.BYTES/1024
from dba_data_files a
join dba_tablespaces b on a.tablespace_name = b.tablespace_name
join v$datafile c on a.file_name = c.name

Das könnte Ihnen auch gefallen