SlideShare una empresa de Scribd logo
1 de 32
Bases de Datos



                   Unidad


          El Lenguaje PL/SQL
          (Funciones)




            2011   Erwin Fischer   2
Funciones



 • Uso de funciones de conversión
   y expresiones de condicionales




             2011   Erwin Fischer   3
Usando la tabla dual de
Oracle


 • La tabla dual de Oracle se utiliza
   cuando se necesita ejecutar una
   instrucción SQL que no
   necesariamente tiene una tabla
   asociada.
 • Select user from dual;



               2011   Erwin Fischer     5
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;


                2011   Erwin Fischer        6
Recordando %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
-- Proceso de registros
end;


                  2011   Erwin Fischer          7
Recordando %TYPE



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
--Proceso de registros
end;
                  2011   Erwin Fischer          8
En Proceso de registros

 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;
  --continuar el proceso…
 end;
            2011   Erwin Fischer   9
Declarando un tipo RECORD
 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;
 );
 --instantiate
 emp_record emp_record_type;
 begin ...



                   2011   Erwin Fischer             10
Finalmente tenemos

 Begin
  select employee_id,
  first_name, last_name,
  hire_date, salary
 into emp_record
  from employees
  where employee_id = empid;
 -- continuar el proceso…
 end;
             2011   Erwin Fischer   11
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;


                2011   Erwin Fischer     12
FUNCIONES DE CONVERSIÓN

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



                        2011   Erwin Fischer                      13
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




                        2011   Erwin Fischer                           14
Ejemplos


select 'R=',ASCII('R'), 'r=', ASCII('r')
from dual;

select INSTR('CORPORATE FLOOR','OR', 3, 2)
from dual;

select LENGTH ('HOLA nundo')
from dual;



                2011   Erwin Fischer         15
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’




                      2011   Erwin Fischer                  16
Ejemplos de Funciones para el manejo
 de fechas
select sysdate
from dual;

select sysdate, add_months(sysdate, 3)
from dual;

select sysdate, last_day(sysdate)
from dual;

select months_between(sysdate, '1/1/2011')
from dual;

select next_day(sysdate,'sábado')
from dual;
                  2011   Erwin Fischer       17
FUNCIONES QUE DEVUELVEN
VALORES DE CARACTERES



CHR(n) = Devuelve el carácter cuyo valor en binario es
equivalente a "n".
CONCAT (cad1, cad2)= Devuelve "cad1" concatenada
con "cad2".
LOWER (cad)= Devuelve la cadena "cad" en minúsculas.
UPPER (cad)= Devuelve la cadena "cad" en mayúsculas.
INITCAP (cad)= Convierte la cadena "cad" a tipo titulo.
LPAD (cad1, n[,cad2])= Añade caracteres a la izquierda
de la cadena hasta que tiene una cierta longitud.
RPAD (cad1, n[,cad2])= Añade caracteres a la derecha
de la cadena hasta que tiene una cierta longitud.



                      2011   Erwin Fischer                18
FUNCIONES QUE DEVUELVEN
VALORES DE CARACTERES

LTRIM (cad [,set])= Suprime un conjunto de caracteres
a la izquierda de la cadena.
RTRIM (cad [,set])= Suprime un conjunto de caracteres
a la derecha de la cadena.
REPLACE (cad, cadena_busqueda [,
cadena_sustitucion])= Sustituye un carácter o
caracteres de una cadena con 0 o más caracteres.
SUBSTR (cad, m [,n])= Obtiene parte de una cadena.
TRANSLATE (cad1, cad2, cad3)= Convierte caracteres
de una cadena en caracteres diferentes, según un plan de
sustitución marcado por el usuario.




                      2011   Erwin Fischer                 19
ltrim('000123', '0');
ltrim('123123Tech', '123');
ltrim('123123Tech123', '123'); '
ltrim('xyxzyyyTech', 'xyz');
ltrim('6372Tech', '0123456789');
rtrim('Techxyxzyyy', 'xyz');
rtrim('Tech6372', '0123456789');




                    2011   Erwin Fischer   20
FUNCIONES DE GRUPOS DE
VALORES




AVG(n)= Calcula el valor medio de "n" ignorando los valores
nulos.
COUNT (* | Expresión)= Cuenta el número de veces que la
expresión evalúa algún dato con valor no nulo. La opción "*"
cuenta todas las filas seleccionadas.
MAX (expresión)= Calcula el máximo.
MIN (expresión)= Calcula el mínimo.
SUM (expresión)= Obtiene la suma de los valores de la
expresión.
GREATEST (valor1, valor2…)= Obtiene el mayor valor de la
lista.
LEAST (valor1, valor2…)= Obtiene el menor valor de la lista.


                       2011   Erwin Fischer                    21
ejemplos

 select greatest(20, 10, 7, 5)
 from dual

 select least(20, 10, 7, 5)
 from dual

 select max(salary)
 from employees

 select COUNT (*)
 from employees

 select sum(salary)
 from employees



                    2011   Erwin Fischer   22
FUNCIONES DE VALORES SIMPLES


ABS(n)= Devuelve el valor absoluto de (n).
CEIL(n)=Obtiene el valor entero inmediatamente superior
o igual a "n".
FLOOR(n) = Devuelve el valor entero inmediatamente
inferior o igual a "n".
MOD (m, n)= Devuelve el resto resultante de dividir "m"
entre "n".
NVL (valor, expresión)= Sustituye un valor nulo por otro
valor.
POWER (m, exponente)= Calcula la potencia de un
numero.




                    2011   Erwin Fischer                   23
Ej:

  select ceil(23.56)
  from dual

  select floor(23.56)
  from dual

  select mod(25,2)
  from dual

  select power(2,3)
  from dual

  select NVL(commission, 0)
  from sales;


                      2011   Erwin Fischer   24
FUNCIONES DE VALORES
SIMPLES

ROUND (numero [, m])= Redondea números con el
numero de dígitos de precisión indicados.
SIGN (valor)= Indica el signo del "valor".
SQRT(n)= Devuelve la raíz cuadrada de "n".
TRUNC (numero, [m])= Trunca números para que tengan
una cierta cantidad de dígitos de precisión.
VARIANCE (valor)= Devuelve la varianza de un conjunto
de valores.




                   2011   Erwin Fischer                 25
select ROUND (123.345, 2)
from dual

select SIGN (-35.27)
from dual

select SQRT(16)
from dual

select TRUNC (123.345, 2)
from dual

select VARIANCE (salary)
from employees
                  2011   Erwin Fischer   26
FUNCIONES AVANZADAS
DECODE(expr, value1 [, return1, value2, return2....,]
default ):

Traduce una expresión a un valor de retorno. Si expr es
igual a value1, la función devuelve Return1. Si expr es
igual a value2, la función devuelve Return2. Y así
sucesivamente. Si expr no es igual a ningún valor la
función devuelve el valor por defecto.




                     2011   Erwin Fischer                 27
ej

     SELECT DEPARTMENT_ID,
     decode(DEPARTMENT_ID,
          60, 'Ventas',
          70, 'RRHH',
          80, 'MKT',
          90, 'Produccion',
          100, 'Servicios Generales',
          'No definido')
     FROM employees;



                   2011   Erwin Fischer   28
FUNCIONES AVANZADAS

CASE: La expresión CASE permite utilizar la lógica IF-
THEN-ELSE en sentencias SQL sin tener que invocar
procedimientos.
    CASE expr
   WHEN comparison_expr1 THEN return_expr1
   [ WHEN comparison_expr2 THEN return_expr2
   WHEN comparison_exprn THEN return_exprn
   ELSE else_expr ]
   END




                      2011   Erwin Fischer               29
EJ:

select SALARY,
CASE
  WHEN SALARY < 4000 THEN ‘GANA POCO'
  WHEN sALARY >= 4000 AND SALARY < 5000 THEN ‘GANA BIEN'
  ELSE 'GANA MUCHO'
END
from EMPLOYEES;




                    2011   Erwin Fischer              30
FUNCIONES

CREATE [OR REPLACE] FUNCTION function_name
    [ (parameter [,parameter]) ]
    RETURN return_datatype
IS | AS
    [declaration_section]
BEGIN
    executable_section
[EXCEPTION
    exception_section]
END [function_name];




                   2011   Erwin Fischer      31
Built-In
Functions (By Category)




                  2011   Erwin Fischer   32
Tarea : Cree la función
ParImpar


 Escriba una función que reciba un numero entero y
 Retorne un texto indicando si es „par‟ o „impar‟




                      2011   Erwin Fischer           33
Unidad - PL/SQL




        • Fin




            2011   Erwin Fischer   34

Más contenido relacionado

La actualidad más candente

Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)José Toro
 
Ejercicios java
Ejercicios javaEjercicios java
Ejercicios javajosesan999
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)José Toro
 
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)José Toro
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Alexander Calderón
 
Consultas condicionales en sq server
Consultas condicionales en sq serverConsultas condicionales en sq server
Consultas condicionales en sq serverEdwards Leon Paredes
 

La actualidad más candente (20)

Funciones basicas
Funciones basicasFunciones basicas
Funciones basicas
 
Pruebas de escritorio con objetos
Pruebas de escritorio con objetosPruebas de escritorio con objetos
Pruebas de escritorio con objetos
 
Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)
 
Resumen java
Resumen javaResumen java
Resumen java
 
Ejercicios java
Ejercicios javaEjercicios java
Ejercicios java
 
Tema4
Tema4Tema4
Tema4
 
Funciones y gráficas en matlab
Funciones y gráficas en matlabFunciones y gráficas en matlab
Funciones y gráficas en matlab
 
Sql
SqlSql
Sql
 
Conexion Visual
Conexion Visual Conexion Visual
Conexion Visual
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
Programas en netbeans
Programas en netbeansProgramas en netbeans
Programas en netbeans
 
PostgreSQL - Lección 9 - Tablas
PostgreSQL - Lección 9 - TablasPostgreSQL - Lección 9 - Tablas
PostgreSQL - Lección 9 - Tablas
 
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Codigo ejercicios
Codigo ejerciciosCodigo ejercicios
Codigo ejercicios
 
Video 1 metodos y arreglos
Video 1 metodos y arreglosVideo 1 metodos y arreglos
Video 1 metodos y arreglos
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09
 
Fundamentos de SELECT SQL
Fundamentos de SELECT SQLFundamentos de SELECT SQL
Fundamentos de SELECT SQL
 
Consultas condicionales en sq server
Consultas condicionales en sq serverConsultas condicionales en sq server
Consultas condicionales en sq server
 

Similar a Funciones

PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...Nicola Strappazzon C.
 
Sql basico parte_ii_
Sql basico parte_ii_Sql basico parte_ii_
Sql basico parte_ii_Luis Jherry
 
Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01MaraMagdalenaBlancoR
 
Funciones de sql server
Funciones de sql serverFunciones de sql server
Funciones de sql serverEmily_Fdez
 
Capítulo 4 funciones matemáticas
Capítulo 4  funciones matemáticasCapítulo 4  funciones matemáticas
Capítulo 4 funciones matemáticasJulio Ayala Rolón
 
Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2agustin rojas
 
6 funciones 2012
6 funciones 20126 funciones 2012
6 funciones 2012Training_14
 
6 funciones 2012
6 funciones 20126 funciones 2012
6 funciones 2012Training_14
 
Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaAna Ruth G H
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlTitiushko Jazz
 
Presentación de matlab electromagnetismo ...
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...SimonCaceres4
 

Similar a Funciones (20)

Sql ddl
Sql ddlSql ddl
Sql ddl
 
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
 
Sql basico parte_ii_
Sql basico parte_ii_Sql basico parte_ii_
Sql basico parte_ii_
 
SlE ADSI
SlE ADSISlE ADSI
SlE ADSI
 
Funciones internas del excel
Funciones internas del excelFunciones internas del excel
Funciones internas del excel
 
Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01
 
TAREA 04_removed.pdf
TAREA 04_removed.pdfTAREA 04_removed.pdf
TAREA 04_removed.pdf
 
Funciones de sql server
Funciones de sql serverFunciones de sql server
Funciones de sql server
 
Capítulo 4 funciones matemáticas
Capítulo 4  funciones matemáticasCapítulo 4  funciones matemáticas
Capítulo 4 funciones matemáticas
 
Tema 1 Parte 3.pdf
Tema 1 Parte 3.pdfTema 1 Parte 3.pdf
Tema 1 Parte 3.pdf
 
Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2
 
6 funciones 2012
6 funciones 20126 funciones 2012
6 funciones 2012
 
6 funciones 2012
6 funciones 20126 funciones 2012
6 funciones 2012
 
Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y Java
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 
Funciones de las hojas de cálculo
Funciones de las hojas de cálculoFunciones de las hojas de cálculo
Funciones de las hojas de cálculo
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
 
Sql5
Sql5Sql5
Sql5
 
Separata java script
Separata java scriptSeparata java script
Separata java script
 
Presentación de matlab electromagnetismo ...
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...
 

Más de Fabián Alexander Moya (8)

Tarea 1 – investigación bpmn
Tarea 1 – investigación bpmnTarea 1 – investigación bpmn
Tarea 1 – investigación bpmn
 
Taller 1 bdd
Taller 1 bddTaller 1 bdd
Taller 1 bdd
 
PLSQL y paquetes
PLSQL y paquetesPLSQL y paquetes
PLSQL y paquetes
 
Packages pl sql
Packages pl sqlPackages pl sql
Packages pl sql
 
Sql
SqlSql
Sql
 
Triggers
TriggersTriggers
Triggers
 
Procedimientos y excepciones
Procedimientos y excepcionesProcedimientos y excepciones
Procedimientos y excepciones
 
Plsql y paquetes
Plsql y paquetesPlsql y paquetes
Plsql y paquetes
 

Último

ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...JAVIER SOLIS NOYOLA
 
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertitzacióRealitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertitzacióPere Miquel Rosselló Espases
 
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...Agrela Elvixeo
 
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.JonathanCovena1
 
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdfLas Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdfDemetrio Ccesa Rayme
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdfDemetrio Ccesa Rayme
 
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdfDemetrio Ccesa Rayme
 
Planeacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxPlaneacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxSarisdelosSantos1
 
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de NavarraSanta Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de NavarraJavier Andreu
 
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdfEFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdfsalazarjhomary
 
Libros del Ministerio de Educación (2023-2024).pdf
Libros del Ministerio de Educación (2023-2024).pdfLibros del Ministerio de Educación (2023-2024).pdf
Libros del Ministerio de Educación (2023-2024).pdfGalletitas default
 
Realitat o fake news? – Què causa el canvi climàtic? - Modificacions dels pat...
Realitat o fake news? – Què causa el canvi climàtic? - Modificacions dels pat...Realitat o fake news? – Què causa el canvi climàtic? - Modificacions dels pat...
Realitat o fake news? – Què causa el canvi climàtic? - Modificacions dels pat...Pere Miquel Rosselló Espases
 
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteDiapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteinmaculadatorressanc
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdfDemetrio Ccesa Rayme
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptxDemetrio Ccesa Rayme
 
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdfDISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdfVerenice Del Rio
 

Último (20)

Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertitzacióRealitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
 
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
 
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdfTÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
 
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdfLas Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdf
 
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
 
Planeacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxPlaneacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docx
 
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de NavarraSanta Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
 
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdfEFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
 
Libros del Ministerio de Educación (2023-2024).pdf
Libros del Ministerio de Educación (2023-2024).pdfLibros del Ministerio de Educación (2023-2024).pdf
Libros del Ministerio de Educación (2023-2024).pdf
 
Realitat o fake news? – Què causa el canvi climàtic? - Modificacions dels pat...
Realitat o fake news? – Què causa el canvi climàtic? - Modificacions dels pat...Realitat o fake news? – Què causa el canvi climàtic? - Modificacions dels pat...
Realitat o fake news? – Què causa el canvi climàtic? - Modificacions dels pat...
 
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteDiapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
 
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdfDISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
 

Funciones

  • 1. Bases de Datos Unidad El Lenguaje PL/SQL (Funciones) 2011 Erwin Fischer 2
  • 2. Funciones • Uso de funciones de conversión y expresiones de condicionales 2011 Erwin Fischer 3
  • 3. Usando la tabla dual de Oracle • La tabla dual de Oracle se utiliza cuando se necesita ejecutar una instrucción SQL que no necesariamente tiene una tabla asociada. • Select user from dual; 2011 Erwin Fischer 5
  • 4. 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; 2011 Erwin Fischer 6
  • 5. Recordando %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 -- Proceso de registros end; 2011 Erwin Fischer 7
  • 6. Recordando %TYPE 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 --Proceso de registros end; 2011 Erwin Fischer 8
  • 7. En Proceso de registros 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; --continuar el proceso… end; 2011 Erwin Fischer 9
  • 8. Declarando un tipo RECORD 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; ); --instantiate emp_record emp_record_type; begin ... 2011 Erwin Fischer 10
  • 9. Finalmente tenemos Begin select employee_id, first_name, last_name, hire_date, salary into emp_record from employees where employee_id = empid; -- continuar el proceso… end; 2011 Erwin Fischer 11
  • 10. 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; 2011 Erwin Fischer 12
  • 11. FUNCIONES DE CONVERSIÓN 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 2011 Erwin Fischer 13
  • 12. 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 2011 Erwin Fischer 14
  • 13. Ejemplos select 'R=',ASCII('R'), 'r=', ASCII('r') from dual; select INSTR('CORPORATE FLOOR','OR', 3, 2) from dual; select LENGTH ('HOLA nundo') from dual; 2011 Erwin Fischer 15
  • 14. 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’ 2011 Erwin Fischer 16
  • 15. Ejemplos de Funciones para el manejo de fechas select sysdate from dual; select sysdate, add_months(sysdate, 3) from dual; select sysdate, last_day(sysdate) from dual; select months_between(sysdate, '1/1/2011') from dual; select next_day(sysdate,'sábado') from dual; 2011 Erwin Fischer 17
  • 16. FUNCIONES QUE DEVUELVEN VALORES DE CARACTERES CHR(n) = Devuelve el carácter cuyo valor en binario es equivalente a "n". CONCAT (cad1, cad2)= Devuelve "cad1" concatenada con "cad2". LOWER (cad)= Devuelve la cadena "cad" en minúsculas. UPPER (cad)= Devuelve la cadena "cad" en mayúsculas. INITCAP (cad)= Convierte la cadena "cad" a tipo titulo. LPAD (cad1, n[,cad2])= Añade caracteres a la izquierda de la cadena hasta que tiene una cierta longitud. RPAD (cad1, n[,cad2])= Añade caracteres a la derecha de la cadena hasta que tiene una cierta longitud. 2011 Erwin Fischer 18
  • 17. FUNCIONES QUE DEVUELVEN VALORES DE CARACTERES LTRIM (cad [,set])= Suprime un conjunto de caracteres a la izquierda de la cadena. RTRIM (cad [,set])= Suprime un conjunto de caracteres a la derecha de la cadena. REPLACE (cad, cadena_busqueda [, cadena_sustitucion])= Sustituye un carácter o caracteres de una cadena con 0 o más caracteres. SUBSTR (cad, m [,n])= Obtiene parte de una cadena. TRANSLATE (cad1, cad2, cad3)= Convierte caracteres de una cadena en caracteres diferentes, según un plan de sustitución marcado por el usuario. 2011 Erwin Fischer 19
  • 18. ltrim('000123', '0'); ltrim('123123Tech', '123'); ltrim('123123Tech123', '123'); ' ltrim('xyxzyyyTech', 'xyz'); ltrim('6372Tech', '0123456789'); rtrim('Techxyxzyyy', 'xyz'); rtrim('Tech6372', '0123456789'); 2011 Erwin Fischer 20
  • 19. FUNCIONES DE GRUPOS DE VALORES AVG(n)= Calcula el valor medio de "n" ignorando los valores nulos. COUNT (* | Expresión)= Cuenta el número de veces que la expresión evalúa algún dato con valor no nulo. La opción "*" cuenta todas las filas seleccionadas. MAX (expresión)= Calcula el máximo. MIN (expresión)= Calcula el mínimo. SUM (expresión)= Obtiene la suma de los valores de la expresión. GREATEST (valor1, valor2…)= Obtiene el mayor valor de la lista. LEAST (valor1, valor2…)= Obtiene el menor valor de la lista. 2011 Erwin Fischer 21
  • 20. ejemplos select greatest(20, 10, 7, 5) from dual select least(20, 10, 7, 5) from dual select max(salary) from employees select COUNT (*) from employees select sum(salary) from employees 2011 Erwin Fischer 22
  • 21. FUNCIONES DE VALORES SIMPLES ABS(n)= Devuelve el valor absoluto de (n). CEIL(n)=Obtiene el valor entero inmediatamente superior o igual a "n". FLOOR(n) = Devuelve el valor entero inmediatamente inferior o igual a "n". MOD (m, n)= Devuelve el resto resultante de dividir "m" entre "n". NVL (valor, expresión)= Sustituye un valor nulo por otro valor. POWER (m, exponente)= Calcula la potencia de un numero. 2011 Erwin Fischer 23
  • 22. Ej: select ceil(23.56) from dual select floor(23.56) from dual select mod(25,2) from dual select power(2,3) from dual select NVL(commission, 0) from sales; 2011 Erwin Fischer 24
  • 23. FUNCIONES DE VALORES SIMPLES ROUND (numero [, m])= Redondea números con el numero de dígitos de precisión indicados. SIGN (valor)= Indica el signo del "valor". SQRT(n)= Devuelve la raíz cuadrada de "n". TRUNC (numero, [m])= Trunca números para que tengan una cierta cantidad de dígitos de precisión. VARIANCE (valor)= Devuelve la varianza de un conjunto de valores. 2011 Erwin Fischer 25
  • 24. select ROUND (123.345, 2) from dual select SIGN (-35.27) from dual select SQRT(16) from dual select TRUNC (123.345, 2) from dual select VARIANCE (salary) from employees 2011 Erwin Fischer 26
  • 25. FUNCIONES AVANZADAS DECODE(expr, value1 [, return1, value2, return2....,] default ): Traduce una expresión a un valor de retorno. Si expr es igual a value1, la función devuelve Return1. Si expr es igual a value2, la función devuelve Return2. Y así sucesivamente. Si expr no es igual a ningún valor la función devuelve el valor por defecto. 2011 Erwin Fischer 27
  • 26. ej SELECT DEPARTMENT_ID, decode(DEPARTMENT_ID, 60, 'Ventas', 70, 'RRHH', 80, 'MKT', 90, 'Produccion', 100, 'Servicios Generales', 'No definido') FROM employees; 2011 Erwin Fischer 28
  • 27. FUNCIONES AVANZADAS CASE: La expresión CASE permite utilizar la lógica IF- THEN-ELSE en sentencias SQL sin tener que invocar procedimientos. CASE expr WHEN comparison_expr1 THEN return_expr1 [ WHEN comparison_expr2 THEN return_expr2 WHEN comparison_exprn THEN return_exprn ELSE else_expr ] END 2011 Erwin Fischer 29
  • 28. EJ: select SALARY, CASE WHEN SALARY < 4000 THEN ‘GANA POCO' WHEN sALARY >= 4000 AND SALARY < 5000 THEN ‘GANA BIEN' ELSE 'GANA MUCHO' END from EMPLOYEES; 2011 Erwin Fischer 30
  • 29. FUNCIONES CREATE [OR REPLACE] FUNCTION function_name [ (parameter [,parameter]) ] RETURN return_datatype IS | AS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END [function_name]; 2011 Erwin Fischer 31
  • 30. Built-In Functions (By Category) 2011 Erwin Fischer 32
  • 31. Tarea : Cree la función ParImpar Escriba una función que reciba un numero entero y Retorne un texto indicando si es „par‟ o „impar‟ 2011 Erwin Fischer 33
  • 32. Unidad - PL/SQL • Fin 2011 Erwin Fischer 34