Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/03/2011, 12:46
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 8 meses
Puntos: 360
Respuesta: Duda de PL/SQL

Me imagino que el trigger se dispara deacuerdo a un evento en una sola tabla.
Y que last_name es una columna de dicha tabla.

Si las veces que se repiten estos condicionales IF(30 o mas) corresponde a la cantidad de columnas que tiene la tabla (Por ejemplo... si comparas last_name, luego telephone, luego address y todas las comparaciones son sobre una misma tabla) podrías probar haciendo uso de la vista USER_TAB_COLUMNS.

Un ejemplo:
Código SQL:
Ver original
  1. SQL> SELECT column_name FROM user_tab_columns WHERE TABLE_NAME='EMPLOYEES';
  2.  
  3. COLUMN_NAME
  4. ------------------------------
  5. EMPLOYEE_ID
  6. FIRST_NAME
  7. LAST_NAME
  8. EMAIL
  9. PHONE_NUMBER
  10. HIRE_DATE
  11. JOB_ID
  12. SALARY
  13. COMMISSION_PCT
  14. MANAGER_ID
  15. DEPARTMENT_ID
  16.  
  17. 11 filas seleccionadas.

Mira en este enlace la forma como utilizan los cursores explicitos para almacenar los resultados de una consulta.
Si en un arreglo puedes guardar el resultado de esa consulta, podría haber un loop que recorriera el cursor y aplicara las operaciones que muestras para cada registro encontrado.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming