Comencemos por la causa del mismo., curre cuando intentamos utilizar una secuencia donde no está permitido hacerlo.
Para ser un poco más explícitos, NO podemos utilizar secuencias en los siguientes casos:
- Dentro de una sentencias SELECT:
* En la claúsula WHERE
* En una claúsula DISTINCT
* En un Sub-Query
- En una VISTA o SNAPSHOT
- En una condición de DEFAULT o CHECK de una tabla
(Cabe aclarar que existen más excepciones pero que estas son las mas representativas)
Algunas posibles soluciones para nuestro problema serian:
- Si necesitamos utilizar la secuencia para ser insertada tras la creación de las filas de una tabla lo que podemos hacer es utilizar un trigger "before insert" para que realice el trabajo.
- Si quisiéramos una secuencia en una vista podríamos crear la mismas sin la secuencia y luego al momento de llamarla utilizarla (ej: select a, b, "secuencia" from "nuestra vista").
- Si quisiéramos usar la secuencia en un query con una DISTINCT lo que podemos hacer es utilizar este en un Sub-Query y la secuencia en el query principal
Gondalf.
No hay comentarios:
Publicar un comentario