Jesús García

14
Ago

Función Oracle: LISTAGG

La función LISTAGG se utiliza, para pivotar filas en una única columna concatenando los valores con un separador indicado. LA diferencia con la función PIVOT, es que pivota un valor a una columna sin combinarlas en el mismo campo (ver artículo PIVOT). Como alternativas en versiones anteriores podía utilizar CASE, pero no era dinámico, o la función COLLECT, pero es

Read more

31
Mar

Funciones Oracle: FIRST_VALUE y LAST_VALUE

Las funciones FIRST_VALUE() y LAST_VALUE() proporcionan el valor inicial y final en una lista ordenada respectivamente. FIRST_VALUE: Obtendría el primer valor LAST_VALUE: Obtendría el último valor SINTAXIS: función (<expresion_valor_1> [,<offset> [, <valor_por_defecto> ]]) OVER ([PARTITION BY <expresion_valor_3> [,<expresion_valor_4>, …]]) ORDER BY <expresion_valor_2> [ASC|DESC] [NULLS FIRST | NULLS LAST] [,…] [ventana]) siendo ventana: [ROWS|RANGE] inicio AND fin función – FIRST_VALUE o

Read more

21
Mar

Funciones ordenación:ROW_NUMBER, RANK y DENSE_RANK

ROW_NUMBER, RANK y DENSE_RANK son funciones de ordenación dentro de una partición. La función ROW_NUMBER es una función analítica, que asigna un valor único dentro una partición según un orden determiado. El valor parte de 1. Diferencias entre ROW_NUMBER, RANK y DENSE_RANK sería: ROW_NUMBER: asigna numeros contiguos y unicos desde 1 hasta el último según la ordenación y por cada

Read more

14
Mar

Funciones Oracle: LAG y LEAD

Con las funciones LAG() y LEAD() se obtienen el valor anterior o posterior en una lista ordenada. Con estas funciones se evita la necesidad de realizar un join con la misma tabla. LAG: Obtendría el valor del registro anterior LEAD: Obtendría el valor del registro posterior SINTAXIS: función (<expresion_valor_1> [,<offset> [, <valor_por_defecto> ]]) OVER ([PARTITION BY <expresion_valor_3> [,<expresion_valor_4>, …]]) ORDER

Read more

22
Sep

Funciones Oracle: pivot / unpivot

PIVOT, permite trasponer filas a columnas y UNPIVOT, permite el paso inverso, el paso de columnas a filas. Están disponibles a partir de la versión Oracle 11G. La mismo que se realiza mediante PIVOT y UNPIVOT, se podía realizar en versiones anteriores, mediante funciones de decodificación, pero son menos eficiente y si había muchos valores podría ser bastante engorroso. EJEMPLO

Read more

21
Dic

Oracle: Trucos para DBA II

OPTIMIZACIÓN IDENTIFICA TABLESPACES Y PROPIETARIOS DE LOS MISMOS. SI TIENE DEMASIADOS EXTENT, EL TAMAÑO DE LOS EXTENT PUEDE NO SER OPTIMO SELECT owner, DECODE (partition_name, NULL, segment_name, segment_name || ‘:’ || partition_name) name, segment_type, tablespace_name, bytes, initial_extent, next_extent, PCT_INCREASE, extents, max_extents FROM dba_segments WHERE extents > 1 ORDER BY 9 DESC, 3; MEMORIA SHARE_POOL LIBRE Y USADA SELECT name,to_number(value) bytes

Read more

16
Dic

Oracle: Trucos para DBA I

PARÁMETROS Y ESTADO DE LA BASE DE DATOS INFORMACIÓN INSTANCIA Información del estado de una instancia de base de datos: estado, versión, nombre, cuando se levanto, el nombre de la máquina, … SELECT * FROM v$instance; NOMBRE DE LA BASE DE DATOS A veces no sabemos donde estamos conectados, una forma es localizar el nombre de la base de datos

Read more

12
Dic

Evitar el error Oracle ORA-04091 (tabla mutante)

Este error ocurre usualmente al realizar una consulta de un campo desde un trigger y ese campo es el que hace, que salte el trigger.   Vamos a ver un ejemplo, que produce este error: — Creamos una tabla CREATE TABLE usuarios (id Number, nombre VARCHAR2(10)); — Insertamos registros de prueba INSERT INTO usuarios values (1, ‘Pepe’); INSERT INTO usuarios

Read more

9
Nov

Diseño data warehouse: hechos y dimensiones; modelo estrella VS copo de nieve

En el diseño de un data warehouse hay que partir de una serie de características, como ponía en el artículo Introducción a los Data Warehouse: Administra grandes cantidades de información Guarda histórico de datos Condesa y agrega información Integra y asocia información de varias fuentes   Para ello, hay que cambiar de los modelos E/R usuales en los operacionales, ya

Read more

11
Oct

Tablas externas en Oracle

Las tablas externas es una funcionalidad, que proporciona Oracle, para facilitar la lectura de ficheros formateados, como si fueran tablas. Este tipo de tablas son de sólo lectura y no permite utilizar manipulación de datos (DML). No admite la creación de índices sobre este tipo de tablas. Las tablas externas se utilizan en cargas de ficheros repetitivos y sin tener

Read more

7
Oct

Sintaxis y ejemplo de la creación de usuario o esquema en Oracle

En la creación de un usuario se pueden determinar los siguientes elementos: – Nombre de usuario: No es sensitivo a mayusculas o minúsculas – Password: Es sensitivo a mayusculas o minúsculas a partir de la versión 11G – Expiración de la password – Perfil (profile): esquema de los recursos del sistema de los que dispone un grupo usuario – Tablespace

Read more

16
Ago

Mascaras de tiempo en Oracle

Las mascaras de tiempo se utilizan para indicar como se realizan las transformaciones de caracter a fecha u hora el formato. MÁSCARA DESCRIPCIÓN – / , . ; : Símbolos de puntuación se reproducen en la cadena resultante “texto” Se reproduce el texto entre comillas dobles YEAR, SYEAR Año alfabético. SYEAR devuelve las fechas AC como negativas YYYY, SYYYY Año

Read more

16
Ago

BULK COLLECT: ejemplos

Os recomiendo tambien leer: introducción a BULK COLLECT EJEMPLO recuperar registros con bulk collect: DECLARE TYPE t_salarios IS TABLE OF empleado.salario%TYPE; salarios t_salarios; BEGIN SELECT salario BULK COLLECT INTO salarios FROM empleados WHERE ROWNUM <= 1000; END; EJEMPLO recuperar registros utilizando un cursor: DECLARE TYPE DeptRecTab IS TABLE OF departamentos%ROWTYPE; dept_recs DeptRecTab; CURSOR c IS SELECT id_departamento, nob_departamento FROM departamentos

Read more

26
Jul

Busqueda de un texto en el código PL/SQL almacenado en base de datos

No os ha pasado alguna vez, que tenéis que buscar un literal en cierta parte del código y no os acordais donde era. Una forma rápida y sencilla es consultar las tablas user_source o all_source. Estas tablas contienen por cada línea de código el propietario del objeto, el nombre del objeto, el tipo, la línea y el contenido de la

Read more

16
Jul

Nuevas funcionalidades Oracle Database 12c

A principios de julio, Oracle saco a la luz la nueva versión de su base de datos, Oracle 12c, la C indica “Cloud” y también “Container”. Incorpora más de 500 mejoras respecto a la versión 11G R2. ARQUITECTURA MULTITENANT Las bases de datos conectables simplifican el proceso de consolidar bases de datos en la nube, permitiendo administrar muchas bases de

Read more

15
Jul

Instalación Oracle 12c en CENTOS

Requisitos hardware para Linux x86-64 Enterprise edition: – Memoria RAM mínima recomendada 2 GB – Tamaño de SWAP la misma cantidad que la memoria RAM hasta los 16GB – Espacio de disco necesario, para la instalación -> 6,4 GB. Con base de datos de ejemplo 10 GB – Espacio temporal necesario (/tmp) -> 1GB Requisitos para Centos 6 / Redhat

Read more

6
Jul

Fechas: funciones y tipos en Oracle

TIPOS DE DATOS DE FECHAS DATE Rango desde 01/01/4712 AC hasta 31/12/9999 DC. El tamaño es de 7 bytes. El formato lo determina de manera implicita el parámetro NLS_TERRITORY y explicitamente el parámetro NLS_DATE_FORMAT No contempla las fracciones de segundo ni la zona horaria. TIMESTAMP [(fracciones_de_segundos)] Admite fracciones de 0 a 9 dígitos, aunque por defecto son 6. Dependiendo de

Read more

28
Jun

Backup Oracle en frío u offline

Las copia de seguridad en frio u offline, implica la parada de la base de datos y copiar todos los ficheros. VENTAJAS: Backup y recuperación sencilla Pocos comandos y del sistema operativo Facilidad de automatización Recuperación completa de una manera rápida DESVENTAJAS: Necesita una ventana de tiempo Corta los procesos y el acceso de los usuarios Recuperación hasta el instante

Read more

15
Jun

BULK COLLECT

En la base de datos Oracle hay dos motores, uno para ejecutar PL/SQL y otro para SQL. Cuando el PL/SQL quiere manipular datos, accede al motor de SQL. Esto conlleva muchos recursos. Bulk collect agrupa varias instrucciones y lo realiza en una sola ejecución, optimizando los cambios de contexto. Es importante si se trabaja con grandes volumenes de datos. Es

Read more

12
Jun

PL SQL dinámico

Consiste en la ejecución de sentencias SQL o bloques PL/SQL a partir de una cadena de texto montadas de manera dinámica. El uso de execute immediate es muy cómodo para la construcción de sql dinámicos el problema es el parseo de estas sentencias. Las bind variables, evita parseos inecesarios. Para evitar SQL Injection en PL/SQL dinámico es importante utilizar bind

Read more

8
Jun

Introducción a los data warehouse

  DEFINICIÓN Un data warehouse se encarga de extraer datos de las bases de datos operacionales o fuentes externa, transformar, consolidar, integrar, chequear la integridad y centralizar los datos que la empresa genera en su actividad diaria de negocios y/o información externa con la que este relacionada. Un data warehouse permite el acceso y manipulación de la información, a través

Read more

2
Jun

Eliminación de registros duplicados en Oracle

Ejemplo de eliminación sencilla de registros duplicados en una tabla Oracle: Creamos una tabla: SQL> create table tabla (ID number, columna1 varchar2(20), columna2 varchar2(20)); # Hacemos algunos insert en la tabla: SQL> insert into tabla values (1, ‘primero’, ‘primero’); SQL> insert into tabla values (2, ‘segundo’, ‘primero’); SQL> insert into tabla values (3, ‘tercero’, ‘primero’); SQL> commit; # Duplicamos un

Read more

27
May

Introducción a Oracle PL/SQL

PL/SQL significa Procedural Language/Structured Query Language. Es un lenguaje de programación incluido dentro de la base de datos. Los procedimientos, funciones, disparadores y paquetes creados con el PL/SQL se almacenan en base de datos. Están incluidos dentro de las políticas de seguridad de Oracle y son altamente recomendables, para el tratamiento de datos. El PL/SQL surge ante la necesidad de

Read more

26
May

Instalación de Oracle Database Express 11G (Oracle XE)

Para empezar a desarrollar en Oracle recomiendo instalar Oracle Database Express Edition 11 G. La principal diferencia respecto al resto de ediciones de Oracle Database 11 G, es poder embeberse con otras aplicaciones de terceros y se puede distribuir gratuitamente. Oracle pretende con esta edición introducir a las bases de datos Oracle a desarrolladores, administradores de bases de datos, estudiantes

Read more

23
May

Tipos de herramientas para Business Intelligence

Business Intelligence tiene como objetivo facilitar el acceso y análisis de la información corporativa y proporcionar las herramientas tecnológicas adecuadas para la toma de decisiones. Existen diferentes formas de analizar la información, y por ello existen diferentes enfoques, para abordar las distintas necesidades análisis. Análisis OLAP: Exploración, tablas dinámicas, etc. Herramientas de reporting: Herramientas para generación de informes, etc. EIS

Read more

12
May

Introducción a las base de datos Oracle

TIPOS DE BASES DE DATOS ORACLE Las bases de datos Oracle podrían clasificarse en función de la funcionalidad, que se le quiere dar: Procesado transaccional en línea (Online Transactional Processing – OLTP): base de datos orientada a gran número de transacciones en poco tiempo. La respuesta es rápida y con integridad de los datos a la hora de realizar gran

Read more

30
Abr

Ediciones y opciones Oracle 11G

  EDICIONES ORACLE DATABASE 11G   Existen cinco ediciones distintas de base de datos Oracle con opciones específicas, para cada una de ellas. Oracle Database Standard Edition One Ofrece facilidad de uso, potencia y rendimiento para grupos de trabajo, a nivel de departamentos y aplicaciones Web. Desde los entornos de un solo servidor para pequeñas empresas a los entornos de

Read more