SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
Corfapo
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
testgrupocomex
 

What's hot (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 to 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
 
Funciones de sql server
Funciones de sql serverFunciones de sql server
Funciones de sql server
Emily_Fdez
 
Capítulo 4 funciones matemáticas
Capítulo 4  funciones matemáticasCapítulo 4  funciones matemáticas
Capítulo 4 funciones matemáticas
Julio Ayala Rolón
 
6 funciones 2012
6 funciones 20126 funciones 2012
6 funciones 2012
Training_14
 
6 funciones 2012
6 funciones 20126 funciones 2012
6 funciones 2012
Training_14
 
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
Titiushko Jazz
 

Similar to 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 ...
 

More from 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
 

Recently uploaded

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 

Recently uploaded (20)

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 

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