DISPARADORE S
       Y
PROCE DIM NT
         IE OS
DISPARADORES
   También conocidos como TRIGGERS , es un bloque
    de código almacenado en base de datos que se activa
    cuando se pulsa una determinada tecla u ocurre un
    determinado evento automáticamente, un disparador
    esta asociado a una tabla como puede ser:
         - Realizar una consulta.
         - Validar un dato.
         - Hacer una operación DML inserta, modificar
           o eliminar registros de una base de datos.
DISPARADORES
   En definitiva los DISPARADORES
    (TIGGERS) son eventos a nivel de tabla que se
    ejecutan automáticamente cuando se realizan
    ciertas operaciones sobre la tabla.
   Existen varios tipos de disparadores,
    dependiendo del tipo de transacción de disparo
    y el nivel en el que se ejecuta el disparador
    (trigger):
DISPARADORES
   1.- Disparadores de nivel de fila: se ejecutan una vez
    para cada fila afectada por una instrucción DML. Los
    disparadores de nivel de fila se crean utilizando la
    cláusula for each row en el comando create trigger.
   2.- Disparadores de nivel de instrucción: se ejecutan
    una vez para cada instrucción DML. Por ejemplo, si
    una única instrucción INSERT inserta 500 filas en una
    tabla un disparador de nivel de instrucción para dicha
    tabla sólo se ejecutará una vez. Los disparadores de
    nivel de instrucción son el tipo predeterminado que se
    crea con el comando create trigger.
DISPARADORES
   3.- Disparadores Before y After: puesto que los
    disparadores son ejecutados por sucesos, puede
    establecerse que se produzcan inmediatamente antes
    (before) o después (after) de dichos sucesos.
   4.- Disparadores Instead Of: puede utilizar
    INSTEAD OF para indicar a Oracle lo que tiene que
    hacer en lugar de realizar las acciones que invoca el
    disparador. Por ejemplo, podría usar un disparador
    INSTEAD OF en una vista para gestionar las
    inserciones en una tabla o para actualizar múltiples
    tablas que son parte de una vista.
DISPARADORES
   5.- Disparadores de esquema: puede crear disparadores sobre
    operaciones en el nivel de esquema tales como create table, alter
    table, drop table, audit, rename, truncate y revoke. Puede incluso
    crear disparadores para impedir que los usuarios eliminen sus
    propias tablas. En su mayor parte, los disparadores de nivel de
    esquema proporcionan dos capacidades: impedir operaciones
    DDL y proporcionar una seguridad adicional que controle las
    operaciones DDL cuando éstas se producen.

   6.- Disparadores en nivel de base de datos: puede crear
    disparadores que se activen al producirse sucesos de la base de
    datos, incluyendo errores, inicios de sesión, conexiones y
    desconexiones. Puede utilizar este tipo de disparador para
    automatizar el mantenimiento de la base de datos o las acciones
    de auditoría.
Estructura de Disparadores
  Una definición del disparador consiste en los
  siguiente componentes:
1.- Nombre del trigger.
(create [or replace] trigger <nombre del trigger>)

2.- Punto de tiempo del trigger        (before | after)

3.- Disparando eventos
       (insert or update [of <columnas>]
       or delete <tabla>)

4.- Tipo de disparador (opcional) (for each row)

5.- Restricción del disparador (Solo para
   for each row disparador)
(when <Condición>)

6.- Cuerpo del disparador
PROCEDIMIENTOS
             ALMACENADOS
   Un procedimiento es un conjunto de sentencias de SQL y que
    se guarda en la base de datos
   Con los procedimientos se amplia la velocidad de ejecución de
    las consultas sin reducir la eficiencia en la respuesta del
    servidor de base de datos. Esto porque el procedimiento es
    compilado en memoria virtual del cliente
   En los procedimientos se pueden crear tablas temporales que
    solamente existirán durante la ejecución del mismo
   Los valores resultantes de la ejecución del procedimiento serán
    obtenidos de la última consulta especificada, siempre y cuando
    no se envíen a una tabla temporal
   Se define una tabla temporal al anteponer el símbolo “#” a su
    nombre
Crear un Procedimiento
   Crea un procedimiento almacenado, que es una colección
    guardada de instrucciones Transact-SQL que puede tomar y
    devolver los parámetros proporcionados por el usuario.
   Los procedimientos se pueden crear para uso permanente o
    para uso temporal en una sesión (procedimiento local
    temporal) o para su uso temporal en todas las sesiones
    (procedimiento temporal global).
    Sintaxis
   CREATE PROCEDURE procedure_name [ ; number ]
        [ { @parameter data_type }
          ] go
Argumentos
     procedure_name
   Es el nombre del nuevo procedimiento almacenado. Los
    nombres de procedimiento deben seguir las reglas de los
    identificadores y deben ser únicos en la base de datos y para su
    propietario.
   Los procedimientos temporales locales o globales se pueden
    crear precediendo el procedure_name con un signo numérico simple
    (#procedure_name) para los procedimientos temporales locales y un
    signo numérico doble (##procedure_name) para los
    procedimientos temporales globales. El nombre completo,
    incluidos los signos # o ##, no puede exceder de 128 caracteres.
    Especificar el nombre del propietario del procedimiento es
    opcional.
;number
   Es un entero opcional utilizado para agrupar
    procedimientos del mismo nombre de forma que se
    puedan quitar juntos con una única instrucción DROP
    PROCEDURE. Por ejemplo, los procedimientos
    utilizados con una aplicación llamada "orders" se pueden
    llamar orderproc;1, orderproc;2, etc. La instrucción
    DROP PROCEDURE orderproc quita el grupo
    completo. Si el nombre contiene identificadores
    delimitados, el número no debe incluirse como parte del
    identificador; utilice el delimitador adecuado sólo
    alrededor de procedure_name.
@parameter
   Es un parámetro del procedimiento. En una instrucción
    CREATE PROCEDURE se pueden declarar uno o más
    parámetros. El usuario debe proporcionar el valor de cada
    parámetro declarado cuando se ejecuta el procedimiento, a
    menos que se haya definido un valor predeterminado para el
    parámetro. Un procedimiento almacenado puede tener un
    máximo de 2.100 parámetros.
   Especifique un nombre de parámetro con un signo (@) como el
    primer carácter. Los nombres de los parámetros deben cumplir
    las reglas de los identificadores. Los parámetros son locales para
    el procedimiento; los mismos nombres de parámetro se pueden
    utilizar en otros procedimientos. De forma predeterminada, los
    parámetros sólo pueden ocupar el lugar de constantes; no se
    pueden utilizar en lugar de nombres de tablas, nombres de
    columnas o nombres de otros objetos de base de datos.
data_type
 Es el tipo de datos del parámetro. Todos los
  tipos de datos, incluidos text, ntext e image, se
  pueden utilizar como parámetros de un
  procedimiento almacenado.
Eliminar y Ejecutar un
              Procedimiento
   Sintaxis para eliminar
    drop procedure nombre del procedimiento
   Sintaxis para ejecutar
    nombre del procedimiento parámetro 1, parámetro 2,
    parámetro n
   Ejecutar el procedimiento nombre del
    procedimiento

Disparadores 1213820550525607-9

  • 1.
    DISPARADORE S Y PROCE DIM NT IE OS
  • 2.
    DISPARADORES  También conocidos como TRIGGERS , es un bloque de código almacenado en base de datos que se activa cuando se pulsa una determinada tecla u ocurre un determinado evento automáticamente, un disparador esta asociado a una tabla como puede ser: - Realizar una consulta. - Validar un dato. - Hacer una operación DML inserta, modificar o eliminar registros de una base de datos.
  • 3.
    DISPARADORES  En definitiva los DISPARADORES (TIGGERS) son eventos a nivel de tabla que se ejecutan automáticamente cuando se realizan ciertas operaciones sobre la tabla.  Existen varios tipos de disparadores, dependiendo del tipo de transacción de disparo y el nivel en el que se ejecuta el disparador (trigger):
  • 4.
    DISPARADORES  1.- Disparadores de nivel de fila: se ejecutan una vez para cada fila afectada por una instrucción DML. Los disparadores de nivel de fila se crean utilizando la cláusula for each row en el comando create trigger.  2.- Disparadores de nivel de instrucción: se ejecutan una vez para cada instrucción DML. Por ejemplo, si una única instrucción INSERT inserta 500 filas en una tabla un disparador de nivel de instrucción para dicha tabla sólo se ejecutará una vez. Los disparadores de nivel de instrucción son el tipo predeterminado que se crea con el comando create trigger.
  • 5.
    DISPARADORES  3.- Disparadores Before y After: puesto que los disparadores son ejecutados por sucesos, puede establecerse que se produzcan inmediatamente antes (before) o después (after) de dichos sucesos.  4.- Disparadores Instead Of: puede utilizar INSTEAD OF para indicar a Oracle lo que tiene que hacer en lugar de realizar las acciones que invoca el disparador. Por ejemplo, podría usar un disparador INSTEAD OF en una vista para gestionar las inserciones en una tabla o para actualizar múltiples tablas que son parte de una vista.
  • 6.
    DISPARADORES  5.- Disparadores de esquema: puede crear disparadores sobre operaciones en el nivel de esquema tales como create table, alter table, drop table, audit, rename, truncate y revoke. Puede incluso crear disparadores para impedir que los usuarios eliminen sus propias tablas. En su mayor parte, los disparadores de nivel de esquema proporcionan dos capacidades: impedir operaciones DDL y proporcionar una seguridad adicional que controle las operaciones DDL cuando éstas se producen.  6.- Disparadores en nivel de base de datos: puede crear disparadores que se activen al producirse sucesos de la base de datos, incluyendo errores, inicios de sesión, conexiones y desconexiones. Puede utilizar este tipo de disparador para automatizar el mantenimiento de la base de datos o las acciones de auditoría.
  • 7.
    Estructura de Disparadores Una definición del disparador consiste en los siguiente componentes: 1.- Nombre del trigger. (create [or replace] trigger <nombre del trigger>) 2.- Punto de tiempo del trigger (before | after) 3.- Disparando eventos (insert or update [of <columnas>] or delete <tabla>) 4.- Tipo de disparador (opcional) (for each row) 5.- Restricción del disparador (Solo para for each row disparador) (when <Condición>) 6.- Cuerpo del disparador
  • 8.
    PROCEDIMIENTOS ALMACENADOS  Un procedimiento es un conjunto de sentencias de SQL y que se guarda en la base de datos  Con los procedimientos se amplia la velocidad de ejecución de las consultas sin reducir la eficiencia en la respuesta del servidor de base de datos. Esto porque el procedimiento es compilado en memoria virtual del cliente  En los procedimientos se pueden crear tablas temporales que solamente existirán durante la ejecución del mismo  Los valores resultantes de la ejecución del procedimiento serán obtenidos de la última consulta especificada, siempre y cuando no se envíen a una tabla temporal  Se define una tabla temporal al anteponer el símbolo “#” a su nombre
  • 9.
    Crear un Procedimiento  Crea un procedimiento almacenado, que es una colección guardada de instrucciones Transact-SQL que puede tomar y devolver los parámetros proporcionados por el usuario.  Los procedimientos se pueden crear para uso permanente o para uso temporal en una sesión (procedimiento local temporal) o para su uso temporal en todas las sesiones (procedimiento temporal global). Sintaxis  CREATE PROCEDURE procedure_name [ ; number ]     [ { @parameter data_type }       ] go
  • 10.
    Argumentos procedure_name  Es el nombre del nuevo procedimiento almacenado. Los nombres de procedimiento deben seguir las reglas de los identificadores y deben ser únicos en la base de datos y para su propietario.  Los procedimientos temporales locales o globales se pueden crear precediendo el procedure_name con un signo numérico simple (#procedure_name) para los procedimientos temporales locales y un signo numérico doble (##procedure_name) para los procedimientos temporales globales. El nombre completo, incluidos los signos # o ##, no puede exceder de 128 caracteres. Especificar el nombre del propietario del procedimiento es opcional.
  • 11.
    ;number  Es un entero opcional utilizado para agrupar procedimientos del mismo nombre de forma que se puedan quitar juntos con una única instrucción DROP PROCEDURE. Por ejemplo, los procedimientos utilizados con una aplicación llamada "orders" se pueden llamar orderproc;1, orderproc;2, etc. La instrucción DROP PROCEDURE orderproc quita el grupo completo. Si el nombre contiene identificadores delimitados, el número no debe incluirse como parte del identificador; utilice el delimitador adecuado sólo alrededor de procedure_name.
  • 12.
    @parameter  Es un parámetro del procedimiento. En una instrucción CREATE PROCEDURE se pueden declarar uno o más parámetros. El usuario debe proporcionar el valor de cada parámetro declarado cuando se ejecuta el procedimiento, a menos que se haya definido un valor predeterminado para el parámetro. Un procedimiento almacenado puede tener un máximo de 2.100 parámetros.  Especifique un nombre de parámetro con un signo (@) como el primer carácter. Los nombres de los parámetros deben cumplir las reglas de los identificadores. Los parámetros son locales para el procedimiento; los mismos nombres de parámetro se pueden utilizar en otros procedimientos. De forma predeterminada, los parámetros sólo pueden ocupar el lugar de constantes; no se pueden utilizar en lugar de nombres de tablas, nombres de columnas o nombres de otros objetos de base de datos.
  • 13.
    data_type  Es eltipo de datos del parámetro. Todos los tipos de datos, incluidos text, ntext e image, se pueden utilizar como parámetros de un procedimiento almacenado.
  • 14.
    Eliminar y Ejecutarun Procedimiento  Sintaxis para eliminar drop procedure nombre del procedimiento  Sintaxis para ejecutar nombre del procedimiento parámetro 1, parámetro 2, parámetro n  Ejecutar el procedimiento nombre del procedimiento