¿Como hacer un SELECT dentro de un trigger?

Alvaro
11 de Enero del 2005
Hola. Trabajo en SYBASE y tengo problemas con un trigger. Cuando se hace una inserción en una tabla 1, el trigger realiza a su vez un insert en una tabla 2. El problema viene cuando tengo que modificar el trigger para que solo haga la inserción en la tabla 2 en función de unas condiciones.

Para evaluar estas condiciones, me veo obligado a hacer una consulta de tipo:
select 1
from tabla3
where param=valor

Si se obtienen resultados, no se hace inserción en la tabla 2.

El error que me da es:
java.sql.SQLException: JZ0P1: Unexpected result type.

Cualquier idea es bienvenida...

Alvaro
11 de Enero del 2005
Se me olvidaba, he probado también a meter esa consulta dentro de un procedimiento almacenado y llamar a la ejecución de ese procedimiento almacenado desde el trigger, pero en ese caso el error es:
com.sybase.jdbc.SybSQLException: Stored procedure 'dbo.COMPRUEBA_LISTA' may be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode.

Alvaro
11 de Enero del 2005
OK, ya lo he solucionado mediante un cursor. Este es el código:

begin
select @lista = 0
declare csrCONSULTA cursor for
SELECT 1 FROM TABLA_A
WHERE campo_A = variable_A
UNION
SELECT 1 FROM TABLA_B
WHERE campo_B = variable_B

open csrCONSULTA
fetch csrCONSULTA into @lista

close csrCONSULTA
end