Buen dia gente del foro:
Estoy intentando realizar un Stored Procedure que inserte o modifique registros en una tabla dependiendo de su PK.
Buscando encontre en la web encontre un ejemplo que se ve como sigue:
Código SQL
[-]BEGIN insert into t1 (id, c1, c2) values (:id, :c1, :c2) WHEN SQLCODE -803 DO update t1 set c1 = :c1, c2 = :c2 WHERE id = :id; END
El ejemplo funciona perfectamente pero yo lo reemplazo por algo asi
Código SQL
[-]BEGIN insert into t1 (t1.id, t1.c1, t1.c2) select t2.id,t2.c1,t3.c1 from t2 inner join t3 on .... WHEN SQLCODE -803 DO update t1 set c1 = (Select c1 from t3 where t1.id = t3.id ); END
El stored procedure se genera y funciona , el problema que tengo es que la parte de INSERT solo la realiza si la tabla T1 esta vacia.
Alguna sugerencia o alternativa espero
Utilizo firebird 2.0 y IBOConsole.
saludos