2013-01-23 19 views

回答

6

您不能将表从临时表转换为永久表。

您可以创建临时表

CREATE TABLE new_permanent_table 
AS 
SELECT * 
    FROM old_temporary_table 
WHERE 1=0; 

或者你可以使用DBMS_METADATA package得到的DDL临时表和手动编辑DDL来创建新的永久表的结构相匹配的新的永久表。

然后,您可以在新的永久表上创建任何索引,然后删除旧的临时表。一旦旧临时表被删除,您可以重新命名永久表以使用旧临时表的名称(如果您愿意的话)。

+0

感谢您的回复。如果我使用这种替代方法,索引将继续与新表重命名? – willian

+0

@willian - 否。无论哪种情况,您都需要在新创建的表上创建所需的任何索引。如果使用'DBMS_METADATA'包为现有临时表的相关对象生成DDL,那么应为这些索引生成DDL,然后可以为新的永久表修改这些DDL。 –

+0

好的,我会尝试使用这种替代方法。非常感谢你! – willian

相关问题