Oracle 创建不带drop的表(如果存在)

Oracle 创建不带drop的表(如果存在),oracle,plsql,truncate,Oracle,Plsql,Truncate,我需要PL/SQl方面的一些帮助 所以我的问题是,以下问题: 有一个名为:temp_table的表,我需要创建一个没有drop/truncate选项的temp_表。因为表的数据一直在更改,所以需要更改。 所以我知道这很奇怪,但这对我的日常工作是必要的 脚本的工作方式如下: 脚本将文本导入到表中,并给出该表。它使用dblink连接数据库。它很管用,但我一直都得用滴水。但是我需要(如果可能的话)创建一个现有的表而不删除/截断 有人能帮我吗 非常感谢 很抱歉没有sql代码,但我认为这不是必需的。我认为

我需要PL/SQl方面的一些帮助

所以我的问题是,以下问题:

有一个名为:temp_table的表,我需要创建一个没有drop/truncate选项的temp_表。因为表的数据一直在更改,所以需要更改。 所以我知道这很奇怪,但这对我的日常工作是必要的

脚本的工作方式如下: 脚本将文本导入到表中,并给出该表。它使用dblink连接数据库。它很管用,但我一直都得用滴水。但是我需要(如果可能的话)创建一个现有的表而不删除/截断

有人能帮我吗

非常感谢


很抱歉没有sql代码,但我认为这不是必需的。

我认为您想删除表是因为您想重新加载它,但您也希望表的运行时间尽可能接近常量

我将创建两个临时表。您已经有一个名为:

temp_table
创建另一个名为:

temp_table_new
将新数据加载到temp_table_new中,然后对其进行重命名,如下所示:

RENAME TABLE temp_table TO temp_table_old
 temp_table_new TO temp_table
然后


这将非常快,几乎没有停机时间,并允许您拥有所描述的功能。

我认为您想要的概念是外部表。对于外部表,数据驻留在操作系统文件中,如CSV。这允许我们在不删除表的情况下交换数据集


.

对不起,恐怕你的问题不清楚。如果要创建表,可以使用
createtable
,尽管在运行时在Oracle中创建对象基本上没有意义。您可以查询
dba_124;all_124;user_表
,以确定该表是否存在,并仅在该表不存在时创建它。但这最多只能在安装脚本中才有意义。我很难想象“创建现有表”会做什么。向我们展示您的存储过程。至少在您的问题中添加表结构和数据。数据来自何处?谢谢您的帮助。这就是我要找的。谢谢你的帮助,经过一个多小时的搜索,我发现外部表可以解决我的问题,但是你写的非常有用,非常感谢。
drop table temp_table_old