Tablas all_tables y all_tab_columns
select distinct owner, table_name
from all_tables tablas
where owner = '141565168';
select distinct column_name
from all_tab_columns col
where upper(owner) = 'HR'
and lower(table_name) = '141565168';
select * from all_tables;
/********************************************************************************************/
tablas all_tables y all_tab_columns asociadas a un usuario
select owner, table_name
from all_tables
where owner ='141565168';
select column_name, owner, table_name
from all_tab_columns;
/********************************************************************************************/
Realizar un cursor con catalogo del usuario
DECLARE
vPropietario varchar2(40);
vNombreTabla varchar2(40);
vNombreColumna varchar2(100);
/* Primer cursor */
cursor obtieneTablas is
select distinct t.owner, t.table_name
from all_tables t
where t.owner = '158196506';
/* Segundo cursor */
cursor obtieneColumnas is
select distinct c.column_name
from all_tab_columns c
where c.owner = vPropietario
and c.table_name = vNombreTabla;
begin
open obtieneTablas;
dbms_output.put_line('Abriendo Cursor - obtieneTablas');
loop fetch obtieneTablas into vPropietario, vNombreTabla;
exit when obtieneTablas%NOTFOUND;
dbms_output.put_line('Tabla : '||vPropietario||'.'||
vNombreTabla);
open obtieneColumnas;
loop fetch obtieneColumnas into vNombreColumna;
exit when obtieneColumnas%NOTFOUND;
dbms_output.put_line('=>'||vNombreTabla||'.'||
vNombreColumna);
end loop;
close obtieneColumnas;
end loop;
close obtieneTablas;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'Se ha detectado un error - '||
SQLCODE||' -ERROR- '||SQLERRM);
end;
/********************************************************************************************/
Funciones
Usando dual
select sysdate from dual;
¿Qué día de la semana nació usted?
select
to_char(to_date(‘09-SEP-1958','dd-mon-yyyy'),'day')
from dual;
select to_char(sysdate,'day')
from dual;
dia de nacimiento
select to_char(to_date('14-01-1981','dd-mm-yyyy'),'day')
from dual;
/********************************************************************************************/
%TYPE
create procedure update_emp (empid in number)
is
v_empid number;
v_fname varchar2(20);
v_lname varchar2(30);
v_hire date;
v_sal number;
begin
end;
create procedure update_emp (empid in number)
is
v_empid employees.employee_id%type;
v_fname employees.first_name%type;
v_lname employees.last_name%type;
v_hire employees.hire_date%type;
v_sal employees.salary%type;
begin
end;
begin
select employee_id,first_name,
last_name, hire_date, salary into v_empid, v_fname, v_lname, v_hire, v_sal
from employees
where employee_id = empid;
end;
create procedure update_emp (empid in number) is
--declare
TYPE emp_record_type IS RECORD
(v_empid employees.employee_id%type;
v_fname employees.first_name%type;
v_lname employees.last_name%type;
v_hire employees.hire_date%type;
v_sal employees.salary%type;
);
emp_record emp_record_type;
begin ...
/********************************************************************************************/
Creando tablas para pruebas
create table tx (x int,y varchar(5));
insert into tx
select rownum, trunc(dbms_random.value(1,99999))
from dual
connect by rownum <= 10;
select * from tx;
/********************************************************************************************/
Pregunta de prueba
TO_CHAR:
Transforma un tipo DATE ó NUMBER en una cadena de caracteres. Ejemplos:
to_char(45.31, '99.9') -> retorna '45.3'
to_char(9,125.33, '9,999.99') -> retorna '9,125.33'
to_char(77, '0099') -> retorna '0077'
TO_DATE:
Transforma un tipo NUMBER ó CHAR en DATE.
Ejemplo:
to_date('31/10/2007','DD/MM/YYYY‘) -> retorna ‘31/10/2007’
TO_NUMBER:
Transforma una cadena de caracteres en NUMBER. Ejemplo:
to_number('123') -> retorna 123
/********************************************************************************************/
Funciones que devuelven valores numéricos
ASCII(cad)= Devuelve el valor ASCII de la primera letra de la cadena "cad". Ejemplo:
ASCII('R') -> Retorna 82
INSTR (cad1, cad2 [, comienzo [,m]])= Permite una búsqueda de un conjunto de caracteres en una cadena pero no suprime ningún carácter después. Ejemplo:
INSTR('CORPORATE FLOOR','OR', 3, 2) ->El resultado obtenido es 14, busca la segunda ocurrencia de la cadena OR a partir de la tercer posición
LENGTH (cad)= Devuelve el numero de caracteres de cad. Ejemplo:
LENGTH(‘HOLA’) ->retorna 4
/********************************************************************************************/
Funciones para el manejo de fechas
SYSDATE= Devuelve la fecha del sistema.
ADD_MONTHS (fecha, n)= Devuelve la fecha "fecha" incrementada en "n" meses.
LAST_DAY (fecha)= Devuelve la fecha del último día del mes que contiene "fecha".
MONTHS_BETWEEN (fecha1, fecha2)= Devuelve la diferencia en meses entre las fechas "fecha1" y "fecha2".
NEXT_DAY (fecha, “cad”= Devuelve la fecha del primer día de la semana indicado por "cad" después de la fecha indicada por "fecha“, donde cad corresponde al día de la semana EJ: ‘sábado’
No hay comentarios:
Publicar un comentario