临时表的寿命

rou*_*ble 9 sql database informix temp-tables

我有以下程序:

CREATE PROCEDURE foo ()
    SELECT * FROM fooBar INTO TEMP tempTable;

    -- do something with tempTable here

    DROP TABLE tempTable;
END PROCEDURE;
Run Code Online (Sandbox Code Playgroud)

如果在调用DROP TABLE之前发生异常会发生什么?foo退出后,tempTable还会出现吗?

如果是这样,foo可能会在下次调用时失败,因为tempTable已经存在.应如何处理.

编辑:我正在使用informix 11.5

Jor*_*ore 5

根据文档,会话结束时临时表将被删除。


rou*_*ble 3

我最终使用了 Jonathan 和 RET 解决方案的变体:

CREATE PROCEDURE foo ()
    ON EXCEPTION IN (-206)
    END EXCEPTION WITH RESUME;

    DROP TABLE tempTable;    

    SELECT * FROM fooBar INTO TEMP tempTable;

    -- do something with tempTable here

    DROP TABLE tempTable;
END PROCEDURE;
Run Code Online (Sandbox Code Playgroud)