Slideshare.net (beta)

 
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons



All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 5 (more)

Curso Básico de Pl Sql Oracle

From luisguil, 9 months ago

Curso Básico de Pl Sql Oracle

45223 views  |  5 comments  |  4 favorites  |  5 embeds (Stats)
 

Groups/Events

 
 

Privacy InfoNew!

This slideshow is Public

 
Embed in your blog
Embed (wordpress.com)
custom

Slideshow Statistics
Total Views: 45223
on Slideshare: 45212
from embeds: 11* * Views from embeds since 21 Aug, 07

Slideshow transcript

Slide 1: 1 Introducción PL/SQL ² Qué es PL/SQL ? ² Características http://luisgpalomino.blogspot.com/ 1 03/10/07

Slide 2: Que es PL/SQL ? Es un lenguaje de programación usado  para accesar bases de datos Oracle.  Está integrado con la base de datos.  PL/SQL es una ampliación al SQL. http://luisgpalomino.blogspot.com/ 2 03/10/07

Slide 3: Características... Lenguaje Estructurado  Declare  Sección para declarar variables,cursores,tipos,etc. Begin Sección para estamentos SQL y estructuras de control. Exception  Sección para el manejo de errores y excepciones. End; http://luisgpalomino.blogspot.com/ 3 03/10/07

Slide 4: Características... Variables y Tipos(Predefinidos o de  Usuario. Variables con tipos predefinidos : date, number,char,varchar,long,blob,etc. v_nombre varchar2(30); v_fecha date; v_dias number; http://luisgpalomino.blogspot.com/ 4 03/10/07

Slide 5: Características... Variables y Tipos(Predefinidos o de  Usuario. Variables con Tipos de Usuario : TYPE t_afiliado is Record ( cedula number, nombre varchar2(50) ); v_afiliado t_afiliado; http://luisgpalomino.blogspot.com/ 5 03/10/07

Slide 6: Características... Estructuras de Control  If ...then... Else... End if Loop ...Exit When... End Loop For ... In...Loop ...End Loop http://luisgpalomino.blogspot.com/ 6 03/10/07

Slide 7: Características... Cursores  Usados para procesar múltiples registros. CURSOR c_presta IS SELECT cod_prestatario FROM csv_prestatario WHERE cod_oficina = ‘101’; http://luisgpalomino.blogspot.com/ 7 03/10/07

Slide 8: Características... Otras Características :  Manejo de Paquetes, Procedimientos y Funciones. Objetos y Métodos. http://luisgpalomino.blogspot.com/ 8 03/10/07

Slide 9: 2 PL/SQL Basics... Bloques PL/SQL. ² ² Bloque Anónimo. ² Bloque Nombrado. ² Subprogramas. ² Triggers. ² Estructura Básica. ² Identificadores. ² Comentarios. ² Declaración Variables. http://luisgpalomino.blogspot.com/ 9 03/10/07

Slide 10: 2 PL/SQL Basics... Tipos PL/SQL. ² ² Usando %TYPE. ² Subtipos Definidos. ² Conversiones. ² Alcance de las Variables. ² Estructuras de Control. http://luisgpalomino.blogspot.com/ 10 03/10/07

Slide 11: Estructura Básica... DECLARE /* Sección Declarativa... */ BEGIN /* Sección Ejecutable... */ EXCEPTION /* Sección Exception... */ END; http://luisgpalomino.blogspot.com/ 11 03/10/07

Slide 12: Identificadores... Objetos PL/SQL.  – Variables. – Cursores. – Types. – Subprogramas. Correctos: Incorrectos:  x x+y v_id_personal _temp_ v2_ nom afilia id_usuario_# 1_apellido Caractérísticas.  – Máximo 30 Caracteres. – No Palabras Reservadas. http://luisgpalomino.blogspot.com/ 12 03/10/07

Slide 13: Comentarios... Línea Sencilla. (--)  DECLARE d_fecha DATE; -- Se Declara la Variable -- Tipo Fecha... BEGIN ---------------------------------- -- Asigna la Fecha del Sistema... d_fecha := SYSDATE; END; Multi-Línea. (/*... */)  DECLARE d_fecha DATE; /* Se Declara la Variable Tipo Fecha...*/ BEGIN /*-------------------------------- Asigna la Fecha del Sistema...*/ d_fecha := SYSDATE; END; http://luisgpalomino.blogspot.com/ 13 03/10/07

Slide 14: Declaración Variables... Sintaxis...  nom_vble type [CONSTANT] [NOT NULL] [:= valor]: DECLARE vc_nom_afilia VARCHAR2(50); n_num_afilia NUMBER := 50; n_pos BINARY_INTEGER := 0; n_cant_minima CONSTANT NUMBER(5) := 10000; n_num_cartas NUMBER DEFAULT 50; INCORRECTAS DECLARE vc_nom_afilia, vc_ape_afilia VARCHAR2(50); n_num_afilia NUMBER NOT NULL; http://luisgpalomino.blogspot.com/ 14 03/10/07

Slide 15: Tipos PL/SQL... http://luisgpalomino.blogspot.com/ 15 03/10/07

Slide 16: Usando %TYPE... DECLARE vc_nom_afilia VARCHAR2(50); DECLARE x_nom_afilia csv_afiliado.nm1_afilia%TYPE; NOTA: Es una buena práctica de Programación el uso de %TYPE, ya que  proporciona Flexibilidad y Habilidad para que los programas se adapten al movimiento de la Base de Datos. http://luisgpalomino.blogspot.com/ 16 03/10/07

Slide 17: Subtipos Definidos... Sintaxis...  SUBTYPE tipo_nuevo IS tipo_original; DECLARE SUBTYPE tn_contador IS NUMBER; n_contador tn_contador; SUBTYPE tx_nom_afilia IS csv_afiliado.nm1_afilia%TYPE; x_vble NUMBER(4); SUBTYPE tn_cantidad IS x_vble%TYPE; n_vble tn_cantidad; http://luisgpalomino.blogspot.com/ 17 03/10/07

Slide 18: Conversiones... Explícitas...  – TO_CHAR – TO_DATE – TO_NUMBER – RAWTOHEX – HEXTORAW – CHARTOROWID – ROWIDTOCHAR Implícitas...  DECLARE vc_edad VARCHAR2(5); BEGIN SELECT edad_afilia INTO vc_edad FROM csv_afiliado WHERE ide_afili = ‘98532011’; END; http://luisgpalomino.blogspot.com/ 18 03/10/07

Slide 19: Alcance de las Variables... DECLARE b_Ok BOOLEAN; n_valor NUMBER(9); BEGIN DECLARE n_valor CHAR(11); d_fecha DATE; BEGIN END; END; http://luisgpalomino.blogspot.com/ 19 03/10/07

Slide 20: Alcance de las Variables... DECLARE b_Ok BOOLEAN; n_valor NUMBER(9); BEGIN DECLARE n_valor CHAR(11); d_fecha DATE; BEGIN END; END; http://luisgpalomino.blogspot.com/ 20 03/10/07

Slide 21: Alcance de las Variables... DECLARE b_Ok BOOLEAN; n_valor NUMBER(9); BEGIN n_valor Number(9) DECLARE n_valor CHAR(11); d_fecha DATE; BEGIN END; END; http://luisgpalomino.blogspot.com/ 21 03/10/07

Slide 22: Alcance de las Variables... DECLARE b_Ok BOOLEAN; n_valor NUMBER(9); BEGIN n_valor Number(9) DECLARE n_valor CHAR(11); d_fecha DATE; BEGIN n_valor Char(11) END; END; http://luisgpalomino.blogspot.com/ 22 03/10/07

Slide 23: Alcance de las Variables... DECLARE b_Ok BOOLEAN; n_valor NUMBER(9); BEGIN n_valor Number(9) DECLARE n_valor CHAR(11); d_fecha DATE; BEGIN n_valor Char(11) END; n_valor Number(9) END; http://luisgpalomino.blogspot.com/ 23 03/10/07

Slide 24: Alcance de las Variables... <<l_Fuera>> DECLARE b_Ok BOOLEAN; n_valor NUMBER(9); BEGIN n_valor Number(9) DECLARE n_valor CHAR(11); d_fecha DATE; BEGIN n_valor Char(11) END; l_Fuera.n_valor Number(9) END; http://luisgpalomino.blogspot.com/ 24 03/10/07

Slide 25: Estructuras de Control... IF/THEN/ELSE  IF <Cond1.> THEN <Instrucciones...>; [ELSIF <Cond2.> THEN <Instrucciones...>]; ... [ELSE <Instrucciones...>]; END IF; http://luisgpalomino.blogspot.com/ 25 03/10/07

Slide 26: Estructuras de Control... IF/THEN/ELSE  Numéricas. n_cant = 0 IF <Cond1.> THEN n_cant >= 0 <Instrucciones...>; Cadena. [ELSIF <Cond2.> THEN x_nom = ‘Lopez’ <Instrucciones...>]; ... Booleana. b_ok [ELSE NOT b_ok <Instrucciones...>]; END IF; Nulas. n_cant IS NULL http://luisgpalomino.blogspot.com/ 26 03/10/07

Slide 27: Estructuras de Control... IF/THEN/ELSE   Loops – Simples. LOOP <Instrucciones> END LOOP; http://luisgpalomino.blogspot.com/ 27 03/10/07

Slide 28: Estructuras de Control... IF/THEN/ELSE   Loops – Simples. LOOP <Instrucciones> END LOOP; Con salida... LOOP EXIT [WHEN <Condición>]; END LOOP; http://luisgpalomino.blogspot.com/ 28 03/10/07

Slide 29: Estructuras de Control... IF/THEN/ELSE   Loops – Simples. – WHILE Loops. WHILE <Condición> LOOP <Instrucciones>; END LOOP; http://luisgpalomino.blogspot.com/ 29 03/10/07

Slide 30: Estructuras de Control... IF/THEN/ELSE   Loops – Simples. – WHILE Loops. – # FOR Loops. FOR contador IN [REVERSE] lim_inf..lim_sup LOOP <Instrucciones>; END LOOP; FOR n IN 1..50 LOOP ... http://luisgpalomino.blogspot.com/ 30 03/10/07

Slide 31: Estructuras de Control... IF/THEN/ELSE  Pueden ser variables:  Loops DECLARE n_lim_inf NUMBER := 1; n_lim_sup NUMBER := 50; – Simples. BEGIN FOR n IN n_lim_inf..n_lim_sup LOOP – WHILE Loops. ... Usando REVERSE: – # FOR Loops. DECLARE FOR contador IN [REVERSE] lim_inf..lim_sup LOOP n_lim_inf NUMBER := 1; <Instrucciones>; n_lim_sup NUMBER := 50; BEGIN END LOOP; FOR n IN REVERSE 1..50 LOOP ... FOR n IN 1..50 LOOP ... http://luisgpalomino.blogspot.com/ 31 03/10/07

Slide 32: Estructuras de Control... IF/THEN/ELSE  • No es necesario declarar la vble: n. • Si se declara, la vble n, pierde el valor  Loops dentro del ciclo. Esta variable es de tipo BINARY_INTEGER. – Simples. DECLARE – WHILE Loops. n NUMBER := 10; BEGIN FOR n IN 1..5 LOOP – # FOR Loops. ... FOR contador IN [REVERSE] lim_inf..lim_sup LOOP <Instrucciones>; END LOOP; FOR n IN 1..50 LOOP ... http://luisgpalomino.blogspot.com/ 32 03/10/07

Slide 33: Estructuras de Control... IF/THEN/ELSE   Loops – Simples. – WHILE Loops. – # FOR Loops. GOTO  – Etiquetas (<<...>>). http://luisgpalomino.blogspot.com/ 33 03/10/07

Slide 34: Estructuras de Control... IF/THEN/ELSE  • Saltar al interior de un IF. • Saltar al Interior de un Bloque.  Loops • Saltar de un IF a otro o al mismo por el ELSE. • Saltar desde una rutina de manejo – Simples. de EXCEPTION al bloque anterior. – WHILE Loops. – # FOR Loops. GOTO  – Etiquetas (<<...>>). – Restricciones. http://luisgpalomino.blogspot.com/ 34 03/10/07

Slide 35: 3 Records and Tables ² Records Declaración  Asignación  Usando %ROWTYPE  ² Tables Declaración  Asignación  Atributos  http://luisgpalomino.blogspot.com/ 35 03/10/07

Slide 36: Records... Son similares a las estructuras de Power  Builder. Se manejan como una unidad.  Declaración:   Sintaxis – TYPE nombre_record IS RECORD ( campo_1 type1 [NOT NULL] [:= expr1], campo_2 type2 [NOT NULL] [:= expr2], ... campo_n typen [NOT NULL] [:= exprn]) http://luisgpalomino.blogspot.com/ 36 03/10/07

Slide 37: Records... Declaración:  Ej: TYPE t_afiliado is Record ( cedula number, nombre csv_afiliado.nm1_afilia%type ); v_afiliado t_afiliado; http://luisgpalomino.blogspot.com/ 37 03/10/07

Slide 38: Records... Asignación.  – Un registro puede ser asignado a otro registro.  Sintaxis: record1 := record2; record_name.campo := valor; Ej: t_afiliado.cedula := 16762276; t_afiliado.nombre := Gus; SELECT ide_afili,nm1_afilia INTO t_afiliado FROM csv_afiliado WHERE cod_afiliado = as_codigo; http://luisgpalomino.blogspot.com/ 38 03/10/07

Slide 39: Records Usando %ROWTYPE.  row_cartera CSV_CARTERA%ROWTYPE; http://luisgpalomino.blogspot.com/ 39 03/10/07

Slide 40: Tables... Son similares a un arreglo.   Declaración: Sintaxis – TYPE table_name IS TABLE OF type INDEX BY BINARY_INTEGER; Ej: TYPE t_cartera IS TABLE OF csv_cartera%ROWTYPE INDEX BY BINARY_INTEGER; http://luisgpalomino.blogspot.com/ 40 03/10/07

Slide 41: Tables... Asignación  Sintaxis: table(index).campo La variable index debe ser de tipo binary_integer. Ej: TYPEt_codigos IS TABLE OF CHAR(13) INDEX BY BINARY_INTEGER; V_codigos t_codigos; V_cartera t_cartera; V_codigos(1) := ‘1010000000123’; V_cartera(1).con_cartera := ‘1010001234556’; http://luisgpalomino.blogspot.com/ 41 03/10/07

Slide 42: Tables... Atributos  Atributo Retorna Tipo Descripción COUNT NUMBER Numero de Filas DELETE N/A Borra Filas EXISTS BOOLEAN Valida existencia FIRST BINARY_INTEGER Índice de 1a Fila LAST BINARY_INTEGER Índice de ultima fila NEXT BINARY_INTEGER Índice de la sgte fila PRIOR BINARY_INTEGER Índice de la anterior fila http://luisgpalomino.blogspot.com/ 42 03/10/07

Slide 43: Tables... Atributos  Ej: DECLARE TYPE t_table IS TABLE OF CHAR(1) INDEX BY BINARY_INTEGER; v_tabla t_table; regs BINARY_INTEGER ; filas BINARY_INTEGER ; BEGIN v_tabla(1) := 'a'; v_tabla(3) := 'b'; v_tabla(5) := 'c'; regs := v_tabla.first; http://luisgpalomino.blogspot.com/ 43 03/10/07

Slide 44: Tables... Atributos  filas := v_tabla.COUNT; IF v_tabla.EXISTS(4) THEN dbms_output.put_line('EXISTE'); ELSE dbms_output.put_line('NO EXISTE'); END IF; LOOP dbms_output.put_line(regs); dbms_output.put_line('leo '||v_tabla(regs)); EXIT WHEN regs = v_tabla.last; regs := v_tabla.NEXT(regs); END LOOP; END; http://luisgpalomino.blogspot.com/ 44 03/10/07

Slide 45: 4 SQL en PL/SQL... Categorías SQL. ² ² D.M.L. ² DB Link. ² Sinónimos. ² Pseudo-Columnas. ² Privilegios. ² Control de Transacciones. ² COMMIT; ² ROLLBACK; ² SAVEPOINT; http://luisgpalomino.blogspot.com/ 45 03/10/07

Slide 46: Categorías SQL... D.M.L. (INSERT, UPDATE, DELETE, SET ² TRANSACTION, EXPLAIN PLAN). D.D.L. (DROP, CREATE, ALTER, GRANT, REVOKE). ² Control de Transacciones. (COMMIT, ROLLBACK, ² SAVEPOINT). Control de Sesión. (ALTER SESION, SET ROLE). ² Control del Sistema. (ALTER SYSTEM). ² SQL Embebido. (CONNECT, DECLARE CURSOR, ² ALLOCATE). http://luisgpalomino.blogspot.com/ 46 03/10/07

Slide 47: D.M.L... SELECT. ² SELECT <Lista_Selección> INTO <Lista_Variables> FROM <Lista_Tablas> [WHERE <Condiciones>] [GROUP BY <Lista_Selección>] [ORDER BY <Lista_Selección>]; http://luisgpalomino.blogspot.com/ 47 03/10/07

Slide 48: D.M.L... SELECT. ² INSERT. ² INSERT INTO <Tabla_Referenciada> [(<Lista_Columnas>)] VALUES (<Lista_Expresiones>); INSERT INTO <Tabla_Referenciada> <Sentencia_SELECT>; http://luisgpalomino.blogspot.com/ 48 03/10/07

Slide 49: D.M.L... SELECT. ² INSERT. ² UPDATE. ² UPDATE <Tabla_Referenciada> SET <Columna_1> = <Expresión_1>, [<Columna_2> = <Expresión_2>, <Columna_n> = <Expresión_n>] [WHERE <Lista_Condiciones>]; http://luisgpalomino.blogspot.com/ 49 03/10/07

Slide 50: D.M.L... SELECT. ² INSERT. ² UPDATE. ² DELETE. ² DELETE FROM <Tabla_Referenciada> [WHERE <Lista_Condiciones>]; http://luisgpalomino.blogspot.com/ 50 03/10/07

Slide 51: DB Link... CREATE DATABASE LINK <Nombre_Enlace> ² CONNECT TO <Nombre_Usuario> IDENTIFIED BY <Contraseña> USING <Cadena_Conexión>; CREATE DATABASE LINK PRUEBAS CONNECT TO nalarodriguez IDENTIFIED BY nalarodriguez USING “PRODUCCION”; UPDATE csv_afiliado@PRUEBAS ² SET nm1_afilia = ‘PEDRO’ WHERE nm1_afilia LIKE ‘PEDR%’; http://luisgpalomino.blogspot.com/ 51 03/10/07

Slide 52: Sinónimos... CREATE SYNONYM <Nombre_Sinónimo> FOR <Objeto_Referencia>; ² ² CREATE SYNONYM afiliado_consulta FOR csv_afiliado@PRUEBAS; http://luisgpalomino.blogspot.com/ 52 03/10/07

Slide 53: Sinónimos... CREATE SYNONYM <Nombre_Sinónimo> FOR <Objeto_Referencia>; ² ² CREATE SYNONYM afiliado_consulta FOR csv_afiliado@PRUEBAS; UPDATE csv_afiliado@PRUEBAS SET nm1_afilia = ‘PEDRO’ WHERE nm1_afilia LIKE ‘PEDR%’; Reemplazando... UPDATE afiliado_consulta SET nm1_afilia = ‘PEDRO’ WHERE nm1_afilia LIKE ‘PEDR%’; http://luisgpalomino.blogspot.com/ 53 03/10/07

Slide 54: Pseudo-Columnas... CURRVAL y NEXTVAL. ² <Lista_Selección> de Sentencias SELECT. ² <Lista_Expresiones> de la Cláusula VALUES (INSERT). ² Con la Cláusula SET del UPDATE. ² No pueden usarse en WHERE. ² LEVEL. ² ROWID. ² ROWNUM. ² USER. ² SYSDATE. ² http://luisgpalomino.blogspot.com/ 54 03/10/07

Slide 55: Privilegios... (GRANT y REVOKE) GRANT... ² GRANT <Privilegio> ON <Objeto> TO <Destinatario> [WITH GRANT OPTION]; GRANT <Privilegio> TO <Destinatario> [WITH GRANT OPTION]; Objetos: GRANT SELECT ON csv_afiliado TO nalcaagudelo; GRANT INSERT, UPDATE ON csv_afiliado TO nalcaagudelo; Sistema: GRANT CREATE TABLE, ALTER ANY PROCEDURE TO nalcaagudelo; http://luisgpalomino.blogspot.com/ 55 03/10/07

Slide 56: Privilegios... (GRANT y REVOKE) GRANT... ² ² REVOKE... REVOKE <Privilegio> ON <Objeto> FROM <Destinatario> [CASCADE CONSTRAINTS]; REVOKE <Privilegio> FROM <Destinatario>; Objetos: REVOKE SELECT ON csv_afiliado FROM nalcaagudelo; REVOKE INSERT, UPDATE ON csv_afiliado FROM nalcaagudelo; Sistema: REVOKE CREATE TABLE, ALTER ANY PROCEDURE FROM nalcaagudelo; http://luisgpalomino.blogspot.com/ 56 03/10/07

Slide 57: 5 Funciones SQL Predefinidas SQL proporciona diversas funciones predefinidas que se puede llamar desde una orden SQL. Ej: SELECT UPPER(nm1_afilia) FROM csv_afiliado Muchas de las funciones pueden ser llamadas desde ordenes procedimentales. EJ: DECLARE v_nm1_afilia csv_afiliado.nm1_afilia%TYPE; BEGIN v_nm1_afilia := UPPER(‘Orlando’); END; http://luisgpalomino.blogspot.com/ 57 03/10/07

Slide 58: Categorias de Funciones ² Tipode argumento que cada función admite ² Grupo ² De una sola fila http://luisgpalomino.blogspot.com/ 58 03/10/07

Slide 59: Funciones de carácter que devuelven valores de carácter CHR  Sintaxis CHR(x) Propósito Devuelve el carácter del conjunto de caracteres cuyo valor es equivalente a x. Ejemplo: select chr(97) from dual; Resultado: a http://luisgpalomino.blogspot.com/ 59 03/10/07

Slide 60: Funciones de carácter que devuelven valores de carácter CONCAT  Sintaxis CNCAT(cadena1,cadena2) Propósito Devuelve la cadena1 concatenada con la cadena2. Ejemplo: select concat('Orlando',' Valverde') from dual; Resultado: Orlando Valverde http://luisgpalomino.blogspot.com/ 60 03/10/07

Slide 61: Funciones de carácter que devuelven valores de carácter INITCAP  Sintaxis INITCAP(cadena) Propósito Devuelve la misma cadena,con el primer carácter de cada palabra en mayúscula y el resto en minusculas. Ejemplo: select initcap('OrLando valvErde') from dual; Resultado: Orlando Valverde http://luisgpalomino.blogspot.com/ 61 03/10/07

Slide 62: Funciones de carácter que devuelven valores de carácter LOWER  Sintaxis LOWER(cadena) Propósito Devuelve la misma cadena,con todos los caracteres en minúsculas. Ejemplo: select lower('OrLando valvErde') from dual; Resultado: orlando valverde http://luisgpalomino.blogspot.com/ 62 03/10/07

Slide 63: Funciones de carácter que devuelven valores de carácter LPAD  Sintaxis LPAD(cadena1, x[,cadena2]) Propósito Devuelve la cadena1 rellena hacia la izquierda con los caracteres de la cadena2. http://luisgpalomino.blogspot.com/ 63 03/10/07

Slide 64: Funciones de carácter que devuelven valores de carácter LPAD  Ejemplos  select LPAD('Orlando Valverde',18) from dual Resultado: Orlando Valverde  select LPAD('Orlando Valverde',25,’XY’) from dual Resultado: XYXYXYXYXOrlando Valverde  select LPAD('Orlando Valverde',17,’XY’) from dual Resultado: XOrlando Valverde http://luisgpalomino.blogspot.com/ 64 03/10/07

Slide 65: Funciones de carácter que devuelven valores de carácter LTRIM  Sintaxis LTRIM(cadena1[,cadena2]) Propósito Devuelve la cadena1, quitando los caracteres de la izquierda contenidos en cadena2. Ejemplo: select ltrim('OrLando’, ‘O’) from dual; Resultado: rlando http://luisgpalomino.blogspot.com/ 65 03/10/07

Slide 66: Funciones de carácter que devuelven valores de carácter REPLACE  Sintaxis REPLACE(cadena,cad_busc[,cad_subst]) Propósito Devuelve cadena, reemplazando todas las apariciones de la cadena cad_busc con la cadena cad_subst Ejemplo:. select replace('Orlando','Orl','Hern') from dual; Resultado: Hernando http://luisgpalomino.blogspot.com/ 66 03/10/07

Slide 67: Funciones de carácter que devuelven valores de carácter RPAD  Sintaxis RPAD(cadena1, x[,cadena2]) Propósito Devuelve la cadena1 rellena hacia la derecha con los caracteres de la cadena2. http://luisgpalomino.blogspot.com/ 67 03/10/07

Slide 68: Funciones de carácter que devuelven valores de carácter RPAD  Ejemplos  select RPAD('Orlando Valverde',18) from dual Resultado: Orlando Valverde  select RPAD('Orlando Valverde',25,’XY’) from dual Resultado: Orlando ValverdeXYXYXYXYX  select LPAD('Orlando Valverde',17,’XY’) from dual Resultado: Orlando ValverdeX http://luisgpalomino.blogspot.com/ 68 03/10/07

Slide 69: Funciones de carácter que devuelven valores de carácter RTRIM  Sintaxis RTRIM(cadena1[,cadena2]) Propósito Devuelve la cadena1, quitando los caracteres de la derecha contenidos en cadena2. Ejemplo: select rtrim('OrLando, ‘o’) from dual; Resultado: Orland http://luisgpalomino.blogspot.com/ 69 03/10/07

Slide 70: Funciones de carácter que devuelven valores de carácter SOUNDEX  Sintaxis SOUNDEX(cadena) Propósito Devuelve la representación fonética de cadena. Ejemplo: select soundex('Orlando’) from dual; Resultado: O645 http://luisgpalomino.blogspot.com/ 70 03/10/07

Slide 71: Funciones de carácter que devuelven valores de carácter SUBSTR  Sintaxis SUBSTR(cadena,a[,b]) Propósito Devuelve una porción, de b caracteres de longitud, de la cadena proporcionada como argumento, empezando a partir de la posición a. Ejemplo: select substr('Orlando’,2,2) from dual; Resultado: rl http://luisgpalomino.blogspot.com/ 71 03/10/07

Slide 72: Funciones de carácter que devuelven valores de carácter SUBSTRB  Sintaxis SUBSTRB(cadena,a[,b]) Propósito Se comporta igual que SUBSTR, excepto en que a y b se especifican en bytes, y no en caracteres. Ejemplo: select substrb('Orlando’,2,2) from dual; Resultado: rl http://luisgpalomino.blogspot.com/ 72 03/10/07

Slide 73: Funciones de carácter que devuelven valores de carácter TRANSLATE  Sintaxis TRANSLATE(cadena,cad_origen,cad_destino) Propósito Devuelve la cadena proporcionada como argumento, con todas las apariciones de cada carácter de la cadena cod_origen reemplazadas por el correspondiente carácter de la cadena cad_destino. Ejemplo: select translate('Orlando’,’rl’,’ef’) from dual; Resultado: Oefando http://luisgpalomino.blogspot.com/ 73 03/10/07

Slide 74: Funciones de carácter que devuelven valores de carácter UPPER  Sintaxis UPPER(cadena) Propósito Devuelve la cadena proporcionada como argumento, con todas las letras en mayúsculas. Ejemplo: select upper('Orlando’) from dual; Resultado: ORLANDO http://luisgpalomino.blogspot.com/ 74 03/10/07

Slide 75: Funciones de carácter que devuelven valores numéricos ASCII  Sintaxis ASCII(cadena) Propósito Devuelve la representación decimal, en el conjunto de caracteres de la base de datos, del primer byte de la cadena. Ejemplo: select ascii('O’) from dual; Resultado: 79 http://luisgpalomino.blogspot.com/ 75 03/10/07

Slide 76: Funciones de carácter que devuelven valores numéricos INSTR  Sintaxis INSTR(cadena1,cadena2[,a[,b]]) Propósito Devuelve la posición de la cadena1 donde está contenida la cadena2. Ejemplo: select instr('orlando','o',1,2) from dual; Resultado: 7 http://luisgpalomino.blogspot.com/ 76 03/10/07

Slide 77: Funciones de carácter que devuelven valores numéricos INSTRB  Sintaxis INSTRB(cadena1,cadena2[,a[,b]]) Propósito Se comporta como INSTR, salvo en que a y el valor de retorno se expresan como bytes. Ejemplo: select instrb('orlando','o',1,2) from dual; Resultado: 7 http://luisgpalomino.blogspot.com/ 77 03/10/07

Slide 78: Funciones de carácter que devuelven valores numéricos LENGTH  Sintaxis LENGTH(cadena) Propósito Devuelve la longitud de la cadena, en caracteres. Ejemplo: select length('orlando') from dual; Resultado: 7 http://luisgpalomino.blogspot.com/ 78 03/10/07

Slide 79: Funciones de carácter que devuelven valores numéricos LENGTHB  Sintaxis LENGTHB(cadena) Propósito Se comporta igual que LENGTH, salvo en que el valor de retorno está expresado en bytes. Ejemplo: select lengthb('orlando') from dual; Resultado: 7 http://luisgpalomino.blogspot.com/ 79 03/10/07

Slide 80: Funciones de carácter que devuelven valores numéricos NLSSORT  Sintaxis NLSSORT(cadena) Propósito Devuelve la cadena de bytes empleadas para la ordenación de la cadena, proporcionada como argumento. Ejemplo: select nlssort('orlando') from dual; Resultado: 6F726C616E646F00 http://luisgpalomino.blogspot.com/ 80 03/10/07

Slide 81: Funciones numéricas ABS  Sintaxis ABS(x) Propósito Devuelve el valor absoluto de x. Ejemplo: select abs(7) from dual; Resultado: 7 http://luisgpalomino.blogspot.com/ 81 03/10/07

Slide 82: Funciones numéricas ASIN  Sintaxis ASIN(x) Propósito Devuelve el arco seno de x. El rango de x debe estar entre –1 y 1. Ejemplo: select asin(1) from dual; Resultado: 1.57079633 http://luisgpalomino.blogspot.com/ 82 03/10/07

Slide 83: Funciones numéricas ATAN  Sintaxis ATAN(x) Propósito Devuelve el arco tangente de x. Ejemplo: select atan(0.5) from dual; Resultado: .463647609 http://luisgpalomino.blogspot.com/ 83 03/10/07

Slide 84: Funciones numéricas ATAN2  Sintaxis ATAN(x) Propósito Devuelve el arco tangente de x e y.ATAN2(x,y) es lo mismo que ATAN(x/y). Ejemplo: select atan(1,2) from dual; Resultado: .463647609 http://luisgpalomino.blogspot.com/ 84 03/10/07

Slide 85: Funciones numéricas CEIL  Sintaxis CEIL(x) Propósito Devuelve el menor entero que sea mayor o igual que x. Ejemplo: select ceil(18.1) from dual; Resultado: 19 http://luisgpalomino.blogspot.com/ 85 03/10/07

Slide 86: Funciones numéricas COS  Sintaxis COS(x) Propósito Devuelve el coseno de x. Ejemplo: select cos(0) from dual; Resultado: 1 http://luisgpalomino.blogspot.com/ 86 03/10/07

Slide 87: Funciones numéricas COSH  Sintaxis COSH(x) Propósito Devuelve el coseno hiperbólico de x. Ejemplo: select cosh(0) from dual; Resultado: 1 http://luisgpalomino.blogspot.com/ 87 03/10/07

Slide 88: Funciones numéricas EXP  Sintaxis EXP(x) Propósito Devuelve e elevado a la potencia de x. Ejemplo: select exp(1) from dual; Resultado: 2.7182818 http://luisgpalomino.blogspot.com/ 88 03/10/07

Slide 89: Funciones numéricas FLOOR  Sintaxis FLOOR(x) Propósito Devuelve el mayor entero igual o menor que x. Ejemplo: select floor(23.5) from dual; Resultado: 23 http://luisgpalomino.blogspot.com/ 89 03/10/07

Slide 90: Funciones numéricas LN  Sintaxis LN(x) Propósito Devuelve el logaritmo natural de x. Ejemplo: select ln(100) from dual; Resultado: 4.6051702 http://luisgpalomino.blogspot.com/ 90 03/10/07

Slide 91: Funciones numéricas LOG  Sintaxis LOG(x,y) Propósito Devuelve el logaritmo de y en base x. Ejemplo: select log(2, 32) from dual; Resultado: 5 http://luisgpalomino.blogspot.com/ 91 03/10/07

Slide 92: Funciones numéricas MOD  Sintaxis MOD(x,y) Propósito Devuelve resto resultante de dividir x por y. Ejemplo: select mod(23, 5) from dual; Resultado: 3 http://luisgpalomino.blogspot.com/ 92 03/10/07

Slide 93: Funciones numéricas POWER  Sintaxis POWER(x,y) Propósito Devuelve el número x elevado a la potencia de y. Ejemplo: select power(4,3) from dual; Resultado: 64 http://luisgpalomino.blogspot.com/ 93 03/10/07

Slide 94: Funciones numéricas ROUND  Sintaxis ROUND(x[,y]) Propósito Devuelve x redondeado a y posiciones a la derecha del punto decimal. Ejemplo: select round(1263.55,-2) from dual; Resultado: 1300 http://luisgpalomino.blogspot.com/ 94 03/10/07

Slide 95: Funciones numéricas SIGN  Sintaxis SIGN(x) Propósito si x < 0, devuelve –1. Si x=0 devuelve 0. Si x>0, devuelve 1. Ejemplo: select sign(-47.3) from dual; Resultado: -1 http://luisgpalomino.blogspot.com/ 95 03/10/07

Slide 96: Funciones numéricas SIN  Sintaxis SIN(x) Propósito Devuelve el seno de x. Ejemplo: select sin(0.5) from dual; Resultado: 0,479425538604203 http://luisgpalomino.blogspot.com/ 96 03/10/07

Slide 97: Funciones numéricas SQRT  Sintaxis SQRT(x) Propósito Devuelve la raíz cuadrada de x. Ejemplo: select sqrt(64) from dual; Resultado: 4 http://luisgpalomino.blogspot.com/ 97 03/10/07

Slide 98: Funciones numéricas TAN  Sintaxis TAN(x) Propósito Devuelve la tangente de x. Ejemplo: select tan(0.5) from dual; Resultado: 0,546302489843791 http://luisgpalomino.blogspot.com/ 98 03/10/07

Slide 99: Funciones numéricas TANH  Sintaxis TANH(x) Propósito Devuelve la tangente hiperbólica de x. Ejemplo: select tanh(0.5) from dual; Resultado: 0,46211715726001 http://luisgpalomino.blogspot.com/ 99 03/10/07

Slide 100: Funciones numéricas TRUNC  Sintaxis TRUNC(x[,y]) Propósito Devuelve el valor x truncado a y posiciones decimales. Ejemplo: select trunc(1263.55,-2) from dual; Resultado: 1200 http://luisgpalomino.blogspot.com/ 100 03/10/07

Slide 101: Funciones de Fecha ADD_MONTHS  Sintaxis ADD_MONTHS(d,x) Propósito Devuelve la fecha d más x meses. Ejemplo: select add_months(’02-FEB-91’,1) from dual; Resultado: 02-Mar-91 http://luisgpalomino.blogspot.com/ 101 03/10/07

Slide 102: Funciones de Fecha LAST_DAY  Sintaxis LAST_DAY(d) Propósito Devuelve la fecha del ultimo día del mes al que d pertenece. Ejemplo: select last_day(’02-APR-91’) from dual; Resultado: 30-APR-91 http://luisgpalomino.blogspot.com/ 102 03/10/07

Slide 103: Funciones de Fecha MONTHS_BETWEEN  Sintaxis MONTHS_BETWEEN(fecha1,fecha2) Propósito Devuelve el número de meses existentes entre fecha1 y fecha2. Ejemplo: select months_between(’12-APR-71’,’12- MAR-97’) from dual; Resultado: -311 http://luisgpalomino.blogspot.com/ 103 03/10/07

Slide 104: Funciones de Fecha NEW_TIME  Sintaxis NEW_TIME(d,zona1,zona2) Propósito Devuelve la fecha y hora en la franja horaria zona2, cuando la fecha y hora en la franja horaria zona1 es d. http://luisgpalomino.blogspot.com/ 104 03/10/07

Slide 105: Funciones de Fecha NEXT_DAY  Sintaxis NEXT_DAY(d,cadena) Propósito Devuelve la fecha del día nombrado en cadena que es posterior a la fecha d. Ejemplo: select next_day(’18-MAR-02’,’thursday’) from dual; Resultado: 21/03/2002 http://luisgpalomino.blogspot.com/ 105 03/10/07

Slide 106: Funciones de Fecha ROUND  Sintaxis ROUND(d[,formato]) Propósito Redondea la fecha d a la unidad especificada en el formato. Ejemplo: select round(TO_DATE('18-MAR-02'),'MM') from dual; Resultado: 01/04/2002 http://luisgpalomino.blogspot.com/ 106 03/10/07

Slide 107: Funciones de Fecha SYSDATE  Sintaxis SYSDATE Propósito Devuelve la fecha y hora actuales. Ejemplo: select sysdate from dual; Resultado: 17/03/2002 10:40:20 http://luisgpalomino.blogspot.com/ 107 03/10/07

Slide 108: Funciones de Fecha TRUNC  Sintaxis TRUNC(d[,formato]) Propósito Devuelve la fecha d, truncade a la unidad especificada en el formato. Ejemplo: select trunc(TO_DATE('18-MAR-02'),'MM') from dual; Resultado: 01/03/2002 http://luisgpalomino.blogspot.com/ 108 03/10/07

Slide 109: Aritmetica de Fechas Operación d1 – d2 Tipo de valor devuelto NUMBER Resultado Devuelve la diferencia en días entre d1 y d2. http://luisgpalomino.blogspot.com/ 109 03/10/07

Slide 110: Aritmetica de Fechas Operación d1 + d2 Tipo de valor devuelto N/A Resultado Dos fechas solo pueden restarse. http://luisgpalomino.blogspot.com/ 110 03/10/07

Slide 111: Aritmetica de Fechas Operación d1 + n Tipo de valor devuelto DATE Resultado Suma n días a d1. El valor de n puede ser un número real, incluyendo fracción de día. http://luisgpalomino.blogspot.com/ 111 03/10/07

Slide 112: Aritmetica de Fechas Operación d1 - n Tipo de valor devuelto DATE Resultado Restan n días a d1. El valor de n puede ser un número real, incluyendo fracción de día. http://luisgpalomino.blogspot.com/ 112 03/10/07

Slide 113: Funciones de Conversión CHARTOROWID  Sintaxis CHARTOROWID(cadena) Propósito Convierte un valor CHAR o VARCHAR2, que contiene el formato externo de un valor ROWID, al formato binario interno. Ejemplo: select per_nom from consolida_mes where rowid = CHARTOROWID('AAAAenAAIAAAdVVAAX'); Resultado: Orlando http://luisgpalomino.blogspot.com/ 113 03/10/07

Slide 114: Funciones de Conversión CONVERT  Sintaxis CONVERT(cadena, conjunto_dest[,conjunto_fuente) Propósito Convierte la cadena de caracteres proporcionada como argumento desde el conjunto de caracteres conjunto_fuente al conjunto de caracteres conjunto_dest. http://luisgpalomino.blogspot.com/ 114 03/10/07

Slide 115: Funciones de Conversión HEXTORAW  Sintaxis HEXTORAW(cadena) Propósito Convierte el valor binario representado por cadena a un valor de tipo RAW. La cadena debe contener valores hexadecimales. Ejemplo: INSERT INTO raw_table(raw_column) VALUES (HAXTORAW('017D3F'); http://luisgpalomino.blogspot.com/ 115 03/10/07

Slide 116: Funciones de Conversión RAWTOHEX  Sintaxis RAWTOHEX(valor_raw) Propósito Convierte el valor de tipo RAW valor_raw a una cadena de caracteres que contiene su representación hexadecimal. Ejemplo: select rawtohex(raw_column) from raw_table; Resultado: 017D3F http://luisgpalomino.blogspot.com/ 116 03/10/07

Slide 117: Funciones de Conversión ROWIDTOCHAR  Sintaxis ROWIDTOCHAR(rowid) Propósito Convierte el valor ROWID, a su representación externa en forma de cadena de 18 caracteres. Ejemplo: select rowidtochar(rowid) from consolida_mes where rownum = 1 ; Resultado: AAAAenAAIAAAdVVAAX http://luisgpalomino.blogspot.com/ 117 03/10/07

Slide 118: Funciones de Conversión TO_CHAR  Sintaxis TO_CHAR(d[,formato[,paramnls]]) Propósito Convierte la fecha d a una cadena de caracteres VARCHAR2. El parámetro paramnls controla el idioma de los componentes de mes y día de la cadena devuelta. El formato de paramnls es: ‘NLS_DATE_LANGUAGE = idioma’ Ejemplo: select to_char(sysdate,’dd/mm/yyyy’) from dual; Resultado: 19/03/2002 http://luisgpalomino.blogspot.com/ 118 03/10/07

Slide 119: Funciones de Conversión TO_CHAR(etiquetas)  Sintaxis TO_CHAR(etiqueta[,formato]) Propósito Convierte la etiqueta MLSLABELal tipo VARCHAR2. http://luisgpalomino.blogspot.com/ 119 03/10/07

Slide 120: Funciones de Conversión TO_CHAR(números)  Sintaxis TO_CHAR(num[,formato[,paramnls]]) Propósito Convierte el argumento n a una cadena de caracteres VARCHAR2. El parámetro paramnls se emplea para especificar el separador decimal y de grupo, y el simbolo de moneda. Puede tener el formato ‘NLS_NUMERIC_CHARS = “dg” NLS_CURRENCY = “cadena”’, donde d y g representan los separadores decimales y de grupo, respectivamente y cadena representa el símbolo de la moneda Ejemplo: select to_char(123456,’99G99G99’) from dual; Resultado: 12,34,56 http://luisgpalomino.blogspot.com/ 120 03/10/07

Slide 121: Funciones de Conversión TO_DATE  Sintaxis TO_DATE(cadena[,formato[,paramnls]]) Propósito Convierte una cadena CHAR o VARCHAR2 a una valor de fecha tipo DATE. El parámetro formato es una cadena de formato fecha. Ejemplo: select to_date(’19/03/2002’,’dd/mm/yyyy’) from dual; Resultado: 19/03/2002 http://luisgpalomino.blogspot.com/ 121 03/10/07

Slide 122: Funciones de Conversión TO_LABEL  Sintaxis TO_LABEL(cadena[,formato]) Propósito Convierte una cadena CHAR o VARCHAR2 en una etiqueta MLSLABEL. El parámetro formato se utiliza para la conversion. http://luisgpalomino.blogspot.com/ 122 03/10/07

Slide 123: Funciones de Conversión TO_MULTI_BYTE  Sintaxis TO_MULTI_BYTE(cadena) Propósito Convierte la cadena con todos los caracteres de un único byte reemplazados por sus caracteres multibyte. Ejemplo: select to_multi_byte(’Hello’) from dual; Resultado: Hello http://luisgpalomino.blogspot.com/ 123 03/10/07

Slide 124: Funciones de Conversión TO_NUMBER  Sintaxis TO_NUMBER(cadena[,formato[,paramnls]]) Propósito Convierte la cadena CHAR o VARCHAR2 a un valor de tipo NUMBER. Ejemplo: select to_number(’$123.45’,’$999.99’) from dual; Resultado: 123,45 http://luisgpalomino.blogspot.com/ 124 03/10/07

Slide 125: Funciones de Conversión TO_SINGLE_BYTE  Sintaxis TO_SINGLE_BYTE(cadena) Propósito Convierte todos los caracteres multibyte de cadena a sus caracteres equivalentes de un único byte. Ejemplo: select to_single_byte(’Hello’) from dual; Resultado: Hello http://luisgpalomino.blogspot.com/ 125 03/10/07

Slide 126: Funciones de Grupo AVG  Sintaxis AVG([DISTINCT|ALL]col) Propósito Devuelve el promedio de los valores de la columna. Ejemplo: select avg(salario) from consolida_mes; Resultado: 330589 http://luisgpalomino.blogspot.com/ 126 03/10/07

Slide 127: Funciones de Grupo COUNT  Sintaxis COUNT(*|[DISTINCT|ALL]col) Propósito Devuelve el número de filas en la consulta. Si se pasa * como argumento, entonces devuelve el número total de filas. Si se utiliza, en su lugar, un elemento de lista de selección, se cuentan los valores no nulos. Ejemplo: select count(salario) from consolida_mes; Resultado: 52 select count(*) from consolida_mes; Resultado: 856 http://luisgpalomino.blogspot.com/ 127 03/10/07

Slide 128: Funciones de Grupo GLB  Sintaxis GLB([DISTINCT|ALL]etiqueta) Propósito Devuelve la mayor cota inferior de etiqueta. Esta función sólo tiene sentido en Trusted Oracle. http://luisgpalomino.blogspot.com/ 128 03/10/07

Slide 129: Funciones de Grupo LUB  Sintaxis LUB([DISTINCT|ALL]etiqueta) Propósito Devuelve la menor cota inferior de etiqueta. Esta función sólo tiene sentido en Trusted Oracle. http://luisgpalomino.blogspot.com/ 129 03/10/07

Slide 130: Funciones de Grupo MAX  Sintaxis MAX([DISTINCT|ALL]col) Propósito Devuelve el valor máximo del elemento de la lista de selección. Ejemplo: select max(salario) from consolida_mes; Resultado: 586245 http://luisgpalomino.blogspot.com/ 130 03/10/07

Slide 131: Funciones de Grupo MIN  Sintaxis MIN([DISTINCT|ALL]col) Propósito Devuelve el valor mínimo del elemento de la lista de selección. Ejemplo: select min(salario) from consolida_mes; Resultado: 125685 http://luisgpalomino.blogspot.com/ 131 03/10/07

Slide 132: Funciones de Grupo STDDEV  Sintaxis STDDEV([DISTINCT|ALL]col) Propósito Devuelve la desviación estándar del elemento de la lista de selección. Ejemplo: select stddev(salario) from consolida_mes; Resultado: 422.19664 http://luisgpalomino.blogspot.com/ 132 03/10/07

Slide 133: Funciones de Grupo SUM  Sintaxis SUM([DISTINCT|ALL]col) Propósito Devuelve la suma de los valores para el elemento de la lista de selección. Ejemplo: select sum(salario) from consolida_mes; Resultado: 15468958 http://luisgpalomino.blogspot.com/ 133 03/10/07

Slide 134: Funciones de Grupo VARIANCE  Sintaxis VARIANCE([DISTINCT|ALL]col) Propósito Devuelve la varianza estadística del elemento de la lista de selección. Ejemplo: select variance(salario) from consolida_mes; Resultado: 178250 http://luisgpalomino.blogspot.com/ 134 03/10/07

Slide 135: Otras Funciones BFILENAME  Sintaxis BFILENAME(directorio, nombre_archivo) Propósito Devuelve el localizador BFILE asociado con el archivo físico nombre_archivo en el sistema operativo; directorio debe ser un objeto del tipo DIRECTORY en el diccionario de datos. http://luisgpalomino.blogspot.com/ 135 03/10/07

Slide 136: Otras Funciones DECODE  Sintaxis DECODE(expr_base, compara1, valor1, compara2, valor2, ..... predeterminado) Propósito La función DECODE es similar a una serie de órdenes IF-THEN-ELSE. Ejemplo: select decode(‘abc’,’a’,1,’abc’,2,3) from dual; Resultado: 2 http://luisgpalomino.blogspot.com/ 136 03/10/07

Slide 137: Otras Funciones DUMP  Sintaxis DUMP(expr[,formato_num[,pos_inicio[,longitud]]] Propósito Devuelve un valor VARCHAR2 que contiene información acerce de la representación interna de expr. Ejemplo: select decode(‘abc’,’a’,1,’abc’,2,3) from dual; Resultado: 2 http://luisgpalomino.blogspot.com/ 137 03/10/07

Slide 138: Otras Funciones EMPTY_CLOB/EMPTY_BLOB  Sintaxis EMPTY_CLOB EMPTY_BLOB Propósito Devuelve un localizador LOB vacío. EMPTY_CLOB devuelve un localizador de carácter, mientras que EMPTY_BLOB devuelve un localizador binario. http://luisgpalomino.blogspot.com/ 138 03/10/07

Slide 139: OTRAS Funciones GREATEST  Sintaxis GREATEST(expr1[,expr2]..) Propósito Devuelve la expresión con mayor valor de todos sus argumentos. Ejemplo: select greatest(10,’7’,’3’) from dual; Resultado: 10 http://luisgpalomino.blogspot.com/ 139 03/10/07

Slide 140: OTRAS Funciones GREATEST_LB  Sintaxis GREATESTLB(etiqueta1[,etiqueta2]..) Propósito Devuelve la mayor cota inferior de la lista de etiquetas. Esta función sólo es valida en Trusted Oracle. http://luisgpalomino.blogspot.com/ 140 03/10/07

Slide 141: