Este documento describe los paquetes (packages) en PL/SQL. Un paquete permite agrupar procedimientos, funciones, tipos de datos y declaraciones de variables de forma modular. Los paquetes mejoran la organización del código y permiten ocultar detalles de implementación. Pueden contener secciones de declaración y cuerpo que definen elementos accesibles públicamente o privadamente.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.3 Tema 8: CURSORES
4.3.1 Tipo de cursores
4.3.2 Declaración de cursores
4.3.3 Apertura de cursores
4.3.4 Almacenamiento de datos de cursores
4.3.5 Cierre de cursores
4.3.6 Atributos de los cursores
4.3.7 Uso avanzado de cursores
Sesion07- Estructuras de control (Oracle)José Toro
El documento presenta los objetivos de la sesión 06 sobre estructuras de control en PL/SQL. Explica el uso de las estructuras condicionales IF y CASE, así como los bucles LOOP, WHILE y FOR. También cubre la sentencia GOTO. Finalmente, proporciona ejemplos de problemas y su solución utilizando estas estructuras de control.
Con este poderoso API de HTML 5 podrás realizar aplicaciones Web y para dispositivos móviles con toda la potencia de bases de datos de servidor, de forma rápida y segura, ya que está basado en el motor de SQLite. Se muestra toda la potencia de la sentencia SELECT por medio del DQL (Data Query Language) del API.
Dentro de las funciones de agregado del API WebSQL database de HTML 5 tendremos las siguientes:COUNT(*), MAX(*), MIN(*), AVG(*), SUM(*), UPPER(*) y LOWER(*), LENGTH(*) y SUBSTR()
Sesion09 - Manejo de Excepciones (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.4 Tema 9: EXCEPCIONES EN PL/SQL
4.4.1 ¿Qué es una Excepción?
4.4.2 Declaración de Excepciones
4.4.3 Generación de Excepciones
4.4.4 Tratamiento de Excepciones
4.4.5 Propagación de Excepciones
Estudiaremos las instrucciones para la manipulación de datos (DML) en el API WebSQL Database, como son el Insert, Update y Delete, para insertar, modificar y borrar un registro, respectivamente.
Sesion06b - Introducción al PL-SQL (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.1 Tema 6: PROGRAMACIÓN PL/SQL
4.1.1 Introducción a Oracle PL/SQL
4.1.2 Tipos de datos en PL/SQL
4.1.3 Estructuras de Bloques de PL/SQL
4.1.4 Sentencias SQL en PL/SQL
Sesion05 - Manipulacion de datos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.3 Tema 8: CURSORES
4.3.1 Tipo de cursores
4.3.2 Declaración de cursores
4.3.3 Apertura de cursores
4.3.4 Almacenamiento de datos de cursores
4.3.5 Cierre de cursores
4.3.6 Atributos de los cursores
4.3.7 Uso avanzado de cursores
Sesion07- Estructuras de control (Oracle)José Toro
El documento presenta los objetivos de la sesión 06 sobre estructuras de control en PL/SQL. Explica el uso de las estructuras condicionales IF y CASE, así como los bucles LOOP, WHILE y FOR. También cubre la sentencia GOTO. Finalmente, proporciona ejemplos de problemas y su solución utilizando estas estructuras de control.
Con este poderoso API de HTML 5 podrás realizar aplicaciones Web y para dispositivos móviles con toda la potencia de bases de datos de servidor, de forma rápida y segura, ya que está basado en el motor de SQLite. Se muestra toda la potencia de la sentencia SELECT por medio del DQL (Data Query Language) del API.
Dentro de las funciones de agregado del API WebSQL database de HTML 5 tendremos las siguientes:COUNT(*), MAX(*), MIN(*), AVG(*), SUM(*), UPPER(*) y LOWER(*), LENGTH(*) y SUBSTR()
Sesion09 - Manejo de Excepciones (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.4 Tema 9: EXCEPCIONES EN PL/SQL
4.4.1 ¿Qué es una Excepción?
4.4.2 Declaración de Excepciones
4.4.3 Generación de Excepciones
4.4.4 Tratamiento de Excepciones
4.4.5 Propagación de Excepciones
Estudiaremos las instrucciones para la manipulación de datos (DML) en el API WebSQL Database, como son el Insert, Update y Delete, para insertar, modificar y borrar un registro, respectivamente.
Sesion06b - Introducción al PL-SQL (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.1 Tema 6: PROGRAMACIÓN PL/SQL
4.1.1 Introducción a Oracle PL/SQL
4.1.2 Tipos de datos en PL/SQL
4.1.3 Estructuras de Bloques de PL/SQL
4.1.4 Sentencias SQL en PL/SQL
Sesion05 - Manipulacion de datos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
El documento explica los pasos para declarar, abrir, recorrer, cerrar y desalojar un cursor en SQL Server. Un cursor permite recorrer fila a fila y leer o modificar un conjunto de datos definido por una consulta T-SQL. Los pasos incluyen declarar el cursor con la consulta, abrirlo para cargar los datos, recorrerlo fila a fila, cerrarlo para liberar los registros y desalojarlo para eliminar la referencia.
Este documento presenta los conceptos básicos de programación con PL/SQL, incluyendo bloques PL/SQL, tipos de datos estructurados, funciones y procedimientos, paquetes, métodos asociados a tipos de objetos y disparadores de base de datos. Explica la estructura de un bloque PL/SQL, que consta de secciones declarativa, de ejecución y de excepciones. También describe las instrucciones, tipos de datos, funciones y sentencias que se pueden utilizar en PL/SQL.
Sesion10 - Funciones y procedimientos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Este documento describe las instrucciones de lenguaje de manipulación de datos (DML) en SQL como INSERT, UPDATE y DELETE para agregar, modificar y eliminar filas de una tabla, respectivamente. También explica cómo controlar transacciones con COMMIT, ROLLBACK y SAVEPOINT y mantener la visibilidad consistente de los datos. El objetivo es que el lector aprenda a manipular datos en tablas de bases de datos relacionales mediante las instrucciones DML básicas y el control de transacciones.
Semana 5 y 6 cursores implícitos y explícitosvictdiazm
Este documento describe los conceptos clave de los cursores implícitos y explícitos en bases de datos. Los cursores son utilizados para gestionar los resultados de una sentencia SELECT y permiten recorrer y acceder a los datos de un conjunto de registros. Los cursores implícitos devuelven una única fila, mientras que los cursores explícitos pueden devolver cero o más filas y requieren declaración, apertura, extracción y cierre.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Sesion06c - Sentencias SQL en PL-SQL (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.1 Tema 6: PROGRAMACIÓN PL/SQL
4.1.1 Introducción a Oracle PL/SQL
4.1.2 Tipos de datos en PL/SQL
4.1.3 Estructuras de Bloques de PL/SQL
4.1.4 Sentencias SQL en PL/SQL
Este documento explica el uso de los operadores de conjunto en SQL. Describe los operadores UNION, UNION ALL, INTERSECT, MINUS y cómo usar la cláusula ORDER BY con operadores de conjunto. Explica cómo combinar consultas SQL usando estos operadores para devolver filas distintas, duplicadas o comunes entre consultas.
Este documento proporciona una introducción al lenguaje PL/SQL. PL/SQL es un lenguaje de programación procedural diseñado por Oracle que extiende SQL. Permite declarar variables, constantes, estructuras de control como bucles y condicionales, y manejo de excepciones. Los bloques PL/SQL contienen declaraciones, instrucciones y secciones de manejo de excepciones. Se pueden usar cursores para recuperar y procesar múltiples filas de una consulta.
Un ResultSet representa los resultados de una consulta SQL y permite acceder a los datos de las filas devueltas mediante métodos get. Contiene una tabla con las cabeceras de columna y valores. El cursor apunta a la fila actual y se mueve mediante el método next(). Los valores de las columnas pueden obtenerse por nombre o número de columna.
Este documento describe los conceptos básicos de programación con PL/SQL, incluyendo bloques PL/SQL, tipos de datos estructurados, funciones y procedimientos, paquetes y disparadores de base de datos. Los bloques PL/SQL constan de tres secciones: declarativa, de ejecución y de excepciones. En la sección declarativa se definen variables, constantes y cursores. La sección de ejecución contiene las instrucciones del programa. La sección de excepciones gestiona los errores.
Este documento describe la creación y uso de paquetes en PL/SQL. Explica que un paquete consta de una especificación y un cuerpo, y que puede contener funciones, procedimientos, variables y otros objetos. También cubre temas como el ámbito de los objetos dentro de un paquete, la sobrecarga de subprogramas, y ejemplos de paquetes predefinidos en Oracle como DBMS_OUTPUT. El documento termina proponiendo la implementación de un paquete PQ_VENTAS para gestionar funciones y procedimientos relacionados con las
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 2. Creación de estructuras de datos
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno diseña e implementa modelos de datos que incorporen reglas o restricciones mediante la definición de objetos tales como tablas, secuencias y sinónimos.
Temario
2.2 Tema 4: DICCIONARIO DE DATOS
2.2.1 Introducción al Diccionario de Datos
2.2.2 Estructura del Diccionario de Datos
2.2.3 Uso del Diccionario de Datos
2.2.4 Otras tablas en el Diccionario
2.2.5 La vista DBA_OBJECTS
Este documento describe los procesos fundamentales para manipular una base de datos mediante el lenguaje SQL. Explica cómo establecer procesos para dar de alta, baja y modificación de datos, así como procesos de consultas y creación de informes. En concreto, detalla las sentencias Insert, Delete, Update y Select para realizar las operaciones básicas, y los pasos para visualizar un informe generado desde la base de datos.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 2. Creación de estructuras de datos
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno diseña e implementa modelos de datos que incorporen reglas o restricciones mediante la definición de objetos tales como tablas, secuencias y sinónimos.
Temario
2.1 Tema 3: CREACIÓN DE ESTRUCTURAS DE DATOS
2.1.1 Creación y modificación de tablas
2.1.2 Creación de restricciones
2.1.3 Manejo de índices
2.1.4 Manejo de secuencias
2.1.5 Manejo de sinónimos
La sentencia SELECT en SQL se utiliza para recuperar datos de una base de datos. Consta de cuatro partes clave: la cláusula SELECT especifica los campos a mostrar, la cláusula FROM indica las tablas de donde se obtendrán los datos, la cláusula WHERE permite filtrar los resultados basados en una condición, y la cláusula ORDER BY ordena los resultados. La sentencia SELECT es la más común y poderosa para consultar y recuperar datos en SQL.
Este documento describe cómo usar subconsultas SQL para resolver consultas. Explica que una subconsulta ejecuta primero y provee resultados a la consulta principal. Detalla dos tipos de subconsultas: single-row, que devuelven un solo valor y usan operadores de comparación de una fila; y multiple-row, que devuelven múltiples filas y usan operadores de comparación de varias filas. El objetivo es enseñar a identificar cuando una subconsulta puede ayudar a resolver un problema y escribir subconsultas basadas en valores desconocidos.
Una subconsulta es una consulta interna que aparece dentro de otra consulta externa. Se utilizan subconsultas con operadores como =, <, > para comparar valores entre consultas. Las subconsultas pueden devolver una o más filas y se usan comúnmente en las cláusulas WHERE, HAVING e INSERT.
El documento introduce PL/SQL, incluyendo su estructura (declare, begin, exception), tipos de variables y datos (predefinidos y de usuario), estructuras de control (if/then/else, loops, cursores), y su capacidad para acceder y manipular datos en una base de datos Oracle mediante sentencias SQL.
Este documento describe las cláusulas GROUP BY, HAVING y ORDER BY en SQL. GROUP BY agrupa registros con valores idénticos. HAVING filtra los grupos resultantes de GROUP BY. ORDER BY ordena los registros resultantes.
Este documento proporciona una introducción al lenguaje SQL y sus características. Explica que SQL es un lenguaje estándar para la gestión de bases de datos relacionales e incluye sentencias para DDL, DML, vistas, seguridad y controles de transacciones. También describe los tipos de datos soportados por SQL y las restricciones que pueden aplicarse a las tablas y columnas, como claves primarias, únicas y externas.
This document summarizes upcoming CSS features like Box Alignment Level 3, CSS Grid Layout, CSS Shapes, CSS Feature Queries, and CSS Custom Properties. It explains what each feature does at a high level and provides example code snippets. The document also encourages developers to get involved by filing issues on browser bug trackers, requesting new features, and creating blog posts/demos to help drive adoption of these new CSS specifications.
El documento explica los pasos para declarar, abrir, recorrer, cerrar y desalojar un cursor en SQL Server. Un cursor permite recorrer fila a fila y leer o modificar un conjunto de datos definido por una consulta T-SQL. Los pasos incluyen declarar el cursor con la consulta, abrirlo para cargar los datos, recorrerlo fila a fila, cerrarlo para liberar los registros y desalojarlo para eliminar la referencia.
Este documento presenta los conceptos básicos de programación con PL/SQL, incluyendo bloques PL/SQL, tipos de datos estructurados, funciones y procedimientos, paquetes, métodos asociados a tipos de objetos y disparadores de base de datos. Explica la estructura de un bloque PL/SQL, que consta de secciones declarativa, de ejecución y de excepciones. También describe las instrucciones, tipos de datos, funciones y sentencias que se pueden utilizar en PL/SQL.
Sesion10 - Funciones y procedimientos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Este documento describe las instrucciones de lenguaje de manipulación de datos (DML) en SQL como INSERT, UPDATE y DELETE para agregar, modificar y eliminar filas de una tabla, respectivamente. También explica cómo controlar transacciones con COMMIT, ROLLBACK y SAVEPOINT y mantener la visibilidad consistente de los datos. El objetivo es que el lector aprenda a manipular datos en tablas de bases de datos relacionales mediante las instrucciones DML básicas y el control de transacciones.
Semana 5 y 6 cursores implícitos y explícitosvictdiazm
Este documento describe los conceptos clave de los cursores implícitos y explícitos en bases de datos. Los cursores son utilizados para gestionar los resultados de una sentencia SELECT y permiten recorrer y acceder a los datos de un conjunto de registros. Los cursores implícitos devuelven una única fila, mientras que los cursores explícitos pueden devolver cero o más filas y requieren declaración, apertura, extracción y cierre.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Sesion06c - Sentencias SQL en PL-SQL (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.1 Tema 6: PROGRAMACIÓN PL/SQL
4.1.1 Introducción a Oracle PL/SQL
4.1.2 Tipos de datos en PL/SQL
4.1.3 Estructuras de Bloques de PL/SQL
4.1.4 Sentencias SQL en PL/SQL
Este documento explica el uso de los operadores de conjunto en SQL. Describe los operadores UNION, UNION ALL, INTERSECT, MINUS y cómo usar la cláusula ORDER BY con operadores de conjunto. Explica cómo combinar consultas SQL usando estos operadores para devolver filas distintas, duplicadas o comunes entre consultas.
Este documento proporciona una introducción al lenguaje PL/SQL. PL/SQL es un lenguaje de programación procedural diseñado por Oracle que extiende SQL. Permite declarar variables, constantes, estructuras de control como bucles y condicionales, y manejo de excepciones. Los bloques PL/SQL contienen declaraciones, instrucciones y secciones de manejo de excepciones. Se pueden usar cursores para recuperar y procesar múltiples filas de una consulta.
Un ResultSet representa los resultados de una consulta SQL y permite acceder a los datos de las filas devueltas mediante métodos get. Contiene una tabla con las cabeceras de columna y valores. El cursor apunta a la fila actual y se mueve mediante el método next(). Los valores de las columnas pueden obtenerse por nombre o número de columna.
Este documento describe los conceptos básicos de programación con PL/SQL, incluyendo bloques PL/SQL, tipos de datos estructurados, funciones y procedimientos, paquetes y disparadores de base de datos. Los bloques PL/SQL constan de tres secciones: declarativa, de ejecución y de excepciones. En la sección declarativa se definen variables, constantes y cursores. La sección de ejecución contiene las instrucciones del programa. La sección de excepciones gestiona los errores.
Este documento describe la creación y uso de paquetes en PL/SQL. Explica que un paquete consta de una especificación y un cuerpo, y que puede contener funciones, procedimientos, variables y otros objetos. También cubre temas como el ámbito de los objetos dentro de un paquete, la sobrecarga de subprogramas, y ejemplos de paquetes predefinidos en Oracle como DBMS_OUTPUT. El documento termina proponiendo la implementación de un paquete PQ_VENTAS para gestionar funciones y procedimientos relacionados con las
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 2. Creación de estructuras de datos
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno diseña e implementa modelos de datos que incorporen reglas o restricciones mediante la definición de objetos tales como tablas, secuencias y sinónimos.
Temario
2.2 Tema 4: DICCIONARIO DE DATOS
2.2.1 Introducción al Diccionario de Datos
2.2.2 Estructura del Diccionario de Datos
2.2.3 Uso del Diccionario de Datos
2.2.4 Otras tablas en el Diccionario
2.2.5 La vista DBA_OBJECTS
Este documento describe los procesos fundamentales para manipular una base de datos mediante el lenguaje SQL. Explica cómo establecer procesos para dar de alta, baja y modificación de datos, así como procesos de consultas y creación de informes. En concreto, detalla las sentencias Insert, Delete, Update y Select para realizar las operaciones básicas, y los pasos para visualizar un informe generado desde la base de datos.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 2. Creación de estructuras de datos
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno diseña e implementa modelos de datos que incorporen reglas o restricciones mediante la definición de objetos tales como tablas, secuencias y sinónimos.
Temario
2.1 Tema 3: CREACIÓN DE ESTRUCTURAS DE DATOS
2.1.1 Creación y modificación de tablas
2.1.2 Creación de restricciones
2.1.3 Manejo de índices
2.1.4 Manejo de secuencias
2.1.5 Manejo de sinónimos
La sentencia SELECT en SQL se utiliza para recuperar datos de una base de datos. Consta de cuatro partes clave: la cláusula SELECT especifica los campos a mostrar, la cláusula FROM indica las tablas de donde se obtendrán los datos, la cláusula WHERE permite filtrar los resultados basados en una condición, y la cláusula ORDER BY ordena los resultados. La sentencia SELECT es la más común y poderosa para consultar y recuperar datos en SQL.
Este documento describe cómo usar subconsultas SQL para resolver consultas. Explica que una subconsulta ejecuta primero y provee resultados a la consulta principal. Detalla dos tipos de subconsultas: single-row, que devuelven un solo valor y usan operadores de comparación de una fila; y multiple-row, que devuelven múltiples filas y usan operadores de comparación de varias filas. El objetivo es enseñar a identificar cuando una subconsulta puede ayudar a resolver un problema y escribir subconsultas basadas en valores desconocidos.
Una subconsulta es una consulta interna que aparece dentro de otra consulta externa. Se utilizan subconsultas con operadores como =, <, > para comparar valores entre consultas. Las subconsultas pueden devolver una o más filas y se usan comúnmente en las cláusulas WHERE, HAVING e INSERT.
El documento introduce PL/SQL, incluyendo su estructura (declare, begin, exception), tipos de variables y datos (predefinidos y de usuario), estructuras de control (if/then/else, loops, cursores), y su capacidad para acceder y manipular datos en una base de datos Oracle mediante sentencias SQL.
Este documento describe las cláusulas GROUP BY, HAVING y ORDER BY en SQL. GROUP BY agrupa registros con valores idénticos. HAVING filtra los grupos resultantes de GROUP BY. ORDER BY ordena los registros resultantes.
Este documento proporciona una introducción al lenguaje SQL y sus características. Explica que SQL es un lenguaje estándar para la gestión de bases de datos relacionales e incluye sentencias para DDL, DML, vistas, seguridad y controles de transacciones. También describe los tipos de datos soportados por SQL y las restricciones que pueden aplicarse a las tablas y columnas, como claves primarias, únicas y externas.
This document summarizes upcoming CSS features like Box Alignment Level 3, CSS Grid Layout, CSS Shapes, CSS Feature Queries, and CSS Custom Properties. It explains what each feature does at a high level and provides example code snippets. The document also encourages developers to get involved by filing issues on browser bug trackers, requesting new features, and creating blog posts/demos to help drive adoption of these new CSS specifications.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
My books- Hacking Digital Learning Strategies http://hackingdls.com & Learning to Go https://gum.co/learn2go
Resources at http://shellyterrell.com/classmanagement
The reality for companies that are trying to figure out their blogging or content strategy is that there's a lot of content to write beyond just the "buy now" page.
El documento proporciona información sobre cursores en SQL Server. Explica que un cursor permite recorrer y procesar fila a fila los resultados de una consulta en lugar de tratarlos como un conjunto. Detalla los pasos para crear un cursor, incluyendo declararlo, abrirlo, recorrerlo mediante fetches, cerrarlo y liberarlo. También incluye ejemplos de cómo usar cursores para copiar datos entre tablas y mostrar detalles de pedidos según una tabla de cabeceras.
El documento proporciona información sobre cursores en SQL Server. Explica que un cursor permite recorrer y procesar fila a fila los resultados de una consulta en lugar de tratarlos como un conjunto. Detalla los pasos para crear un cursor, incluyendo declararlo, abrirlo, recorrerlo fila a fila, cerrarlo y liberar los recursos. También incluye ejemplos de cómo usar cursores para copiar datos entre tablas y mostrar detalles de pedidos.
Un cursor es una estructura de datos creada en memoria RAM que permite navegar entre las filas de un conjunto de resultados de una consulta SELECT. Los cursores extienden el procesamiento de resultados al permitir posicionarse en filas específicas, recuperar filas, admitir modificaciones de datos y diferentes niveles de visibilidad de cambios. Dentro de un procedimiento almacenado, un cursor declara una variable, ejecuta una consulta SELECT y luego recorre los resultados fila por fila para procesarlos.
Este documento presenta la agenda y objetivos de un curso de PL/SQL. La agenda incluye introducir el lenguaje PL/SQL, estructuras de control, cursores, excepciones, subprogramas, registros, tablas, transacciones y cursores dinámicos. Los objetivos son conocer las estructuras de programación, objetos de base de datos, escribir código PL/SQL de forma óptima y aprender a diseñar unidades de programas en PL/SQL.
Conceptos basicos de programacion con pl sqlAndrei Hortúa
Este documento proporciona una introducción a los conceptos básicos de programación con PL/SQL, incluyendo bloques PL/SQL, tipos de datos estructurados, funciones y procedimientos, paquetes y disparadores de base de datos. Explica las secciones de un bloque PL/SQL (declaración, ejecución, excepciones), así como variables, cursores, bucles e instrucciones de control de flujo. También cubre el manejo de excepciones en PL/SQL.
Este manual describe el lenguaje de consultas estructuradas SQL y sus principales componentes como comandos, cláusulas, operadores y funciones de agregado. Explica cómo se utilizan las consultas de selección para recuperar datos de las tablas de una base de datos, incluyendo cómo ordenar, filtrar y agrupar los resultados. También cubre temas como subconsultas, uniones y el uso de parámetros en las consultas.
El documento proporciona una introducción a PL/SQL, incluyendo una descripción de sus funciones integradas como SYSDATE, NVL y DECODE. También describe cursores implícitos y explícitos, y cómo se usan en PL/SQL. Finalmente, explica el manejo de excepciones en PL/SQL, distinguiento entre excepciones predefinidas como NO_DATA_FOUND y excepciones definidas por el usuario.
Este documento describe las reglas y características fundamentales de PL/SQL. PL/SQL es un lenguaje de programación proporcionado por Oracle para extender SQL y permitir el desarrollo de aplicaciones completas para la gestión de bases de datos. El documento explica la estructura de bloques PL/SQL, declaración de variables, tipos de datos, controles de flujo, cursores, excepciones, funciones y procedimientos, entre otros aspectos.
Este documento proporciona una introducción al lenguaje de consultas estructuradas (SQL) y sus principales componentes y comandos. Explica cómo se pueden realizar consultas básicas, agregar cláusulas como WHERE y GROUP BY, y utilizar funciones de agregado. También cubre temas como ordenar resultados, alias de columnas, predicados como DISTINCT y TOP, y tipos de operadores lógicos y de comparación.
Este documento proporciona una introducción al lenguaje de consultas estructuradas SQL. Explica los componentes básicos de SQL como comandos, cláusulas, operadores y funciones de agregado. También describe cómo realizar consultas de selección básicas, ordenar resultados, agregar criterios de selección y funciones de agregado. Finalmente, cubre temas como actualizaciones, subconsultas y estructuras de tablas.
Este documento proporciona un tutorial sobre el lenguaje de consultas estructuradas (SQL). Explica los componentes básicos de SQL como comandos, cláusulas, operadores y funciones de agregado. Luego describe cómo crear consultas de selección, actualización y eliminación de datos, así como el uso de criterios de selección, agrupamiento, ordenamiento y otras funciones avanzadas de SQL. El objetivo final es enseñar a los lectores a manipular y extraer información de bases de datos usando el lenguaje SQL.
Este documento proporciona un tutorial sobre el lenguaje de consultas estructuradas (SQL). Explica los componentes básicos de SQL como comandos, cláusulas, operadores y funciones de agregado. Luego describe cómo realizar consultas de selección, actualización y eliminación de datos, así como el uso de criterios de selección, agrupamiento, ordenamiento y otras funciones avanzadas de SQL. El objetivo final es enseñar a los lectores a manipular y extraer información de bases de datos usando el lenguaje SQL.
Este documento proporciona una introducción al lenguaje de consultas estructurado (SQL) incluyendo sus componentes principales como comandos, cláusulas, operadores y funciones de agregado. Explica cómo se pueden utilizar estos elementos para crear consultas de selección, actualización y manipulación de datos en una base de datos. También describe diferentes tipos de consultas como consultas básicas, consultas con predicados y consultas de ordenación.
El documento presenta un manual sobre SQL. Explica los componentes básicos del lenguaje SQL como consultas de selección, criterios de selección, agrupamiento de registros y tipos de datos. Detalla los diferentes comandos, cláusulas, operadores y funciones de agregado que componen el lenguaje SQL y cómo se usan para crear, actualizar y manipular bases de datos.
La sentencia SELECT permite recuperar datos de una base de datos. Consta de cuatro partes opcionales: la cláusula SELECT especifica las columnas a mostrar; la cláusula FROM indica las tablas de donde se obtendrán los datos; la cláusula WHERE contiene un criterio de selección opcional; y la cláusula ORDER BY ordena los resultados. La sentencia SELECT es la más común y se usa para ver tablas, seleccionar columnas específicas, y aplicar filtros con la cláusula WHERE.
Este documento proporciona una introducción al lenguaje de consultas estructurado (SQL). Explica los componentes clave de SQL como comandos, cláusulas, operadores y funciones de agregado. Detalla cómo se pueden usar consultas SQL para seleccionar, insertar, actualizar y eliminar datos de una base de datos. También cubre temas como ordenar y filtrar registros, usar alias, y recuperar datos de bases de datos externas.
Este documento presenta un tutorial sobre SQL. Explica los componentes básicos del lenguaje SQL como comandos, cláusulas, operadores y funciones de agregado. Luego describe cómo realizar consultas de selección, incluyendo filtros, ordenamiento, y el acceso a bases de datos externas. Finalmente, cubre criterios avanzados de selección utilizando operadores lógicos y de comparación.
Este documento introduce los fundamentos de la programación en ABAP/4, incluyendo los tipos de instrucciones, comentarios, combinación de frases, declaración de objetos de datos como campos, tablas, literales y variables internas, y las estructuras básicas de un programa como REPORT, TABLES, DATA, TOP-OF-PAGE y END-OF-PAGE. También explica cómo declarar y procesar datos mediante la asignación de valores, conversión de tipos, operaciones aritméticas y procesamiento de campos de texto, además de revisar las variables
Este documento introduce los conceptos básicos de SQL Server, incluyendo los componentes del lenguaje SQL como comandos, cláusulas, operadores y funciones de agregado. Explica cómo se pueden usar las consultas SQL para seleccionar, ordenar e interpretar datos de una base de datos.
1) El documento explica diferentes estructuras de control de flujo en T-SQL como IF, ELSE, CASE y WHILE y cómo usar cursores. 2) También describe diferentes tipos de combinaciones de tablas como equivalentes, naturales, externas y autocombinaciones. 3) Explica consultas de agrupación para obtener información cuantitativa agrupada de tablas.
Para fortalecer las competencias de identidad nacional, regional y local se promueven actividades que tienen como propósito que los niños y niñas investiguen las reseñas históricas de los personajes que participaron en el proceso de la independencia, que elaboren líneas de tiempo a lo largo de la historia del país, que dialoguen y expresen sus opiniones sobre los cambios ocasionados, propongan alternativas de solución para revalorar la historia del país, asuman responsabilidades y compromisos para demostrar ese amor cívico cultural, resolverán diversas situaciones, valorar los símbolos patrios, reconocerán cómo utilizaban nuestros antepasados el suelo patrio y leerán diversos tipos de textos para comprender y revaloran su historia.
Captan el tema de la clase.
* Realizar la actividad de agrupar con objetos concretos
(cuadernos, lápices, borradores, etc.).
M: ¿Qué estoy haciendo con estos objetos?
RP: Agrupando, juntando, uniendo, etc.
* Indicar que hagan agrupaciones con las tapas (frijoles) en
su pupitre.
2. Comentan la situación del
problema. [A]
M: ¿Qué hicieron?
RP: Los juntaron en una sola canasta, los unieron, etc.
Que imaginen la idea del dibujo y que lo expresen oralmente identificando las palabras claves como: unir, juntar,
agrupar, etc.
-La adhesión entre los espermatozoides y las membranas plasmáticas de las células oviductales está asegurada por moléculas expuestas en la superficie rostral de los espermatozoides y capaces de unir carbohidratos en la superficie de las células oviductuales especifica para cada especie
-La adhesión entre los espermatozoides y las membranas plasmáticas de las células oviductales está asegurada por moléculas expuestas en la superficie rostral de los espermatozoides y capaces de unir carbohidratos en la superficie de las células oviductuales especifica para cada especie.
-Unas horas antes de la ovulación, los espermatozoides unidos comienzan a liberarse y progresan hacia la unión ampular/ístmica, donde el ovocito ovulado se detendrá para la fertilización.
Objetivo
-Revisar el conocimiento disponible sobre las moléculas involucradas en la selección, almacenamiento y liberación de espermatozoides del reservorio oviductal.
Este proyecto se enfoca en las artesanías y el arte de la región del Departamento de Nariño. ArtNariño es una iniciativa que busca crear una plataforma, donde los artesanos y artistas locales puedan publicar, explicar y vender sus obras, facilitando la conexión entre creadores y compradores según sus preferencias.
1. PL/SQL – CURSORES
2013/07/21 BY ALEJANDRO ALCALDE, 1 COMENTARIO,
EN BASEDEDATOS
Un cursor es el nombre para un área memoria privada que contiene información procedente
de la ejecución de una sentencia SELECT. Cada cursor tiene unos atributos que nos
devuelven información útil sobre el estado del cursor en la ejecución de la sentencia SQL.
Cuando un cursor está abierto y los datos referenciados por la consulta SELECT cambian,
estos cambios no son recogidos por el cursor.
PL/SQL crea implícitamente un cursor para todas las sentencias SQL de manipulación de
datos sobre un conjunto de filas, incluyendo aquellas que solo devuelven una sola fila.
En PL/SQL no se pueden utilizar sentencias SELECT de sintaxis básica (
SELECT FROM ). PL/SQL utiliza cursores para gestionar las instrucciones SELECT. Un
cursor es un conjunto de registros devuelto por una instrucción SQL.
Podemos distinguir dos tipos de cursores:
Cursores implícitos. Este tipo de cursores se utiliza para operaciones SELECT INTO.
Se usan cuando la consulta devuelve un único registro.
Cursores explícitos. Son los cursores que son declarados y controlados por el
programador. Se utilizan cuando la consulta devuelve un conjunto de registros.
Ocasionalmente también se utilizan en consultas que devuelven un único registro por
razones de eficiencia. Son más rápidos.
Un cursor se define como cualquier otra variable de PL/SQL y debe nombrarse de acuerdo
a los mismos convenios que cualquier otra variable.
Los cursores implícitos se utilizan para realizar consultas SELECT que devuelven un único
registro. Deben tenerse en cuenta los siguientes puntos cuando se utilizan cursores
implícitos:
Los cursores implícitos no deben ser declarados
2. Con cada cursor implícito debe existir la palabra clave INTO.
Las variables que reciben los datos devueltos por el cursor tienen que contener el
mismo tipo de dato que las columnas de la tabla.
Los cursores implícitos solo pueden devolver una única fila. En caso de que se
devuelva más de una fila (o ninguna fila) se producirá una excepción. Las más comunes
son:
NO_DATA_FOUND: Se produce cuando una sentencia SELECT intenta recuperar datos
pero ninguna fila satisface sus condiciones. Es decir, cuando “no hay datos”
TOO_MANY_ROWS Dado que cada cursor implícito sólo es capaz de recuperar una fila,
estaexcepción detecta la existencia de más de una fila.
SET SERVEROUTPUT ON;
DECLARE
vdescripcionVARCHAR2(50);
BEGIN
SELECT DESCRIPCION INTOvdescripcionFROM PAISES WHERE CO_PAIS ='ESP';
DBMS_OUTPUT.put_line('La lectura del cursor es: '||vdescripcion);
END;
Para procesar instrucciones SELECT que devuelvan más de una fila, son necesarios
cursoresexplícitos combinados con una estructura de bloque. A partir de ahora, cuando
hagamos referencia a cursores nos referiremos a cursores explícitos.
Para trabajar con un cursor hay que realizar los siguientes pasos:
1.
2.
3.
4.
Declarar el cursor
Abrir el cursor en el servidor
Recuperar cada una de sus filas (bucle)
Cerrar el cursor
1. DECLARAR EL CURSOR
Al igual que cualquier otra variable, el cursor se declara en la sección DECLARE. Se
define el nombre que tendrá el cursor y qué consulta SELECT ejecutará. No es más que una
declaración. La sintaxis básica es:
CURSORnombre_cursorISinstrucción_SELECT
CURSORnombre_cursor(param1 tipo1,...,paramNtipoN)ISinstrucción_SELECT
Una vez que el cursor está declarado ya podrá ser utilizado dentro del bloque de código.
3. Antes de utilizar un cursor se debe abrir. En ese momento se ejecuta la sentencia SELECT
asociada y se almacena el resultado en el área de contexto (estructura interna de memoria
que maneja el cursor). Un puntero señala a la primera fila
2. ABRIR EL CURSOR
Al abrir el cursor se ejecuta la sentencia SELECT asociada y cuyo resultado se guarda en el
servidor en un área de memoria interna (tablas temporales) de las cuales se va retornando
cada una de las filas según se va pidiendo desde el cliente. Al abrir un cursor, un puntero
señalará al primer registro.
La sintaxis de apertura de un cursor es:
OPENnombre_cursor;
OPENnombre_cursor(valor1, valor2,...,valorN);
Una vez que el cursor está abierto, se podrá empezar a pedir los resultados al servidor.
3.RECUPERAR CADA UNA DE SUS
FILAS.
Una vez que el cursor está abierto en el servidor se podrá hacer la petición de recuperación
de fila. En cada recuperación solo se accederá a una única fila. La sintaxis de recuperación
de fila de un cursor es:
FETCHnombre_cursorINTO variables;
Podremos recuperar filas mientras la consulta SELECT tenga filas pendientes de recuperar.
Para saber cuándo no hay más filas podemos consultar los siguientes atributos de un cursor:
Al recuperar un registro, la información recuperada se guarda en una o varias variables. Si
sólo se hace referencia a una variable, ésta se puede declarar con %ROWTYPE. Si se
utiliza una lista de variables, cada variable debe coincidir en tipo y orden con cada una de
las columnas de la sentencia SELECT.
Así lo acción más típica es recuperar filas mientras queden alguna por recuperar en el
servidor. Esto lo podremos hacer a través de los siguientes bloques:
4. OPENnombre_cursor;
LOOP
FETCHnombre_cursorINTO variables;
EXITWHENnombre_cursor%NOTFOUND;
<spanclass="comentario">--procesar cada una de las filas</span>
ENDLOOP;
OPENnombre_cursor;
FETCHnombre_cursorINTOlista_variables;
WHILEnombre_cursor%FOUND
LOOP
<spanclass="comentario">/* Procesamiento de los registros recuperados
*/</span>
FETCHnombre_cursorINTOlista_variables;
ENDLOOP;
CLOSEnombre_cursor;
FOR variable INnombre_cursorLOOP
<spanclass="comentario">/* Procesamiento de los registros recuperados
*/</span>
ENDLOOP;
4. CERRAR EL CURSOR
Una vez que se han recuperado todas las filas del cursor, hay que cerrarlo para que se
liberen de la memoria del servidor los objetos temporales creados. Si no cerrásemos el
cursor, la tabla
temporal quedaría en el servidor almacenada con el nombre dado al cursor y la siguiente
vez ejecutásemos ese bloque de código, nos daría la excepción
CURSOR_ALREADY_OPEN (cursor ya abierto) cuando intentásemos abrir el cursor. Para
cerrar el cursor se utiliza la siguiente sintaxis:
CLOSEnumbre_cursor;
Cuando trabajamos con cursores debemos considerar:
Cuando un cursor está cerrado, no se puede leer.
Cuando leemos un cursor debemos comprobar el resultado de la lectura utilizando los
atributos de los cursores.
Cuando se cierra el cursor, es ilegal tratar de usarlo.
5. El nombre del cursor es un identificador, no una variable. Se utiliza para identificar la
consulta, por eso no se puede utilizar en expresiones.
ATRIBUTOS EN CURSORES
IMPLÍCITOS
Los cursores implícitos no se pueden manipular por el usuario, pero Oracle sí permite el
uso de sus atributos. Las sentencia a través de las que podemos obtener información de
estos atributos son: SELECT…INTO, INSERT, UPDATE, DELETE.
En este caso, se debe anteponer al nombre del atributo el prefijo SQL, en lugar del nombre
del cursor.
SQL%NOTFOUND devuelve TRUE cuando la última sentencia SELECT no recuperó
ninguna fila, o cuando INSERT, DELETE o UPDATE no afectan a ninguna fila
SQL%FOUND devuelve TRUE cuando la última sentencia SELECT devuelve alguna
fila, o cuando INSERT, DELETE o UPDATE afectan a alguna fila
SQL%ROWCOUNT devuelve el número de filas afectadas por INSERT, DELETE o
UPDATE o las filas devueltas por una sentencia SELECT
SQL%ISOPEN siempre devuelve FALSE, porque Oracle cierra automáticamente el
cursor implícito cuando termina la ejecución de la sentencia SELECT
Ejemplos:
DECLARE
CURSORcpaisesIS
SELECT CO_PAIS, DESCRIPCION, CONTINENTE FROM PAISES;
co_paisVARCHAR2(3);
descripcionVARCHAR2(50);
continenteVARCHAR2(25);
BEGIN
OPENcpaises;
FETCHcpaisesINTOco_pais,descripcion,continente;
DBMS_OUTPUT.PUT_LINE(continente);
CLOSEcpaises;
END;
DECLARE
CURSORcpaisesIS
6. SELECT CO_PAIS, DESCRIPCION, CONTINENTE FROM PAISES;
registrocpaises%ROWTYPE;
BEGIN
OPENcpaises;
FETCHcpaisesINTOregistro;
DBMS_OUTPUT.PUT_LINE(continente);
CLOSEcpaises;
END;
DECLARE
r ARTICULOS%ROWTYPE;
BEGIN
FOR r IN(SELECT*FROM ARTICULOS )LOOP
DBMS_OUTPUT.PUT_LINE(r.cArtDsc);
ENDLOOP;
END;
BEGIN
UPDATE ARTICULOS SETcArtDsc= `Pantalla LCD’ WHEREcCodArt= ‘LCD’;
IF SQL%NOTFOUND THEN<span class="comentario">-- Otraopción : SQL%ROWCOUNT
= 0</span>
INSERTINTO ARTICULOS (cCodArt,cDesArt)
VALUES(‘LCD’,’Pantalla LCD’);
ENDIF;
END;
CURSORES PARAMETRIZADOS
Los cursores son aquellos que permiten utilizar la orden OPEN para pasarle al cursor el
valor de
uno o varios de sus parámetros.
DECLARE
CURSORcArt(cFmlArticulos.cArtFml%TYPE)
ISSELECTcArtCdg,cArtDscFROMArticulosWHEREcArtFml=cFml;
xCodArticulos.cArtCdg%TYPE;
xDesArticulos.cArtDsc%TYPE;
7. BEGIN
OPENcArt('F1');
LOOP
FETCHcArtINTOxCod,xDes;
EXITWHENcArt%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (xDes);
ENDLOOP;
CLOSEcArt;
END;
CURSORES DE ACTUALIZACIÓN
Los cursores de actualización se declaran igual que los cursores explícitos, añadiendo FOR
UPDATE al final de la sentencia SELECT.
CURSORnombre_cursorISinstrucción_SELECTFORUPDATE
Para actualizar los datos del cursor hay que ejecutar una sentencia UPDATE especificando
la cláusula WHERE CURRENT OF .
UPDATE<nombre_tabla>SET<campo_1>=<valor_1>[,<campo_2>=<valor_2>]
WHERECURRENTOF<cursor_name>
Cuando trabajamos con cursores de actualización debemos tener en cuenta que la sentencia
UPDATE genera bloqueos en la base de datos ( transacciones, disparadores,etc).
DECLARE
CURSORcpaisesIS
SELECT CO_PAIS, DESCRIPCION,CONTINENTEFROMpaises
FORUPDATE;
co_paisVARCHAR2(3);
descripcionVARCHAR2(50);
continenteVARCHAR2(25);
BEGIN
OPENcpaises;
FETCHcpaisesINTOco_pais,descripcion,continente;
9. PL/SQL – PROCEDIMIENTOS Y
FUNCIONES
2013/09/05 BY ALEJANDRO ALCALDE, 0 COMENTARIOS,
EN BASEDEDATOS
PROCEDIMIENTOS
Una vez que tenemos escrito un bloque de código, podemos guardarlo en un fichero .sql
para su posterior uso, o bien guardarlo en base de datos para que pueda ser ejecutado por
cualquier aplicación. El segundo caso se realiza mediante procedimientos almacenados
(StoredProcedure).
A la hora de guardar un bloque de código hay que tener en cuenta ciertas normas:
La palabra reservada DECLARE desaparece.
Podremos crear procedimientos y funciones. Los procedimientos no podrán retornar
ningún valor sobre su nombre, mientras que las funciones deben retornar un valor de un
tipo de dato básico.
Un procedimiento [almacenado] es un subprograma que ejecuta una acción específica y que
no devuelve ningún valor por si mismo, como sucede con las funciones. Un procedimiento
tiene un nombre, un conjunto de parámetros (opcional) y un bloque de código. Para crear
un procedimiento (storedprocedure: procedimiento almacenado) usaremos la siguiente
sintaxis:
CREATE{ORREPLACE}PROCEDUREnombre_proc( param1 [IN | OUT | INOUT]tipo,...)
IS
<spanclass="comentario">-- Declaración de variables locales</span>
BEGIN
<spanclass="comentario">-- Instrucciones de ejecución</span>
[EXCEPTION]
<spanclass="comentario">-- Instrucciones de excepción</span>
END;
10. Tras crear el procedimiento, éste se compila y luego se almacena en la BD de forma
compilada. Este procedimiento luego puede ser invocado desde cualquier bloque PL/SQL.
El uso de OR REPLACE permite sobrescribir un procedimiento existente. Si se omite, y el
procedimiento existe, se producirá, un error. Debemos especificar el tipo de datos de cada
parámetro.
Al especificar el tipo de dato del parámetro no debemos especificar la longitud del tipo,
aunque si puede ser utilizando el operador %TYPE.
CREATEORREPLACE
PROCEDUREActualiza_Saldo(cuentaNUMBER,new_saldoNUMBER)
IS
<spanclass="comentario">-- Declaracion de variables locales</span>
BEGIN
UPDATE SALDOS_CUENTAS
SET SALDO =new_saldo,
FX_ACTUALIZACION =SYSDATE
WHERE CO_CUENTA = cuenta;
ENDActualiza_Saldo;
También podemos asignar un valor por defecto a los parámetros, utilizando la cláusula
DEFAULT o el operador de asignación (:=) .
CREATEORREPLACE
PROCEDUREActualiza_Saldo(cuentaNUMBER,new_saldoNUMBERDEFAULT10)
Una vez creado y compilado el procedimiento almacenado podemos ejecutarlo. Existen dos
formas de pasar argumentos a un procedimiento almacenado a la hora de ejecutarlo. Estas
son:
Notación posicional: Se pasan los valores de los parámetros en el mismo orden en que el
procedure los define.
BEGIN
Actualiza_Saldo(200501,2500);
COMMIT;
END;
Notación nominal: Se pasan los valores en cualquier orden nombrando explícitamente el
parámetro y su valor separados por el símbolo =>.
11. BEGIN
Actualiza_Saldo(cuenta =>200501,new_saldo =>2500);
COMMIT;
END;
Ejemplos:
CREATEORREPLACEPROCEDUREtoday_isAS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hoy es '||TO_CHAR(SYSDATE,' DD/MM/YYYY'));
ENDtoday_is;
<span class="comentario">-- para ejecutarlo</span>
SET SERVEROUTPUT ON;
BEGIN
today_is();-- the parentheses are optional here
END;
CREATEORREPLACEPROCEDURE today2_is (fechaDATE)AS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hoy es '||TO_CHAR(fecha,' DD/MM/YYYY'));
END;
<spanclass="comentario">-- para ejecutarlo</span>
SET SERVEROUTPUT ON;
BEGIN
today2_is(TO_DATE('01/02/2008'));-- the parentheses are optional here
END;
<spanclass="comentario">-- para ejecutarlo</span>
SET SERVEROUTPUT ON;
BEGIN
today2_is(fecha=>TO_DATE('01/02/2008'));-- the parentheses are optional
here
END;
FUNCIONES
Para crear una función usaremos la siguiente sintaxis:
CREATE{ORREPLACE}FUNCTIONnombre_func(param1 tipo,param2
tipo,...)RETURNtipo_datoIS
<spanclass="comentario">-- Declaración de variables locales</span>
13. PL/SQL – PAQUETES
(PACKAGES)
2013/07/24 BY ALEJANDRO ALCALDE, 1 COMENTARIO,
EN BASEDEDATOS
Además de brindarnos múltiples elementos que nos permiten desarrollar una aplicación
robusta, Oracle nos ofrece la posibilidad de programar en forma modular, clara y eficiente.
En este apartado veremos cómo embeber procedimientos, funciones, definiciones de tipos
de datos y declaraciones de variables en una misma estructura que los agrupe y relacione
lógicamente. Esta estructura se denomina Package (Paquete) y su uso nos permite no sólo
mejorar la calidad de diseño de nuestras aplicaciones sino también optimizar el desempeño
de las mismas.
Un Paquete es un objeto PL/Sql que agrupa lógicamente otros objetos PL/Sql relacionados
entre sí, encapsulándolos y convirtiéndolos en una unidad dentro de la base de datos.
Los Paquetes están divididos en 2 partes: especificación (obligatoria) y cuerpo (no
obligatoria). La especificación o encabezado es la interfaz entre el Paquete y las
aplicaciones que lo utilizan y es allí donde se declaran los tipos, variables,
constantes, excepciones, cursores, procedimientos y funciones que podrán ser invocados
desde fuera del paquete.
En el cuerpo del paquete se implementa la especificación del mismo. El cuerpo contiene los
detalles de implementación y declaraciones privadas, manteniéndose todo esto oculto a las
aplicaciones externas, siguiendo el conocido concepto de “caja negra”. Sólo las
declaraciones
hechas en la especificación del paquete son visibles y accesibles desde fuera del paquete
(por otras aplicaciones o procedimientos almacenados) quedando los detalles de
implementación del cuerpo del paquete totalmente ocultos e inaccesibles para el exterior.
Para acceder a los elementos declarados en un paquete basta con anteceder el nombre del
objeto referenciado con el nombre del paquete donde está declarado y un punto, de esta
manera: Paquete.Objeto donde Objeto puede ser un tipo, una variable, un cursor, un
procedimiento o una función declarados dentro del paquete.
14. Para referenciar objetos desde adentro del mismo paquete donde han sido declarados no es
necesario especificar el nombre del paquete y pueden (deberían) ser referenciados
directamente por su nombre. Finalmente y siguiendo a la parte declarativa del cuerpo de un
paquete puede,
opcionalmente, incluirse la sección de inicialización del paquete. En esta sección pueden,
por
ejemplo, inicializarse variables que utiliza el paquete. La sección de inicialización se
ejecuta sólo la primera vez que una aplicación referencia a un paquete, esto es, se ejecuta
sólo una vez por sesión.
Como hemos dicho anteriormente, la creación de un paquete pasa por dos fases:
Crear la cabecera del paquete donde se definen que procedimientos, funciones, variables,
cursores, etc. Disponibles para su uso posterior fuera del paquete. En esta parte solo se
declaran los objetos, no se implementa el código.
Crear el cuerpo del paquete, donde se definen los bloques de código de las funciones y
procedimientos definidos en la cabecera del paquete.
Para crear la cabecera del paquete utilizaremos la siguiente instrucción:
CREATE{ORREPLACE}PACKAGEnombre_de_paqueteIS
<spanclass="comentario">-- Declaraciones</span>
END;
Para crear el cuerpo del paquete utilizaremos la siguiente instrucción:
CREATE{ORREPLACE}PACKAGEBODYnombre_paqueteIS
<spanclass="comentario">--Bloques de código</span>
END;
Hay que tener en cuenta que toda declaración de función o procedimiento debe estar dentro
del cuerpo del paquete, y que todo bloque de código contenido dentro del cuerpo debe estar
declarado dentro de la cabecera de paquete.
Cuando se quiera acceder a las funciones, procedimientos y variables de un paquete se debe
anteponer el nombre de este:
Nombre_paquete.función(x);
Nombre_paquete.procedimiento(x);
Nombre_paquete.variable;
CREATEORREPLACEPACKAGE PK1 IS
PROCEDURExLis(xfamiliaINArticulos.cArtFml%TYPE);
END;
16. especificación sin su cuerpo para posibilitar que otros sub-programas que referencian a
estos elementos declarados puedan compilarse sin errores. De esta manera podremos armar
un “prototipo” de nuestro sistema antes de codificar el detalle del mismo.
PERMITE OCULTAR LOS DETALLES
DE IMPLEMENTACIÓN
Pueden especificarse cuáles tipos, variables y sub-programas dentro del paquete son
públicos (visibles y accesibles por otras aplicaciones y sub-programas fuera del paquete) o
privados (ocultos e inaccesibles fuera del paquete). Por ejemplo, dentro del paquete pueden
existir procedimientos y funciones que serán invocados por otros programas, así como
también otras rutinas de uso interno del paquete que no tendrán posibilidad de ser accedidas
fuera del mismo. Esto asegura que cualquier cambio en la definición de estas rutinas
internas afectará sólo al paquete donde se encuentran, simplificando el mantenimiento y
protegiendo la integridad del conjunto.
AGREGA MAYOR FUNCIONALIDAD A
NUESTRO DESARROLLO
Las definiciones públicas de tipos, variables y cursores hechas en la especificación de un
paquete persisten a lo largo de una sesión. Por lo tanto pueden ser compartidas por todos
los sub-programas y/o paquetes que se ejecutan en ese entorno durante esa sesión. Por
ejemplo, puede
utilizarse esta técnica (en dónde sólo se define una especificación de paquete y no un
cuerpo) para mantener tipos y variables globales a todo el sistema.
INTRODUCE MEJORAS AL
RENDIMIENTO
En relación a su ejecución, cuando un procedimiento o función que está definido dentro de
un paquete es llamado por primera vez, todo el paquete es ingresado a memoria. Por lo
tanto, posteriores llamadas al mismo u otros sub-programas dentro de ese paquete
realizarán un acceso a
memoria en lugar de a disco. Esto no sucede con procedimientos y funciones estándares.
17. PERMITE LA “SOBRECARGA DE
FUNCIONES” (OVERLOADING).
PL/SQL nos permite que varios procedimientos o funciones almacenadas, declaradas
dentro de un mismo paquete, tengan el mismo nombre. Esto nos es muy útil cuando
necesitamos que los sub-programas puedan aceptar parámetros que contengan diferentes
tipos de datos en diferentes instancias. En este caso Oracle ejecutará la “versión” de la
función o procedimiento cuyo encabezado se corresponda con la lista de parámetros
recibidos.
18. PL/SQL – DISPARADORES O
TRIGGERS
2014/01/09 BY ALEJANDRO ALCALDE, 2 COMENTARIOS,
EN BASEDEDATOS
Los disparadores (o triggers) son bloques de código PL/SQL asociados a una tabla y que se
ejecutan automáticamente como reacción a una operación DML específica (INSERT,
UPDATE o DELETE) sobre dicha tabla.
En definitiva, los disparadores son eventos a nivel de tabla que se ejecutan
automáticamente cuando se realizan ciertas operaciones sobre la tabla.
Para crear un disparador utilizaremos la siguiente instrucción:
CREATE{ORREPLACE}TRIGGERnombre_disp
[BEFORE|AFTER]
[DELETE|INSERT|UPDATE{OFcolumnas}][OR[DELETE|INSERT|UPDATE{OFcolumnas}]..
.]
ONtabla
[FOR EACH ROW[WHENcondiciondisparo]]
[DECLARE]
-- Declaración de variables locales
BEGIN
-- Instrucciones de ejecución
[EXCEPTION]
-- Instrucciones de excepción
END;
El uso de OR REPLACE permite sobrescribir un trigger existente. Si se omite, y el trigger
existe, se producirá, un error.
En principio, dentro del cuerpo de programa del trigger podemos hacer uso de cualquier
orden de consulta o manipulación de la BD, y llamadas a funciones o procedimientos
siempre que:
19. No se utilicen comandos DDL
No se acceda a las tablas que están siendo modificadas con DELETE, INSERT o
UPDATE en la misma sesión
No se violen las reglas de integridad, es decir no se pueden modificar llaves primarias,
ni actualizar llaves externas
No se utilicen sentencias de control de transacciones (Commit, Rollback o Savepoint)
No se llamen a procedimientos que trasgredan la restricción anterior
No se llame a procedimientos que utilicen sentencias de control de transacciones
PREDICADOS CONDICIONALES
Cuando se crea un trigger para más de una operación DML, se puede utilizar un predicado
condicional en las sentencias que componen el trigger que indique que tipo de operación o
sentencia ha disparado el trigger. Estos predicados condicionales son los siguientes:
- Inserting: Retorna true cuando el trigger ha sido disparado por un INSERT
- Deleting: Retorna true cuando el trigger ha sido disparado por un DELETE
- Updating: Retorna true cuando el trigger ha sido disparado por un UPDATE
- Updating (columna): Retorna true cuando el trigger ha sido disparado por
un UPDATE y la columna ha sido modificada.
CREATETRIGGERaudit_trigger BEFORE INSERTORDELETEORUPDATE
ONclassified_tableFOR EACH ROW
BEGIN
IF INSERTING THEN
INSERTINTOaudit_table
VALUES(USER||' is inserting'||
' new key: '||:NEW.key);
ELSIF DELETING THEN
INSERTINTOaudit_table
VALUES(USER||' is deleting'||
' old key: '||:old.key);
ELSIFUPDATING('FORMULA')THEN
INSERTINTOaudit_table
VALUES(USER||' is updating'||
' old formula: '||:old.formula||
' new formula: '||:NEW.formula);
ELSIF UPDATING THEN
INSERTINTOaudit_table
VALUES(USER||' is updating'||
' old key: '||:old.key||
' new key: '||:NEW.key);
20. ENDIF;
END;
TIPOS DE TRIGGERS
Los triggers pueden definirse para las operaciones INSERT, DELETE o Update, y pueden
dispararse antes o después de la operación. Finalmente, el nivel de los disparadores puede
ser la fila o registro o la orden.
El modificador BEFORE o AFTER indica que el trigger se ejecutará antes o después de
ejecutarse la sentencia SQL definida por DELETE, INSERT o UPDATE. Si incluimos el
modificador OF el trigger solo se ejecutará cuando la sentencia SQL afecte a los campos
incluidos en la lista.
El alcance de los disparadores puede ser la fila o de orden. El modificador FOR EACH
ROW indica que el trigger se disparará cada vez que se realizan operaciones sobre cada fila
de la tabla. Si
se acompaña del modificador WHEN, se establece una restricción; el trigger solo actuará,
sobre las
filas que satisfagan la restricción.
Tipos de disparadores.
Categoria
Valores
Comentarios
Orden
INSERT, DELETE, UPDATE
Define que tipo de operación DML provoca la
activación del trigger
Temporalización
BEFORE o AFTER
Define si el disparador se activa antes o después de
que se ejecute la operación DML
Nivel
Fila u Orden
Los disparadores con nivel de fila se activan una
vez por cada fila afectada por la orden que provocó
el disparo. Los Triggers con nivel de orden se
activan sólo una vez, antes o después de la orden.
Los disparadores con nivel de fila se identifican
por la cláusula FOR EACH ROW en la definición
21. del disparador.
ORDEN DE EJECUCIÓN DE LOS
TRIGGERS
Una misma tabla puede tener varios triggers asociados. En tal caso es necesario conocer el
orden
en el que se van a ejecutar.
Los disparadores se activan al ejecutarse la sentencia SQL.
Si existe, se ejecuta el disparador de tipo BEFORE (disparador previo) con nivel de
orden.
Para cada fila a la que afecte la orden:
Se ejecuta si existe, el disparador de tipo BEFORE con nivel de fila.
Se ejecuta la propia orden.
Se ejecuta si existe, el disparador de tipo AFTER (disparador posterior) con nivel
de fila.
Se ejecuta, si existe, el disparador de tipo AFTER con nivel de orden.
RESTRICCIONES DE LOS TRIGGERS.
El cuerpo de un disparador es un bloque PL/SQL. Cualquier orden que sea legal en un
bloque PL/SQL , es legal en el cuerpo de un disparador, con las siguientes restricciones:
- Un disparador no puede emitir ninguna orden de control de transacciones ( COMMIT,
ROLLBACK o SAVEPOINT). El disparador se activa como parte de la ejecución de la
orden que provocó el disparo, y forma parte de la misma transacción qu dicha orden.
Cuando la orden que provoca la orden es confirmada o cancelada, se confirma o se cancela
también el trabajo realizado por el disparador.
- Por las mismas razones, ningún procedure o función llamado por el disparador puede
emitir órdenes de control de transacciones.
- El disparador no puede declarar variables de tipo LONG.
22. UTILIZACIÓN DE :OLD Y :NEW EN
LOS DISPARADORES CON NIVEL DE
FILA.
Un disparador con nivel de fila se ejecuta una vez por cada fila procesada por la orden que
provoca el disparo. Dentro del disparador, puede accederse a la fila que está siendo
actualmente
procesada utilizando, para ello, dos pseudo-registros, :old y :new.
En principio tanto :old como :new son del tipo tabla_disparo%ROWTYPE;
Orden de Disparo
:old
:new
INSERT
No definido; todos los campos toman
el valor NULL.
Valores que serán insertados cuando
se complete la orden
UPDATE
Valores originales de la fila, antes de
la actualización.
Nuevos valores que serán escritos
cuando se complete la orden.
DELETE
Valores originales, antes del borrado
de la fila.
No definido; todos los campos toman
el valor NULL.
Ejemplo:
CREATETRIGGERscott.emp_permit_changes
BEFORE DELETEORINSERTORUPDATEONscott.emp
DECLARE
dummyINTEGER;
BEGIN
/* If today is a Saturday or Sunday, then return an error.
IF (TO_CHAR(SYSDATE, 'DY') = 'SAT' OR TO_CHAR(SYSDATE, 'DY') = 'SUN')
THEN
raise_application_error( -20501,'May not change employee table during the
weekend');
23. END IF;
/* Compare today's date with the dates of all
company holidays. If today is a company holiday,
then return an error.*/
SELECTCOUNT(*)INTO dummy FROMcompany_holidays
WHEREDAY=TRUNC(SYSDATE);
IF dummy >0THEN
raise_application_error(-20501,'May not change employee table during a
holiday');
ENDIF;
/*If the current time is before 8:00AM or after
6:00PM, then return an error. */
IF(TO_CHAR(SYSDATE,'HH24')<8ORTO_CHAR(SYSDATE,'HH24')>=18)THEN
raise_application_error(-20502,'May only change employee table during
working hours');
ENDIF;
END;
LA CLÁUSULA WHEN
La cláusula WHEN sólo es válida para disparadores con nivel de fila. Si está presente, el
cuerpo del disparador sólo se ejecutará para las filas que cumplan la condición especificada
en la cláusula.
CREATETRIGGER tr1
BEFORE INSERTORUPDATEOFsalarioONscott.emp
FOR EACH ROWWHEN(NEW.job<>'PRESIDENT')
BEGIN
/* Cuerpo del disparador */
END;
Esto último es equivalente a:
CREATETRIGGER tr1
BEFORE INSERTORUPDATEOFsalarioONscott.emp
FOR EACH ROW
BEGIN
IF:NEW.job<>'PRESIDENT'THEN
<spanclass="comentario">/* Cuerpo del disparador */</span>
24. ENDIF;
END;
Para hacer que un trigger ejecute un ROLLBACK de la transacción que tiene activa y
teniendo en cuenta que en las sentencias que componen el cuerpo de un trigger no puede
haber este tipo de sentencias (rollback, commit,…) hay que ejecutar “error /
excepcion” mediante la sentencia raise_application_error cuya sintaxis es:
RAISE_APPLICATION_ERROR(num_error,’mensaje’);
El num_error es un número entero cualquiera, aunque se aconseja que tenga 5 dígitos.
raise_application_error(20000,’ No se puede modificar el cliente.’);
TABLA MUTANDO
Cuando se realiza un trigger sobre una tabla, dicha tabla se dice que está en “proceso de
mutación”, es decir, que se están realizando cambios sobre ella y que por tanto dentro del
trigger no se debe hacer ningún tipo de acceso a dicha tabla con operaciones DML
(SELECT, INSERT, DELETE o UPDATE).
Si queremos conocer los valores del registro de la tabla sobre la que se ha disparado el
trigger, este último debe estar declarado de forma FOR EACH ROW y acceder a sus
valores mediante las pseudocolumnas :NEW y :OLD.
25. PL/SQL – REGISTROS Y
TABLAS
2013/07/21 BY ALEJANDRO ALCALDE, 0 COMENTARIOS,
EN BASEDEDATOS
Existen dos tipos de datos que no he mencionado anteriormente: los registros (o
estructuras) y las tablas (o arrays o vectores).
Los dos tipos deben ser definidos como un nuevo tipo antes de declarar variables de ese
nuevo tipo.
El modo de definir nuevos tipos de variables en PL/SQL es a través de la palabra reservada
TYPE:
TYPEnuevo_tipoIStipo_original.
Una vez definido en nuevo tipo, ya se pueden definir variables de ese nuevo tipo.
REGISTROS
Los registros no son más que agrupaciones de tipos de variables que se acceden con el
mismo nombre.
TYPEnombre_registroISRECORD(
Campo1 tipo,
Campo2 tipo,
Campo3 tipo );
Por ejemplo:
TYPE alumno ISRECORD(
n_alumnoVARCHAR2(5),
nombreVARCHAR2(25),
26. tlfVARCHAR2(15));
TABLAS
Una tabla no es más que una colección de elementos identificados cada uno de ellos por un
índice. En muchos lenguajes se les denomina arrays o matrices.
TYPEnombre_tablaISTABLEOFtipo_de_elementos;
El tamaño de la tabla se define durante la declaración de la variable.
Nombre_variablenombre_tabla:=nombre_variable( lista de elementos );
Pro ejemplo:
DECLARE
TYPEarray_enterosISTABLEOFINTEGER;
Un_arrayarray_enteros:=array_enteros(0,0,0,0);