Puedes hacer lo siguiente:
Trata de crear la tabla temporal y si la tabla existe atrapar el mensaje de error
Y con eso ya puedes determinar que hacer.
Deberás usar las instrucciones
y la función de sqlerror
whenever error stop
whenever true.
Tambien puedes hacer un drop a la tabla antes de la ejecucion del programa
whenever error stop
drop table nombre_tabla_temporal
whenever error stop
con esto te quitas el problema de ejecutar una solavez y salir del programa .
debes saber donde ubicar estas instrucciones para que el programa se pueda ejecutar todas las veces que el usuario decida.
Te recomiendo que cuando uses tablas tamporales solamente lo hagas para extraccion de registros o datos no muy grandes ejemplo menos de 50000 registros por que si la cantidad de registros es mucho mayor los tiempo de respuesta de usar una tabla temporal son muy altos.
Ademas te recomiendo usar la instruccion with no log, que te permite mejorar sustancialmente mucho el rendimiento del uso de las tablas temporales, por que esto permite que no se maneje transaccionalidad cuando usas esta instruccion.
Esto es super genial para los tiempos de respúesta.
Ejemplo:
create temp table nombre_tabla_temporal
( campo_1 char(10),
campo_2 date ,
campo_3 integer,
campo_4 float,
...
...
...
campo_n tipo_de_dato
) with no log;
puedes usar indices para mejorar los tiempos de respúesta y la instruccion with no log.
Espero haya podido ayudarte.