Este documento presenta una introducción a PL/SQL, incluyendo su uso para manejar datos en el esquema de una base de datos, así como bucles, procedimientos, funciones y el tratamiento de excepciones. Explica conceptos como bloques, variables, constantes, instrucciones SELECT...INTO, de control e instrucciones y manejo de excepciones. También cubre temas como cursores, triggers e índices.
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNAnyeni Garay
Este documento trata sobre el control de ejecución y mantenimiento de sesión en Java. Explica las diferentes instrucciones de control de flujo como if-else, bucles while, do-while y for, así como palabras clave como return, break y continue. También cubre temas como el operador coma, la sintaxis foreach y el uso de switch.
El documento describe la estructura básica del lenguaje de programación de Arduino, que consiste en las funciones void setup() y void loop(). La función setup() se ejecuta una vez al inicio del programa para inicializar los pines y puertos, mientras que la función loop() se ejecuta de forma cíclica. También describe conceptos como variables, tipos de datos, operadores, funciones y control de flujo que se utilizan en Arduino.
El documento describe la estructura básica de un programa en C++. Explica que un programa en C++ debe incluir cabeceras, la función principal "main", y las sentencias de código dentro de llaves. También detalla cada parte como las librerías, parámetros de la función main, y que el programa termina cuando se cierra la función main.
Este documento introduce conceptos básicos de PHP como variables, constantes, operadores, estructuras de control como if, while, for y funciones. Explica que PHP es un lenguaje de programación con variables, sentencias condicionales y bucles similar a JavaScript o C. Muestra ejemplos simples de código PHP para ilustrar estos conceptos.
Este documento describe varios elementos fundamentales del lenguaje de programación Java, incluyendo comentarios, literales, identificadores, palabras reservadas, tipos de datos primitivos, operadores, promoción, casting, estructuras de control, excepciones, jerarquía de excepciones, excepciones definidas por el usuario e interfaz hombre-máquina.
Este documento ofrece una introducción básica a PHP, incluyendo que es un lenguaje de programación del lado del servidor, cómo funcionan las variables, constantes y operadores. También explica estructuras de control como condicionales if, bucles while, for y switch, y cómo definir y usar funciones. El objetivo es proporcionar una comprensión fundamental de PHP para principiantes.
Este documento ofrece una introducción básica a PHP, incluyendo que es un lenguaje de programación del lado del servidor, cómo funcionan las variables, constantes y operadores. También explica estructuras de control como condicionales if, bucles while, for y switch, y cómo definir y usar funciones. El objetivo es proporcionar una comprensión fundamental de PHP para principiantes.
El documento presenta una introducción a los tipos de datos, operaciones y estructuras de control en Visual Basic. Explica los diferentes tipos de datos como enteros, flotantes, cadenas y Booleanos, así como operadores aritméticos, lógicos y de comparación. También describe las estructuras de control If, Select Case, For, While y Do While para la toma de decisiones y bucles. Finalmente, propone algunas actividades prácticas para aplicar los conceptos.
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNAnyeni Garay
Este documento trata sobre el control de ejecución y mantenimiento de sesión en Java. Explica las diferentes instrucciones de control de flujo como if-else, bucles while, do-while y for, así como palabras clave como return, break y continue. También cubre temas como el operador coma, la sintaxis foreach y el uso de switch.
El documento describe la estructura básica del lenguaje de programación de Arduino, que consiste en las funciones void setup() y void loop(). La función setup() se ejecuta una vez al inicio del programa para inicializar los pines y puertos, mientras que la función loop() se ejecuta de forma cíclica. También describe conceptos como variables, tipos de datos, operadores, funciones y control de flujo que se utilizan en Arduino.
El documento describe la estructura básica de un programa en C++. Explica que un programa en C++ debe incluir cabeceras, la función principal "main", y las sentencias de código dentro de llaves. También detalla cada parte como las librerías, parámetros de la función main, y que el programa termina cuando se cierra la función main.
Este documento introduce conceptos básicos de PHP como variables, constantes, operadores, estructuras de control como if, while, for y funciones. Explica que PHP es un lenguaje de programación con variables, sentencias condicionales y bucles similar a JavaScript o C. Muestra ejemplos simples de código PHP para ilustrar estos conceptos.
Este documento describe varios elementos fundamentales del lenguaje de programación Java, incluyendo comentarios, literales, identificadores, palabras reservadas, tipos de datos primitivos, operadores, promoción, casting, estructuras de control, excepciones, jerarquía de excepciones, excepciones definidas por el usuario e interfaz hombre-máquina.
Este documento ofrece una introducción básica a PHP, incluyendo que es un lenguaje de programación del lado del servidor, cómo funcionan las variables, constantes y operadores. También explica estructuras de control como condicionales if, bucles while, for y switch, y cómo definir y usar funciones. El objetivo es proporcionar una comprensión fundamental de PHP para principiantes.
Este documento ofrece una introducción básica a PHP, incluyendo que es un lenguaje de programación del lado del servidor, cómo funcionan las variables, constantes y operadores. También explica estructuras de control como condicionales if, bucles while, for y switch, y cómo definir y usar funciones. El objetivo es proporcionar una comprensión fundamental de PHP para principiantes.
El documento presenta una introducción a los tipos de datos, operaciones y estructuras de control en Visual Basic. Explica los diferentes tipos de datos como enteros, flotantes, cadenas y Booleanos, así como operadores aritméticos, lógicos y de comparación. También describe las estructuras de control If, Select Case, For, While y Do While para la toma de decisiones y bucles. Finalmente, propone algunas actividades prácticas para aplicar los conceptos.
El documento describe los diagramas de flujo, pseudocódigo y sus estructuras de control. Explica que el pseudocódigo permite describir algoritmos sin preocuparse por la sintaxis de programación y actúa como un borrador del código. Luego detalla las principales estructuras de control como if/else, while, for y switch usadas en pseudocódigo para elegir caminos condicionales.
Cursos gratis de programación en Java. Bifurcaciones, if y switch. Orientado a Grado, DAM y DAW. Otros cursos disponibles para Android, Swift, Base de datos, javascript, servicios y procesos...
Este documento describe las estructuras de control en el lenguaje de programación Borland C++, incluyendo estructuras secuenciales, selectivas y repetitivas. Explica la sintaxis y uso de sentencias if, if-else, switch y while. Además, presenta ejemplos de problemas y su solución utilizando estas estructuras de control.
El documento describe el lenguaje de programación ActionScript y sus características. ActionScript es el lenguaje utilizado en Flash para crear películas interactivas y otras aplicaciones. Explica los paneles de acciones y fragmentos de código en Flash, así como operadores, expresiones y estructuras condicionales en ActionScript.
El documento proporciona instrucciones sobre sentencias de control en C++. Explica las sentencias condicionales IF, IF-ELSE y SWITCH, que permiten ejecutar código dependiendo de si se cumple una condición. También cubre las sentencias repetitivas WHILE, DO-WHILE y FOR, que permiten repetir código un número determinado de veces o mientras se cumpla una condición. Finalmente, presenta las sentencias BREAK y CONTINUE, que controlan el flujo de ejecución dentro de bucles.
Este documento describe operadores y expresiones en C. Explica los conceptos de operador, operando y operador de asignación. También cubre la inicialización de variables, expresiones, operadores de incremento y decremento, operadores relacionales y lógicos, y conversión de tipos. Finalmente, detalla el uso de las funciones printf() y scanf() para entrada y salida de datos por consola.
El documento describe diferentes estructuras de control de flujo en JavaScript como if, if/else, for y for/in que permiten tomar decisiones y repetir bloques de código. También describe funciones útiles para cadenas, arrays y números como length, concat, join e isNaN. Finalmente, explica el ámbito de las variables y la diferencia entre variables globales y locales.
Las instrucciones de C++ controlan cómo y en qué orden se manipulan los objetos en un programa. Existen varios tipos de instrucciones como declarativas, de asignación, selectivas, repetitivas, de entrada y salida de datos, y de bifurcación. Las instrucciones declarativas introducen nombres en un programa como variables y librerías, mientras que las instrucciones de asignación dan valores a las variables.
Este documento describe la estructura básica del lenguaje de programación Arduino, incluyendo las funciones void setup() y void loop(), que son requeridas para que un programa funcione. Explica que setup() se ejecuta una vez al inicio y se usa para inicializar variables y comunicaciones, mientras que loop() se ejecuta continuamente y contiene el código principal del programa. También cubre conceptos como variables, tipos de datos, comentarios y operadores aritméticos.
Este documento describe diferentes formas de representar algoritmos, incluyendo pseudocódigo y diagramas de flujo. Explica que el pseudocódigo se compone de una cabecera, declaraciones y un cuerpo de instrucciones. También cubre expresiones, acciones secuenciales como asignación y entrada/salida, y estructuras de control como si-entonces y según para manejar condiciones lógicas y valores variables. Proporciona ejemplos de cada uno de estos conceptos.
Este documento trata sobre programación básica en JavaScript. Explica conceptos como variables, tipos de variables, operadores, estructuras de control de flujo y funciones básicas. Describe cómo declarar y asignar valores a variables, los diferentes tipos como numéricos, cadenas y booleanos, y operadores como asignación, lógicos y matemáticos. También cubre estructuras como if, for y funciones para manipular cadenas, arrays y números.
El documento describe las características del lenguaje C que facilitan el diseño, la implementación, la operación y el mantenimiento de programas grandes, incluyendo la capacidad de dividir un programa en módulos llamados funciones que permiten construir programas a partir de piezas pequeñas manejables. También explica conceptos como parámetros, tipos de retorno, llamadas a funciones y prototipos.
Este documento describe diferentes estructuras de control en PHP como if/else, if/elseif/else, switch, while, do/while y for. También explica cómo procesar formularios en PHP mediante los métodos GET y POST y acceder a los datos del formulario a través de las variables $_GET y $_POST.
Este documento proporciona una introducción al lenguaje de programación ActionScript. Explica que ActionScript es el lenguaje de programación utilizado en Adobe Flash y describe algunas de sus características principales como que es orientado a objetos y tiene una sintaxis similar a JavaScript. También describe varios objetos comunes en ActionScript como MovieClip, Button, Sound y Mouse.
Este documento describe las estructuras de control en el lenguaje de programación C. Introduce las estructuras secuenciales, selectivas y repetitivas, que permiten representar algoritmos de forma estructurada. Explica cada una de estas estructuras de control, incluyendo if/else, switch, while, do/while y for; y provee ejemplos de su uso.
Este documento presenta los elementos básicos del lenguaje de programación C++, incluyendo estructuras de control secuenciales, selectivas y repetitivas. Explica las sentencias if, switch y while para controlar el flujo del programa. También proporciona ejemplos de cómo implementar estas estructuras de control para resolver problemas comunes.
Este documento describe los operadores y estructuras de control en PHP. Explica los diferentes tipos de operadores como aritméticos, de asignación, comparación, lógicos y de cadenas. También describe las estructuras condicionales if/else y switch, y los bucles while, do/while y for. Finalmente, cubre los arrays en PHP y cómo acceder y iterar sobre sus elementos.
Las estructuras de control permiten modificar el orden de ejecución de un programa para adaptarse al estado del mismo. Existen estructuras secuenciales, selectivas y repetitivas. Las selectivas incluyen if, if-else y switch-case para tomar decisiones, y las repetitivas como for, while y do-while repiten instrucciones basadas en una condición.
Una base de datos es un conjunto de datos organizados y relacionados entre sí que son recolectados y explotados por los sistemas de información de una empresa u organización. Un sistema de gestión de base de datos (SGBD) sirve de interfaz entre la base de datos, los usuarios y las aplicaciones, y se compone de lenguajes de definición, manipulación y consultas de datos. Existen diferentes tipos de bases de datos como MySQL, PostgreSQL, Access y Microsoft SQL Server, y la estructura básica de una base de datos incluye tablas con campos y registros organizados
El documento contiene el nombre de dos personas, Alan Alberto Hdz Sánchez y Lic. Gerardo Edgar Mata Ortiz, así como la indicación de que el tema tratado es la distribución normal en el programa Mini tab.
El documento describe los diagramas de flujo, pseudocódigo y sus estructuras de control. Explica que el pseudocódigo permite describir algoritmos sin preocuparse por la sintaxis de programación y actúa como un borrador del código. Luego detalla las principales estructuras de control como if/else, while, for y switch usadas en pseudocódigo para elegir caminos condicionales.
Cursos gratis de programación en Java. Bifurcaciones, if y switch. Orientado a Grado, DAM y DAW. Otros cursos disponibles para Android, Swift, Base de datos, javascript, servicios y procesos...
Este documento describe las estructuras de control en el lenguaje de programación Borland C++, incluyendo estructuras secuenciales, selectivas y repetitivas. Explica la sintaxis y uso de sentencias if, if-else, switch y while. Además, presenta ejemplos de problemas y su solución utilizando estas estructuras de control.
El documento describe el lenguaje de programación ActionScript y sus características. ActionScript es el lenguaje utilizado en Flash para crear películas interactivas y otras aplicaciones. Explica los paneles de acciones y fragmentos de código en Flash, así como operadores, expresiones y estructuras condicionales en ActionScript.
El documento proporciona instrucciones sobre sentencias de control en C++. Explica las sentencias condicionales IF, IF-ELSE y SWITCH, que permiten ejecutar código dependiendo de si se cumple una condición. También cubre las sentencias repetitivas WHILE, DO-WHILE y FOR, que permiten repetir código un número determinado de veces o mientras se cumpla una condición. Finalmente, presenta las sentencias BREAK y CONTINUE, que controlan el flujo de ejecución dentro de bucles.
Este documento describe operadores y expresiones en C. Explica los conceptos de operador, operando y operador de asignación. También cubre la inicialización de variables, expresiones, operadores de incremento y decremento, operadores relacionales y lógicos, y conversión de tipos. Finalmente, detalla el uso de las funciones printf() y scanf() para entrada y salida de datos por consola.
El documento describe diferentes estructuras de control de flujo en JavaScript como if, if/else, for y for/in que permiten tomar decisiones y repetir bloques de código. También describe funciones útiles para cadenas, arrays y números como length, concat, join e isNaN. Finalmente, explica el ámbito de las variables y la diferencia entre variables globales y locales.
Las instrucciones de C++ controlan cómo y en qué orden se manipulan los objetos en un programa. Existen varios tipos de instrucciones como declarativas, de asignación, selectivas, repetitivas, de entrada y salida de datos, y de bifurcación. Las instrucciones declarativas introducen nombres en un programa como variables y librerías, mientras que las instrucciones de asignación dan valores a las variables.
Este documento describe la estructura básica del lenguaje de programación Arduino, incluyendo las funciones void setup() y void loop(), que son requeridas para que un programa funcione. Explica que setup() se ejecuta una vez al inicio y se usa para inicializar variables y comunicaciones, mientras que loop() se ejecuta continuamente y contiene el código principal del programa. También cubre conceptos como variables, tipos de datos, comentarios y operadores aritméticos.
Este documento describe diferentes formas de representar algoritmos, incluyendo pseudocódigo y diagramas de flujo. Explica que el pseudocódigo se compone de una cabecera, declaraciones y un cuerpo de instrucciones. También cubre expresiones, acciones secuenciales como asignación y entrada/salida, y estructuras de control como si-entonces y según para manejar condiciones lógicas y valores variables. Proporciona ejemplos de cada uno de estos conceptos.
Este documento trata sobre programación básica en JavaScript. Explica conceptos como variables, tipos de variables, operadores, estructuras de control de flujo y funciones básicas. Describe cómo declarar y asignar valores a variables, los diferentes tipos como numéricos, cadenas y booleanos, y operadores como asignación, lógicos y matemáticos. También cubre estructuras como if, for y funciones para manipular cadenas, arrays y números.
El documento describe las características del lenguaje C que facilitan el diseño, la implementación, la operación y el mantenimiento de programas grandes, incluyendo la capacidad de dividir un programa en módulos llamados funciones que permiten construir programas a partir de piezas pequeñas manejables. También explica conceptos como parámetros, tipos de retorno, llamadas a funciones y prototipos.
Este documento describe diferentes estructuras de control en PHP como if/else, if/elseif/else, switch, while, do/while y for. También explica cómo procesar formularios en PHP mediante los métodos GET y POST y acceder a los datos del formulario a través de las variables $_GET y $_POST.
Este documento proporciona una introducción al lenguaje de programación ActionScript. Explica que ActionScript es el lenguaje de programación utilizado en Adobe Flash y describe algunas de sus características principales como que es orientado a objetos y tiene una sintaxis similar a JavaScript. También describe varios objetos comunes en ActionScript como MovieClip, Button, Sound y Mouse.
Este documento describe las estructuras de control en el lenguaje de programación C. Introduce las estructuras secuenciales, selectivas y repetitivas, que permiten representar algoritmos de forma estructurada. Explica cada una de estas estructuras de control, incluyendo if/else, switch, while, do/while y for; y provee ejemplos de su uso.
Este documento presenta los elementos básicos del lenguaje de programación C++, incluyendo estructuras de control secuenciales, selectivas y repetitivas. Explica las sentencias if, switch y while para controlar el flujo del programa. También proporciona ejemplos de cómo implementar estas estructuras de control para resolver problemas comunes.
Este documento describe los operadores y estructuras de control en PHP. Explica los diferentes tipos de operadores como aritméticos, de asignación, comparación, lógicos y de cadenas. También describe las estructuras condicionales if/else y switch, y los bucles while, do/while y for. Finalmente, cubre los arrays en PHP y cómo acceder y iterar sobre sus elementos.
Las estructuras de control permiten modificar el orden de ejecución de un programa para adaptarse al estado del mismo. Existen estructuras secuenciales, selectivas y repetitivas. Las selectivas incluyen if, if-else y switch-case para tomar decisiones, y las repetitivas como for, while y do-while repiten instrucciones basadas en una condición.
Una base de datos es un conjunto de datos organizados y relacionados entre sí que son recolectados y explotados por los sistemas de información de una empresa u organización. Un sistema de gestión de base de datos (SGBD) sirve de interfaz entre la base de datos, los usuarios y las aplicaciones, y se compone de lenguajes de definición, manipulación y consultas de datos. Existen diferentes tipos de bases de datos como MySQL, PostgreSQL, Access y Microsoft SQL Server, y la estructura básica de una base de datos incluye tablas con campos y registros organizados
El documento contiene el nombre de dos personas, Alan Alberto Hdz Sánchez y Lic. Gerardo Edgar Mata Ortiz, así como la indicación de que el tema tratado es la distribución normal en el programa Mini tab.
Este documento presenta una introducción a la programación orientada por objetos. Explica conceptos clave como clases, objetos, atributos, métodos, herencia y polimorfismo. También describe las diferencias entre la programación convencional y la orientada a objetos, donde los objetos encapsulan datos y comportamientos. El profesor Hernández introduce estos temas para explicar los fundamentos de este paradigma de programación.
Este documento describe los pasos para editar una fotografía en Photoshop incluyendo convertirla a blanco y negro, mezclar canales, ajustar el tono y la saturación, probar variaciones y reemplazar colores.
Este documento describe las funciones principales de Microsoft Outlook. Describe cómo administrar cuentas de correo electrónico, contactos, tareas, citas y reuniones en Outlook. También explica cómo crear y enviar correos electrónicos, buscar contactos y ver detalles sobre ellos.
Este documento proporciona información sobre Excel, un programa de hojas de cálculo desarrollado por Microsoft que permite realizar tareas financieras y contables. Explica que las funciones son una característica importante de Excel que se utilizan para realizar cálculos y modificar el contenido de las celdas, dividiéndolas en categorías como búsqueda y referencia, lógicas, de texto, fecha y hora, estadísticas y más. Luego describe algunas funciones específicas de búsqueda y referencia y lógicas que
El algoritmo de ordenamiento Shell mejora el método de inserción al comparar elementos separados por saltos de tamaño decreciente, permitiendo que los elementos se muevan más rápido a su posición final. Comienza con saltos grandes y luego reduce progresivamente el tamaño del salto hasta alcanzar una ordenación por inserción directa, dejando la lista casi ordenada.
Este documento destaca la importancia de no apresurarse a tomar decisiones basadas en una sola perspectiva o pieza de información, sino asegurarse de considerar múltiples puntos de vista y versiones de los hechos. Recomienda consultar diferentes fuentes de información y opiniones antes de llegar a una conclusión, y tener en cuenta que diferentes personas pueden percibir una situación de manera distinta basado en su propia experiencia.
Este documento narra la llegada de Miguel Angel Balls, un hombre mayor, al colegio para impartir una clase llamada "La Hora de Soñar". Miguel limpia y acondiciona un pequeño aula abandonada para sus clases. En la primera clase, invita a los niños a escuchar sus corazones para descubrir sus deseos más profundos. Juan queda intrigado por las enseñanzas de Miguel y pregunta a su padre si es posible volar con el espíritu, a lo que su padre responde con escepticismo.
El documento resume un libro sobre sanación integral. Explica que el cuerpo está compuesto de siete capas de energía física, emocional, mental y espiritual. La salud depende del equilibrio de estas energías. También habla sobre los siete chakras que revitalizan el cuerpo y la mente. Finalmente, concluye que el libro ofrece un mensaje sobre la importancia de mantener una mente pacífica y positiva para lograr un balance energético y buena salud.
El documento proporciona información sobre las operaciones de monitoreo financiero efectivizadas y validadas el 20 de enero de 2015 en Argentina. Se registraron 5,189,828 operaciones efectivizadas por un monto total de $27,603,463,309 (USD 3,311,864,243) y 5,738,146 operaciones validadas por un monto total de $30,462,771,849 (USD 3,657,221,307). La mayoría de las operaciones fueron realizadas por el sector público y privado a través de entidades financieras locales.
El documento parece referirse a un material que se exhibe bajo los derechos otorgados por el artículo 32 de alguna ley de 1982. Sin embargo, no hay suficiente contexto o detalles en el documento para generar un resumen más completo.
El documento describe la comprensión como la habilidad de pensar y actuar basado en el conocimiento y experiencia disponible, representado a través de modelos mentales y esquemas de acción. La comprensión verdadera se logra a través del desarrollo de representaciones complejas y la habilidad de aplicar el conocimiento de manera flexible en diferentes contextos de desempeño. El aprendizaje para la comprensión ocurre a través del compromiso con tareas desafiantes donde los estudiantes pueden practicar y refinar sus habilidades, colocando al ma
El documento describe las estrategias utilizadas para realizar una búsqueda bibliográfica sobre cuidados paliativos para pacientes con enfermedad pulmonar obstructiva crónica (EPOC). Se detallan los términos de búsqueda en inglés y su traducción al español mediante DeCS. Luego, se especifica la búsqueda realizada en PubMed utilizando filtros para artículos de los últimos 5 años, en humanos y con texto completo. Finalmente, se muestran dos ejemplos de artículos completos encontrados y se indica
El documento habla sobre los entornos personales de aprendizaje (PLE). Un PLE ayuda a los estudiantes a establecer sus propios objetivos de aprendizaje, gestionar su aprendizaje y comunicarse con otros. Un PLE puede consistir en una aplicación de escritorio o varios servicios en línea. El documento también describe cómo el autor ha tenido que adaptarse a los cambios en la tecnología y la forma en que obtiene e intercambia información.
El documento define varios términos relacionados con la pedagogía y la enseñanza, incluyendo didáctica, algoritmo, lúdico, convicciones epistemológicas, constructivo y andamiaje. La didáctica se refiere a los métodos y técnicas para mejorar la enseñanza, mientras que un algoritmo es una solución paso a paso de un problema. El término lúdico se relaciona con el juego, y las convicciones epistemológicas subyacen a la investigación. El construct
Impress es un programa de edición de presentaciones de diapositivas que forma parte de la suite de oficina de Apache Open Office. Permite crear presentaciones y convertirlas a archivos PDF, aunque carece de plantillas integradas de diseño, que pueden obtenerse fácilmente en Internet de terceros.
Este documento describe un proyecto de aula para promover el gusto por la lectura y la escritura en estudiantes mediante el uso de las TIC. El proyecto tiene como objetivo fortalecer las habilidades comunicativas de los estudiantes utilizando recursos digitales como videos, programas educativos y Word. El cronograma de actividades incluye presentaciones de videos, salidas de campo, prácticas de lectura y escritura con diferentes programas. Se espera que los estudiantes mejoren en la interpretación de textos, composición de cuentos y
La nutrición en la adolescencia no ha sido una prioridad en los servicios de salud. Durante esta etapa de rápido crecimiento y desarrollo, los adolescentes tienen mayores necesidades nutricionales pero a menudo omiten comidas balanceadas y consumen comidas rápidas, gaseosas y dulces. Esto puede dar lugar a problemas de salud como obesidad, malnutrición y déficit de vitaminas. La escuela representa una oportunidad para enseñarles sobre hábitos alimenticios saludables a los adolescentes.
El Parque Nacional Cajas se encuentra ubicado a 30km al oeste de Cuenca, Ecuador. Posee una extensión de 28.500 hectáreas con más de 230 lagunas y una temperatura promedio de 10 grados centígrados. El parque contiene bosques de árboles de 8 a 10 metros de altura alrededor de las lagunas y especies forestales comunes como el Pumamaqui, Huahual y Aliso.
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.
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
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.
Este documento resume los principales conceptos de programación en Oracle Forms 10g, incluyendo variables, sentencias de control y bucles, cursores, excepciones, la sentencia raise, funciones, procedimientos y paquetes. Cubre temas como declaración de variables, tipos de bucles como loop, while y for, uso de cursores explícitos e implícitos, manejo de excepciones, y creación de funciones y procedimientos definidos por el usuario.
Este documento presenta una introducción al lenguaje PL/SQL. Describe las características y elementos principales de PL/SQL como bloques, declaración de variables, zonas de proceso y excepciones. También incluye ejemplos de funciones SQL predefinidas y ejercicios de programación PL/SQL.
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.
Este documento presenta la Unidad 3 de Fundamentos de Programación sobre estructuras de control. Explica estructuras condicionales como if-else que ejecutan instrucciones dependiendo de si una condición es verdadera o falsa, e iterativas como while y for que repiten instrucciones. También cubre sentencias anidadas y diferentes tipos de estructuras de control condicionales como if-elif-else.
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 documento resume las principales estructuras de control en el lenguaje de programación Borland C++, incluyendo estructuras secuenciales, selectivas (if, if-else, switch) y repetitivas (while, do-while, for). Explica la sintaxis y uso de cada una con ejemplos.
El documento describe los conceptos básicos de variables, tipos de datos, operadores y expresiones en Java. Explica que las variables deben declararse con un tipo de dato primitivo o referencial y que existen 8 tipos de datos primitivos como enteros, flotantes y caracteres. También describe los diferentes tipos de operadores como aritméticos, relacionales, lógicos y de asignación que pueden usarse con variables, así como el concepto de expresiones. Finalmente, introduce brevemente los conceptos de instrucciones, bloques de código y manejo de excepc
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 los fundamentos de JavaScript, incluyendo su uso en páginas web, normas de codificación, funciones, ventanas de alerta, eventos y variables. Explica cómo crear funciones y llamarlas, y cómo manejar eventos del usuario para mostrar alertas u otras acciones. También cubre tipos de datos, operadores y la creación de un programa JavaScript básico.
1. El documento describe las normas y conceptos básicos de JavaScript, incluyendo el uso de funciones, variables, constantes y operadores. 2. Explica cómo crear funciones y cómo llamarlas desde elementos del documento o desde otras funciones. 3. Proporciona ejemplos de código JavaScript para mostrar mensajes, manipular eventos y utilizar variables.
1. El documento describe las normas y conceptos básicos de JavaScript, incluyendo el uso de funciones, variables, constantes y operadores. 2. Explica cómo crear funciones y cómo llamarlas desde elementos del documento o desde otras funciones. 3. Proporciona ejemplos de código JavaScript simples para mostrar el uso de funciones, variables y eventos.
1. El documento describe las normas y conceptos básicos de JavaScript, incluyendo el uso de funciones, variables, constantes y operadores. 2. Explica cómo crear funciones y cómo llamarlas desde elementos del documento o desde otras funciones. 3. Proporciona ejemplos de código JavaScript simples para mostrar el uso de funciones, variables y eventos.
El documento proporciona una introducción a la estructura y elementos básicos de un programa de Arduino, incluyendo secciones para declarar variables, setup y loop. Explica la estructura de control con bloques condicionales como if/else y switch/case, y bloques repetitivos como while, do y for para ejecutar código de forma condicional o repetitiva.
Este documento presenta temas comunes en el manejo de PHP, incluyendo la sintaxis de PHP, declaración y definición de variables, tipos de variables y datos, operadores, condicionales, ciclos, manejo de datos, cadenas, arreglos, funciones y librerías en PHP.
PL/SQL es un lenguaje de programación que extiende SQL para permitir estructuras de control, funciones, procedimientos y paquetes. PL/SQL utiliza bloques que contienen declaraciones de variables y tipos de datos, instrucciones y una sección de excepciones. Incluye cursores para manipular conjuntos de datos, tipos de datos estructurados como registros y vectores, y excepciones para controlar errores.
PHP es un lenguaje de programación de alto nivel que se puede empotrar en páginas HTML para crear aplicaciones dinámicas del lado del servidor. PHP se puede usar para crear scripts del lado del servidor, scripts de línea de comandos y aplicaciones con interfaz gráfica. Se requiere un servidor web como Apache y una base de datos como MySQL para ejecutar aplicaciones PHP.
José Luis Jiménez Rodríguez
Junio 2024.
“La pedagogía es la metodología de la educación. Constituye una problemática de medios y fines, y en esa problemática estudia las situaciones educativas, las selecciona y luego organiza y asegura su explotación situacional”. Louis Not. 1993.
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxOsiris Urbano
Evaluación de principales hallazgos de la Historia Clínica utiles en la orientación diagnóstica de Hemorragia Digestiva en el abordaje inicial del paciente.
La Unidad Eudista de Espiritualidad se complace en poner a su disposición el siguiente Triduo Eudista, que tiene como propósito ofrecer tres breves meditaciones sobre Jesucristo Sumo y Eterno Sacerdote, el Sagrado Corazón de Jesús y el Inmaculado Corazón de María. En cada día encuentran una oración inicial, una meditación y una oración final.
1. 1
PL/SQL: IntroducciPL/SQL: Introduccióónn
BDSIBDSI -- Grupo AGrupo A
IntroducciIntroduccióónn
PL/SQL: Lenguaje imperativo paraPL/SQL: Lenguaje imperativo para
manejar los datos del esquemamanejar los datos del esquema
Bucles, procedimientos, funcionesBucles, procedimientos, funciones
Tratamiento de excepcionesTratamiento de excepciones
CursoresCursores
TriggersTriggers
ÍÍndicendice
1.1. BloquesBloques
2.2. Variables y constantesVariables y constantes
3.3. SelectSelect …… intointo
4.4. Instrucciones de controlInstrucciones de control
5.5. ExcepcionesExcepciones
6.6. ProcedimientosProcedimientos
7.7. CursoresCursores
8.8. TriggersTriggers
Primer Ejemplo: bloque anPrimer Ejemplo: bloque anóónimonimo
SET SERVEROUTPUT ON;SET SERVEROUTPUT ON;
Esto es para que los mensajes que se muestran conEsto es para que los mensajes que se muestran con dbms_output.put_linedbms_output.put_line (el(el
equivalente aequivalente a writelnwriteln) se muestren por la salida est) se muestren por la salida estáándar. Por defecto estndar. Por defecto estáá
a OFF. Sa OFF. Sóólo es necesario hacerlo una vez.lo es necesario hacerlo una vez.
Un bloque anUn bloque anóónimo en PL/SQL:nimo en PL/SQL:
BEGINBEGIN
dbms_output.put_linedbms_output.put_line(('Animula vagula, blandula, …');
END;END;
El bloque se carga y ejecuta a la vez. No queda grabado y no pueEl bloque se carga y ejecuta a la vez. No queda grabado y no puede usarsede usarse
de nuevode nuevo
Estructura de un bloqueEstructura de un bloque
DECLAREDECLARE
/*variables,/*variables, typestypes,, andand locallocal subprogramssubprograms. */. */
BEGINBEGIN
/*/* ExecutableExecutable sectionsection:: proceduralprocedural andand SQLSQL statementsstatements gogo herehere. */. */
/*/* ThisThis isis thethe onlyonly sectionsection ofof thethe blockblock thatthat isis requiredrequired. */. */
EXCEPTIONEXCEPTION
/*/* ExceptionException handlinghandling sectionsection: error: error handlinghandling statementsstatements gogo herehere..
*/*/
END;END;
Ver los erroresVer los errores
A menudo obtendremos:A menudo obtendremos:
Advertencia: Procedimiento creado con errores de
compilación.
Para ver quPara ver quéé error ha habido:error ha habido:
SHOW ERRORS
Esto hay que hacerlo cada vez que hay un errorEsto hay que hacerlo cada vez que hay un error
2. 2
VariablesVariables
DECLAREDECLARE
nombre VARCHAR(20);nombre VARCHAR(20);
---- tipo de la columna importe de ventastipo de la columna importe de ventas
precioprecio ventas.importe%Typeventas.importe%Type;;
---- tipo de la fila ventastipo de la fila ventas
filaventasfilaventas ventas%ROWTYPEventas%ROWTYPE;;
---- una constanteuna constante
limite CONSTANT NUMBER := 5000;limite CONSTANT NUMBER := 5000;
Valor por defecto de toda variable: NULLValor por defecto de toda variable: NULL
Se pueden asignar valores con :=Se pueden asignar valores con :=
Variables: ejemploVariables: ejemplo
DECLAREDECLARE
a NUMBER := 3;a NUMBER := 3;
BEGINBEGIN
a := a + 1;a := a + 1;
END;END;
---- (es un bloque totalmente in(es un bloque totalmente inúútil)til)
SelectSelect …… intointo
DECLAREDECLARE
nn trabajadores.nombre%Typetrabajadores.nombre%Type;;
aa trabajadores.apellidos%TYPEtrabajadores.apellidos%TYPE;;
BEGINBEGIN
SELECT nombre,apellidos INTO n,a
FROM trabajadores;
WHERE DNI=WHERE DNI=‘‘001001’’;;
INSERT INTO T1INSERT INTO T1 VALUES(n,aVALUES(n,a););
END;END;
Si no hay exactamente un par de valoresSi no hay exactamente un par de valores nombre,apellidosnombre,apellidos sese
provocarprovocaráá una excepciuna excepcióónn los select … into deben devolver una
única fila
Instrucciones de control:Instrucciones de control: IfIf
IF <IF <conditioncondition> THEN <> THEN <statement_liststatement_list> ELSE <> ELSE <statement_liststatement_list> END IF;> END IF;
IF <IF <conditioncondition_1> THEN ... ELSIF <_1> THEN ... ELSIF <conditioncondition_2> THEN ... ... ... ELSIF_2> THEN ... ... ... ELSIF
<<condition_ncondition_n> THEN ... ELSE ... END IF;> THEN ... ELSE ... END IF;
DECLARE
a NUMBER;
b NUMBER;
BEGIN
SELECT e,f INTO a,b FROM T1 WHERE e>1;
IF b=1 THEN
INSERT INTO T1 VALUES(b,a);
ELSE
INSERT INTO T1 VALUES(b+10,a+10);
END IF;
END;
Instrucciones de control:Instrucciones de control: looploop
DECLAREDECLARE
i NUMBER := 1;i NUMBER := 1;
BEGINBEGIN
LOOPLOOP
INSERT INTO T1INSERT INTO T1 VALUES(i,iVALUES(i,i););
i := i+1;i := i+1;
EXIT WHEN i>100;EXIT WHEN i>100;
END LOOP;END LOOP;
END;END;
Si se usaSi se usa looploop hay que poner alghay que poner algúúnn exitexit (con o sin(con o sin whenwhen))
Instrucciones de control:Instrucciones de control: whilewhile,, forfor
WHILE <WHILE <conditioncondition> LOOP> LOOP
<<loop_bodyloop_body>>
END LOOP;END LOOP;
FOR <FOR <varvar> IN <> IN <startstart>..<>..<finishfinish> LOOP> LOOP
<<loop_bodyloop_body>>
END LOOP;END LOOP;
Ejercicio: crear una tabla con un solo atributo numEjercicio: crear una tabla con un solo atributo numééricorico a yy
con 10 filas 1,2con 10 filas 1,2…….10.10
3. 3
Ejercicio: soluciEjercicio: solucióónn
drop table t;drop table t;
create tablecreate table t(at(a number primary key);number primary key);
DECLAREDECLARE
i number;i number;
BEGINBEGIN
For i in 1..10 loopFor i in 1..10 loop
insert into tinsert into t values(ivalues(i););
end loop;end loop;
end;end;
ExcepcionesExcepciones
Ejemplo:Ejemplo:
DECLAREDECLARE
---- DeclaracionesDeclaraciones
BEGINBEGIN
---- EjecuciEjecucióónn
……………………
EXCEPTIONEXCEPTION
WHENWHEN NO_DATA_FOUNDNO_DATA_FOUND THENTHEN
---- Se ejecuta cuando ocurre una excepciSe ejecuta cuando ocurre una excepcióón de tipon de tipo NO_DATA_FOUNDNO_DATA_FOUND
WHENWHEN ZERO_DIVIDEZERO_DIVIDE THENTHEN
---- Se ejecuta cuando ocurre una excepciSe ejecuta cuando ocurre una excepcióón de tipon de tipo ZERO_DIVIDEZERO_DIVIDE
WHEN OTHERS THENWHEN OTHERS THEN
---- Se ejecuta cuando ocurre una excepciSe ejecuta cuando ocurre una excepcióón de un tipo no tratadon de un tipo no tratado
---- en los bloques anterioresen los bloques anteriores
ENDEND;;
Excepciones en Oracle (I)Excepciones en Oracle (I)
ACCESS_INTO_NULLACCESS_INTO_NULL El programa intentEl programa intentóó asignar valores a los atributos de un objeto noasignar valores a los atributos de un objeto no
inicializadoinicializado --65306530
COLLECTION_IS_NULLCOLLECTION_IS_NULL El programa intentEl programa intentóó asignar valores a una tabla anidada aasignar valores a una tabla anidada aúún non no
inicializadainicializada --65316531
CURSOR_ALREADY_OPENCURSOR_ALREADY_OPEN El programa intentEl programa intentóó abrir un cursor que ya se encontraba abierto.abrir un cursor que ya se encontraba abierto.
Recuerde que un cursor de ciclo FOR automRecuerde que un cursor de ciclo FOR automááticamente lo abre y ello no se debe especificar conticamente lo abre y ello no se debe especificar con
la sentencia OPENla sentencia OPEN --65116511
DUP_VAL_ON_INDEXDUP_VAL_ON_INDEX El programa intentEl programa intentóó almacenar valores duplicados en una columna que sealmacenar valores duplicados en una columna que se
mantiene con restriccimantiene con restriccióón de integridad de unn de integridad de un ííndicendice úúnico (nico (uniqueunique indexindex)) --11
INVALID_CURSORINVALID_CURSOR El programa intentEl programa intentóó efectuar una operaciefectuar una operacióón no vn no váálida sobre un cursorlida sobre un cursor --10011001
INVALID_NUMBERINVALID_NUMBER En una sentencia SQL, la conversiEn una sentencia SQL, la conversióón de una cadena de caracteres hacia unn de una cadena de caracteres hacia un
nnúúmero falla cuando esa cadena no representa un nmero falla cuando esa cadena no representa un núúmero vmero váálidolido --17221722
LOGIN_DENIEDLOGIN_DENIED El programa intentEl programa intentóó conectarse a Oracle con un nombre de usuario oconectarse a Oracle con un nombre de usuario o passwordpassword
invinváálidolido --10171017
NO_DATA_FOUNDNO_DATA_FOUND Una sentencia SELECT INTO no devolviUna sentencia SELECT INTO no devolvióó valores o el programavalores o el programa referencireferencióó unun
elemento no inicializado en una tabla indexada 100elemento no inicializado en una tabla indexada 100
NOT_LOGGED_ONNOT_LOGGED_ON El programa efectuEl programa efectuóó una llamada a Oracle sin estar conectadouna llamada a Oracle sin estar conectado --10121012
Excepciones en Oracle (II)Excepciones en Oracle (II)
PROGRAM_ERRORPROGRAM_ERROR PL/SQL tiene un problema internoPL/SQL tiene un problema interno --65016501
ROWTYPE_MISMATCHROWTYPE_MISMATCH Los elementos de una asignaciLos elementos de una asignacióón (el valor a asignar y la variable que lon (el valor a asignar y la variable que lo
contendrcontendráá) tienen tipos incompatibles. Tambi) tienen tipos incompatibles. Tambiéén se presenta este error cuando un parn se presenta este error cuando un paráámetrometro
pasado a un subprograma no es del tipo esperadopasado a un subprograma no es del tipo esperado --65046504
SELF_IS_NULLSELF_IS_NULL El parEl paráámetro SELF (el primero que es pasado a un mmetro SELF (el primero que es pasado a un méétodo MEMBER) es nulotodo MEMBER) es nulo --3062530625
STORAGE_ERRORSTORAGE_ERROR La memoria se terminLa memoria se terminóó o esto estáá corruptacorrupta --65006500
SUBSCRIPT_BEYOND_COUNTSUBSCRIPT_BEYOND_COUNT El programa estEl programa estáá tratando de referenciar un elemento de untratando de referenciar un elemento de un
arreglo indexado que se encuentra en una posiciarreglo indexado que se encuentra en una posicióón mn máás grande que el ns grande que el núúmero real de elementosmero real de elementos
de la coleccide la coleccióónn --65336533
SUBSCRIPT_OUTSIDE_LIMITSUBSCRIPT_OUTSIDE_LIMIT El programa estEl programa estáá referenciandoreferenciando un elemento de un arregloun elemento de un arreglo
utilizando un nutilizando un núúmero fuera del rango permitido (por ejemplo, el elementomero fuera del rango permitido (por ejemplo, el elemento ““--11””)) --65326532
SYS_INVALID_ROWIDSYS_INVALID_ROWID La conversiLa conversióón de una cadena de caracteres hacia un tipon de una cadena de caracteres hacia un tipo rowidrowid fallfallóó porqueporque
la cadena no representa un nla cadena no representa un núúmeromero --14101410
TIMEOUT_ON_RESOURCETIMEOUT_ON_RESOURCE Se excediSe excedióó el tiempo mel tiempo mááximo de espera por un recurso en Oracleximo de espera por un recurso en Oracle --5151
TOO_MANY_ROWSTOO_MANY_ROWS Una sentencia SELECT INTO devuelve mUna sentencia SELECT INTO devuelve máás de una filas de una fila --14221422
VALUE_ERRORVALUE_ERROR OcurriOcurrióó un error aritmun error aritméético, de conversitico, de conversióón o truncamiento. Por ejemplo, suceden o truncamiento. Por ejemplo, sucede
cuando se intenta calzar un valor muy grande dentro de una variacuando se intenta calzar un valor muy grande dentro de una variable mble máás peques pequeññaa --65026502
ZERO_DIVIDEZERO_DIVIDE El programa intentEl programa intentóó efectuar una divisiefectuar una divisióón por ceron por cero --14761476
Excepciones: ejemploExcepciones: ejemplo
DECLARE
v_empid emp.empid%TYPE;
BEGIN
SELECT e.empid INTO v_empid
FROM emp e
WHERE e.ename = 'BERTOLDO';
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE OT_FAILURE;
WHEN TOO_MANY_ROWS THEN
RAISE OT_FAILURE;
WHEN OTHERS THEN
out_status_code := 'FAIL';
out_msg := g_out_msg || ' ' || SUBSTR(SQLERRM, 1, 60);
END;
Excepciones del usuarioExcepciones del usuario
DECLAREDECLARE
---- Declaramos unaDeclaramos una excepcionexcepcion identificada poridentificada por VALOR_NEGATIVOVALOR_NEGATIVO
VALOR_NEGATIVOVALOR_NEGATIVO EXCEPTIONEXCEPTION;;
valorvalor NUMBERNUMBER;;
BEGINBEGIN
---- EjecucionEjecucion
valor :=valor := --1;1;
IFIF valor < 0valor < 0 THENTHEN
RAISERAISE VALOR_NEGATIVOVALOR_NEGATIVO;;
END IF;END IF;
EXCEPTIONEXCEPTION
---- ExcepcionExcepcion
WHENWHEN VALOR_NEGATIVOVALOR_NEGATIVO THENTHEN
dbms_output.put_linedbms_output.put_line('El valor no puede ser negativo');('El valor no puede ser negativo');
ENDEND;;
4. 4
Variables de cursorVariables de cursor
Se usan en lugar de las excepciones paraSe usan en lugar de las excepciones para
controlar el efecto de una sentenciacontrolar el efecto de una sentencia selectselect,,
insertinsert,, updateupdate oo deletedelete
sql%rowcountsql%rowcount: n: núúmero de filas actualizadasmero de filas actualizadas
sql%notfoundsql%notfound: si no hay filas actualizadas. En el: si no hay filas actualizadas. En el
caso decaso de selectselect no se puede usar, siempre saltano se puede usar, siempre salta
la excepcila excepcióón.n. ÚÚtil para el resto (til para el resto (insertinsert,, deletedelete,,
updateupdate).).
Variables de cursor: ejemploVariables de cursor: ejemplo
beginbegin
updateupdate ventasventas
set importe = 10000set importe = 10000
wherewhere idvendedoridvendedor = 12;= 12;
ifif sql%notfoundsql%notfound thenthen
dbms_output.put_linedbms_output.put_line('No hay empleado 12 ...');('No hay empleado 12 ...');
endend ifif;;
exceptionexception
whenwhen no_data_foundno_data_found thenthen
dbms_output.put_linedbms_output.put_line('Error no se encuentran los datos');('Error no se encuentran los datos');
endend;;
No se ejecuta la excepciNo se ejecuta la excepcióón, sino eln, sino el ifif, porque no es un, porque no es un selectselect
Variables de cursor: ejemploVariables de cursor: ejemplo
beginbegin
updateupdate ventasventas
set importe = 10000set importe = 10000
wherewhere idvendedoridvendedor = 1;= 1;
dbms_output.put_linedbms_output.put_line('('NNúúmm filas afectadas ' ||filas afectadas ' ||
to_char(sql%rowcountto_char(sql%rowcount) );) );
exceptionexception
whenwhen no_data_foundno_data_found thenthen
dbms_output.put_linedbms_output.put_line('Error no se encuentran los datos');('Error no se encuentran los datos');
endend;;
Muestra:Muestra: Núm filas afectadas: 1
Variables de cursor: ejercicioVariables de cursor: ejercicio
Dada la tablaDada la tabla empleados(empleados(nombrenombre,,…….).)
escribir cescribir cóódigo PL/SQL para borrar aldigo PL/SQL para borrar al
empleado Bertoldo. El cempleado Bertoldo. El cóódigo debe avisardigo debe avisar
si la operacisi la operacióón se ha realizado conn se ha realizado con ééxitoxito
SoluciSolucióón:n:
ProcedimientosProcedimientos
---- esto es un comentarioesto es un comentario
CREATE OR REPLACE PROCEDURE hola ISCREATE OR REPLACE PROCEDURE hola IS
---- declaramos una variabledeclaramos una variable
usuario VARCHAR2(8) :=usuario VARCHAR2(8) := useruser;;
---- Bloque principalBloque principal
BEGINBEGIN
dbms_output.put_linedbms_output.put_line(' Hola, ' || usuario || '!');(' Hola, ' || usuario || '!');
END;END;
Llamar a un procedimientoLlamar a un procedimiento
Cuando se compile sin problemasCuando se compile sin problemas Procedimiento creado.
Para ejecutarlo:Para ejecutarlo:
EXEC hola
Hola, BERTOLDO43!
Procedimiento PL/SQL terminado correctamente..
5. 5
ParParáámetros ymetros y SelectSelect …… intointo
CREATE OR REPLACE PROCEDURE
totalventas (vendedor VARCHAR2) IS
num_ventas NUMBER;
BEGIN
SELECT COUNT(*) INTO num_ventas
FROM ventas WHERE idvendedor = vendedor;
IF num_ventas > 1 THEN
dbms_output.put_line('Total: ' || num_ventas || ' ventas.');
ELSIF num_ventas = 1 THEN
dbms_output.put_line('sólo una venta');
ELSE dbms_output.put_line('Sin ventas.');
END IF;
END;
Llamada con parLlamada con paráámetrosmetros
exec totalventas(2);
Total: 4 ventas.
Procedimiento PL/SQL terminado
correctamente.
CursoresCursores
ÚÚtiles para trabajartiles para trabajar ““fila a filafila a fila”” con el resultado de uncon el resultado de un
selectselect
Forma de proceder:Forma de proceder:
Declarar el cursor como si se tratara de una variableDeclarar el cursor como si se tratara de una variable
Abrir el cursor con la instrucciAbrir el cursor con la instruccióónn OPENOPEN
Leer cada fila conLeer cada fila con FETCHFETCH
Cerrar el cursor y liberar los recursos con la instrucciCerrar el cursor y liberar los recursos con la instruccióónn CLOSECLOSE
¡¡No deben usarse si se pueden sustituir fNo deben usarse si se pueden sustituir fáácilmente porcilmente por
unun selectselect!!
Declarando CursoresDeclarando Cursores
En un bloque anEn un bloque anóónimo:nimo:
declaredeclare
cursorcursor c_poemasc_poemas isis
SELECTSELECT autor, poemaautor, poema FROMFROM poemas;poemas;
beginbegin
/* Sentencias del bloque ...*//* Sentencias del bloque ...*/
endend;;
En un procedimiento: tras la cabeceraEn un procedimiento: tras la cabecera
Tratando cursores (1)Tratando cursores (1)
SET SERVEROUTPUT ONSET SERVEROUTPUT ON
DECLAREDECLARE
CURSORCURSOR cpaisescpaises
ISIS
SELECTSELECT CO_PAISCO_PAIS, DESCRIPCION, CONTINENTE, DESCRIPCION, CONTINENTE
FROMFROM PAISES;PAISES;
co_paisco_pais VARCHARVARCHAR(3);(3);
descripciondescripcion VARCHARVARCHAR(50);(50);
continentecontinente VARCHARVARCHAR(25);(25);
BEGINBEGIN
OPENOPEN cpaisescpaises;;
FETCHFETCH cpaisescpaises INTOINTO co_pais,descripcion,continenteco_pais,descripcion,continente;;
WHILEWHILE cpaises%cpaises%foundfound
LOOPLOOP
dbms_output.put_line(descripciondbms_output.put_line(descripcion););
FETCHFETCH cpaisescpaises INTOINTO co_pais,descripcion,continenteco_pais,descripcion,continente;;
ENDEND LOOPLOOP;;
CLOSECLOSE cpaisescpaises;;
ENDEND;;
Tratando cursores (2)Tratando cursores (2)
DECLAREDECLARE
CURSOR c_direcciones IS
SELECT nombre, dirección FROM direcciones;
el_nombreel_nombre direcciones.nombre%TYPEdirecciones.nombre%TYPE;;
la_callela_calle direcciones.calle%TYPEdirecciones.calle%TYPE;;
contador NUMBER(1);contador NUMBER(1);
BEGINBEGIN
OPENOPEN c_direccionesc_direcciones;;
LOOPLOOP
FETCHFETCH c_direccionesc_direcciones INTOINTO el_nombreel_nombre,, la_callela_calle;;
EXIT WHENEXIT WHEN c_direcciones%NOTFOUNDc_direcciones%NOTFOUND;;
DBMS_OUTPUT.PUT_LINE(DBMS_OUTPUT.PUT_LINE(‘‘NombreNombre: ' || nombre || ', Calle: ' || calle);: ' || nombre || ', Calle: ' || calle);
END LOOP;END LOOP;
CLOSECLOSE c_direccionesc_direcciones;;
ENDEND;;
6. 6
Tratando cursores (3)Tratando cursores (3)
SET SERVEROUTPUT ONSET SERVEROUTPUT ON
DECLAREDECLARE
v_empnov_empno employees.employee_id%TYPEemployees.employee_id%TYPE;;
v_enamev_ename employees.last_name%TYPEemployees.last_name%TYPE;;
v_count_rowv_count_row NUMBER(3);NUMBER(3);
CURSOR emp_cursor IS
SELECT employee_id, last_name
FROM employees;
BEGINBEGIN
SELECTSELECT COUNT(rownumCOUNT(rownum) INTO) INTO v_count_rowv_count_row FROMFROM employeesemployees;;
OPENOPEN emp_cursoremp_cursor;;
FOR i IN 1..FOR i IN 1..v_count_rowv_count_row LOOPLOOP
FETCHFETCH emp_cursoremp_cursor INTOINTO v_empnov_empno,, v_enamev_ename;;
DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_empnoDBMS_OUTPUT.PUT_LINE(TO_CHAR(v_empno)||)||’’ ‘‘||v_ename||v_ename););
END LOOP;END LOOP;
ENDEND;;
Variables tipo cursorVariables tipo cursor
Atributo
Antes de
abrir
Al
abrir
Durante la
recuperación
Al finalizar
la
recuperación
Después de
cerrar
%NOTFOUND ORA-1001 NULL FALSE TRUE ORA-1001
%FOUND ORA-1001 NULL TRUE FALSE ORA-1001
%ISOPEN FALSE TRUE TRUE TRUE FALSE
%ROWCOUNT ORA-1001 0
Número de
registros
que ha
recuperado
hasta el
momento
Número de
total de
registros ORA-1001
CursoresCursores paramparaméétricostricos
DECLAREDECLARE
CURSORCURSOR cpaisescpaises ((p_continentep_continente VARCHARVARCHAR))
ISIS
SELECTSELECT CO_PAISCO_PAIS, DESCRIPCION, CONTINENTE, DESCRIPCION, CONTINENTE
FROMFROM PAISESPAISES
WHEREWHERE CONTINENTE =CONTINENTE = p_continentep_continente;;
registroregistro cpaises%cpaises%ROWTYPEROWTYPE;;
BEGINBEGIN
OPENOPEN cpaisescpaises('EUROPA');('EUROPA');
FETCHFETCH cpaisescpaises INTOINTO registro;registro;
CLOSECLOSE cpaisescpaises;;
ENDEND;;
TriggersTriggers
UnUn trigger es un procedimiento PL/SQL asociado con unaes un procedimiento PL/SQL asociado con una
tabla de la base de datos de Oracle y que se "dispara"tabla de la base de datos de Oracle y que se "dispara"
cada vez que se ejecuta sobre dicha tabla una sentenciacada vez que se ejecuta sobre dicha tabla una sentencia
INSERTINSERT, una sentencia, una sentencia UPDATEUPDATE o una sentenciao una sentencia DELETEDELETE
Algunas aplicaciones:Algunas aplicaciones:
ParaPara grabargrabar logslogs
Para asegurar que se mantienePara asegurar que se mantiene la coherencia del esquemala coherencia del esquema,,
asociando a operaciones en una tabla operaciones en otrasasociando a operaciones en una tabla operaciones en otras
tablas cuando los mecanismos de Oracle resultan insuficientestablas cuando los mecanismos de Oracle resultan insuficientes
TriggersTriggers: caracter: caracteríísticassticas
Pueden disparar otrosPueden disparar otros triggerstriggers
Pueden llamar a otros procedimientosPueden llamar a otros procedimientos
No tienen parNo tienen paráámetrosmetros
No pueden ser llamados desde otrosNo pueden ser llamados desde otros
procedimientosprocedimientos
TriggersTriggers: ventajas: ventajas
Seguridad: permiten restringir al acceso de las tablas a: permiten restringir al acceso de las tablas a
nivel de detallenivel de detalle
EficienciaEficiencia: El plan de ejecuci: El plan de ejecucióón de unn de un triggertrigger ssóólo selo se
analiza una vez, utilizanaliza una vez, utilizáándose directamente a partir dendose directamente a partir de
entoncesentonces
Desventajas: no debe abusarse de ellos y su existencia: no debe abusarse de ellos y su existencia
debe estar bien documentada; de otra forma ladebe estar bien documentada; de otra forma la
utilizaciutilizacióón de la BBDD se vuelve difn de la BBDD se vuelve difíícil de entender.cil de entender.
7. 7
TriggersTriggers: Tipos: Tipos
Hay 2 tipos deHay 2 tipos de TriggersTriggers: los asociados a una: los asociados a una
instrucciinstruccióón y los asociados a una filan y los asociados a una fila
AA nivel de instrucción: se ejecuta despu: se ejecuta despuéés des de
que una instruccique una instruccióónn insertinsert // deletedelete // updateupdate sese
ha llevado a cabo conha llevado a cabo con ééxitoxito
Asociado a una fila: Se puede ejecutar antes o: Se puede ejecutar antes o
despudespuéés de la instruccis de la instruccióón y se llama por cada filan y se llama por cada fila
afectadaafectada
TriggersTriggers: sintaxis: sintaxis
CREATECREATE OR REPLACE TRIGGER nombreOR REPLACE TRIGGER nombre--deldel--triggertrigger
[FOLLOWS nombre[FOLLOWS nombre--otrootro--triggertrigger]]
[BEFORE/AFTER][BEFORE/AFTER]
[INSERT/DELETE/UPDATE/[INSERT/DELETE/UPDATE/UPDATEUPDATE OF listaOF lista--
columnas]columnas]
ONON nombrenombre--tablatabla
[REFERENCING [OLD AS nombre[REFERENCING [OLD AS nombre--antiguo][NEW ASantiguo][NEW AS
nombrenombre--nuevo]]nuevo]]
[FOR EACH ROW/FOR EACH STATEMENT][FOR EACH ROW/FOR EACH STATEMENT]
[WHEN {condiciones}][WHEN {condiciones}]
{Bloque est{Bloque estáándar de sentencias PL/SQL... BEGIN,ndar de sentencias PL/SQL... BEGIN,
EXCEPTION}EXCEPTION}
TriggersTriggers: sintaxis: sintaxis
FollowsFollows: a partir de la versi: a partir de la versióón 11g; permite establecer unn 11g; permite establecer un
orden entre variosorden entre varios triggerstriggers asociados a la mismaasociados a la misma
operacioperacióón: eln: el triggertrigger declarado seguirdeclarado seguiráá al que se indicaal que se indica
WhenWhen: condici: condicióón para que se ejecute eln para que se ejecute el triggertrigger enen
disparadores a nivel de filadisparadores a nivel de fila
Diferencia entreDiferencia entre UpdateUpdate yy UpdateUpdate OfOf ListaColumnasListaColumnas: el: el
primero al hacer unprimero al hacer un updateupdate, el segundo s, el segundo sóólo si selo si se
modifican las columnas indicadasmodifican las columnas indicadas
TriggersTriggers: ejemplo: ejemplo
CREATE TRIGGERCREATE TRIGGER CompruebaEdadCompruebaEdad
BeforeBefore INSERT OR UPDATE OF edad ON PersonaINSERT OR UPDATE OF edad ON Persona
FOR EACH ROWFOR EACH ROW
BEGINBEGIN
IF (:IF (:new.edadnew.edad < 0) THEN< 0) THEN
RAISE_APPLICATION_ERRORRAISE_APPLICATION_ERROR((--20000,20000,
‘‘edad no vedad no váálida');lida');
END IF;END IF;
END;END;
No se llega a insertar ningNo se llega a insertar ningúún daton dato
TriggersTriggers: orden de ejecuci: orden de ejecucióónn
Este es el orden de ejecuciEste es el orden de ejecucióón de una instruccin de una instruccióón DML:n DML:
1. Ejecutar, si existe, el disparador de tipo BEFORE1. Ejecutar, si existe, el disparador de tipo BEFORE
(disparador previo) con nivel de instrucci(disparador previo) con nivel de instruccióónn
2. Para cada fila a la que afecte la orden:2. Para cada fila a la que afecte la orden:
a. Ejecutar, si existe, el disparador de tipo BEFORE cona. Ejecutar, si existe, el disparador de tipo BEFORE con
nivel de fila.nivel de fila.
b. Ejecutar la propia orden.b. Ejecutar la propia orden.
c. Ejecutar, si existe, el disparador de tipo AFTERc. Ejecutar, si existe, el disparador de tipo AFTER
(disparador posterior) con nivel de fila.(disparador posterior) con nivel de fila.
3. Ejecutar, si existe, el disparador de tipo AFTER con3. Ejecutar, si existe, el disparador de tipo AFTER con
nivel de instruccinivel de instruccióónn
TriggersTriggers:: oldold yy newnew
Pseudo registros con los valores antiguos yPseudo registros con los valores antiguos y
nuevos de la filanuevos de la fila
No definido; aNo definido; a nullnullValores de la filaValores de la fila
antes de borrarseantes de borrarse
DeleteDelete
Nuevos valores de laNuevos valores de la
filafila
Valores de fila antesValores de fila antes
de la actualizacide la actualizacióónn
UpdateUpdate
Valores a insertarValores a insertarNo definido; aNo definido; a nullnullInsertInsert
::newnew::oldoldOperaciOperacióónn
8. 8
TriggersTriggers: tabla mutando: tabla mutando……
Es habitual ver el siguiente error durante laEs habitual ver el siguiente error durante la
ejecuciejecucióón de unn de un triggertrigger::
ORA-04091: table <tablename> is mutating,
trigger/function may not see it
Ocurre cuando un disparado a nivel de filasOcurre cuando un disparado a nivel de filas
accede a la misma tabla en la que se basa y laaccede a la misma tabla en la que se basa y la
operacioperacióón no es unn no es un insertinsert de una sola filade una sola fila
Tabla mutando: EjemploTabla mutando: Ejemplo
createcreate tabletable t (col1t (col1 numbernumber, col2, col2 varcharvarchar(30));(30));
create or replace trigger t_trg before insert or update or delete on t
for each row
declare
i integer;
begin
select count(*) into i from t;
--más cosas …
end;
insertinsert intointo tt valuesvalues (1,(1, ‘‘prueba');prueba');
11 rowrow createdcreated..
updateupdate t set col1 = 2;t set col1 = 2;
update t * ERROR at line 1: ORA-04091: table SYSTEM.T is mutating, trigger/function
may not see it ORA-06512: at "SYSTEM.T_TRG", line 4 ORA-04088: error during
execution of trigger 'SYSTEM.T_TRG'
TriggersTriggers: distinguir la operaci: distinguir la operacióónn
En lugar de variosEn lugar de varios triggerstriggers para varias operaciones espara varias operaciones es
buena idea crear uno y distinguir casos:buena idea crear uno y distinguir casos:
CREATE OR REPLACE TRIGGERCREATE OR REPLACE TRIGGER nombre_triggernombre_trigger BEFOREBEFORE
INSERT OR UPDATE OR DELETE ONINSERT OR UPDATE OR DELETE ON nombre_tablanombre_tabla
FOR EACH ROWFOR EACH ROW
BEGINBEGIN
IF INSERTING THEN...IF INSERTING THEN... ----dodo whateverwhatever END IF;END IF;
IF UPDATING THEN ...IF UPDATING THEN ... ----dodo somethingsomething elseelse END IF;END IF;
IF DELETING THEN ...IF DELETING THEN ... ----dodo somethingsomething elseelse END IF;END IF;
END;END;
TriggersTriggers: gesti: gestióónn
TriggersTriggers existentes:existentes:
select trigger_name from user_triggers;
Detalles de unDetalles de un triggertrigger::
select trigger_type, triggering_event, table_name, referencing_names,
trigger_body from user_triggers where trigger_name =
'<trigger_name>';
Borrar un trigger: drop trigger '<trigger_name>’;
En lugar de borrarlo un trigger puede desactivarse:
alter trigger <trigger_name> {disable|enable};
TriggersTriggers: tambi: tambiéén para DDLn para DDL
Ejemplo:Ejemplo:
CREATE OR REPLACE TRIGGERCREATE OR REPLACE TRIGGER drop_triggerdrop_trigger
BEFORE DROP ONBEFORE DROP ON bertoldo.SCHEMAbertoldo.SCHEMA BEGINBEGIN
RAISE_APPLICATION_ERRORRAISE_APPLICATION_ERROR (( numnum =>=> --20000,20000,
msgmsg =>=> ‘‘No se puede hacerNo se puede hacer dropdrop'); END;'); END;
No permite borrar ninguna fila aNo permite borrar ninguna fila a bertoldobertoldo
TriggersTriggers: tambi: tambiéén para el sistema (I)n para el sistema (I)
Ejemplo: queremos llevar unEjemplo: queremos llevar un loglog de los usuarios que sede los usuarios que se
han conectado en esta tabla:han conectado en esta tabla:
CREATE TABLECREATE TABLE session_infosession_info ((
usernameusername VARCHAR2(30),VARCHAR2(30),
logon_datelogon_date DATE,DATE,
session_idsession_id VARCHAR2(30),VARCHAR2(30),
ip_addrip_addr VARCHAR2(30),VARCHAR2(30),
hostnamehostname VARCHAR2(30),VARCHAR2(30),
auth_typeauth_type VARCHAR2(30));VARCHAR2(30));
9. 9
TriggersTriggers: tambi: tambiéén para el sistema (II)n para el sistema (II)
CREATE OR REPLACE TRIGGERCREATE OR REPLACE TRIGGER trg_session_infotrg_session_info
BEFORE LOGOFF ON DATABASEBEFORE LOGOFF ON DATABASE
DECLAREDECLARE
session_idsession_id VARCHAR2(30);VARCHAR2(30);
ip_addrip_addr VARCHAR2(30);VARCHAR2(30);
hostnamehostname VARCHAR2(30);VARCHAR2(30);
auth_typeauth_type VARCHAR2(30);VARCHAR2(30);
BEGINBEGIN
SELECTSELECT sys_contextsys_context ('USERENV', 'SESSIONID') INTO('USERENV', 'SESSIONID') INTO session_idsession_id FROM dual;FROM dual;
SELECTSELECT sys_contextsys_context ('USERENV', '('USERENV', 'IP_ADDRESSIP_ADDRESS') INTO') INTO ip_addrip_addr FROM dual;FROM dual;
SELECTSELECT sys_contextsys_context ('USERENV', 'HOST') INTO('USERENV', 'HOST') INTO hostnamehostname FROM dual;FROM dual;
SELECTSELECT sys_contextsys_context ('USERENV', '('USERENV', 'AUTHENTICATION_TYPEAUTHENTICATION_TYPE')')
INTOINTO auth_typeauth_type FROM dual;FROM dual;
INSERT INTOINSERT INTO session_infosession_info VALUES (VALUES (useruser,, sysdatesysdate,, session_idsession_id,, ip_addrip_addr,,
hostnamehostname,, auth_typeauth_type););
END; /END; /
FuncionesFunciones úútiles en SQL de Oracletiles en SQL de Oracle
(I)(I)
Función Descripción
String Functions
upper(s), lower(s) convert string s to upper/lower-case
initcap(s) capitalise first letter of each word
ltrim(s), rtrim(s) remove blank char. from left/right
substr(s,start,len) sub-string of length len from position start
length(s) length of s
FuncionesFunciones úútiles en SQL de Oracletiles en SQL de Oracle
(II)(II)
Date Functions
sysdate current date (on Oracle server)
to_date(date, format) date formatting
Number Functions
round(x) round real number x to integer
mod(n,p) n modulus p
abs(x) absolute value of x
dbms_random.random() generate a random integer
FuncionesFunciones úútiles en SQL de Oracletiles en SQL de Oracle
(III)(III)
Type Conversion Functions
to_char() convert to string
to_date() convert to date
to_number() convert to number
Miscellaneous Functions
user current Oracle user