当表不存在时,Oracle Package出错

时间:2014-03-12 13:49:39

标签: oracle plsql packages

我现在正在使用Oracle 9g并编写一个我相当新的软件包。我在程序包中有一些程序将数据从外部表加载到表中。它首先删除这些表,使用外部表中的一些转换重新创建它,然后为它创建索引。我不能仅仅引用外部表,因为我需要索引和对数据进行一些更改。

然后我在包中引入了一些其他程序来引用这些临时表来完成它们的工作。这一切都运行正常,除非在按顺序运行过程时,创建表的过程在删除它之后但在创建之前会中断。

否如果我对包体进行了更改,则会编译错误,因为引用该表的后续过程会告诉我该表不存在。由于此验证错误,我现在也无法运行任何程序。

任何人都可以告知任何最佳做法或如何最好地执行这些操作而不会出现这些验证错误?或者有办法以某种方式关闭此验证吗?

非常感谢, 丹

1 个答案:

答案 0 :(得分:1)

制作两个包裹。一个使用数据操作代码删除并创建表,另一个创建表。删除表后第二个包将失效,但第一个包仍然可用。