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:



Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 5 (more)