如何删除SAP HANA中临时表的内容?

时间:2013-10-24 09:06:56

标签: sap temp-tables delete-row hana

我以这种方式在SAP HANA中创建临时表:

  create local temporary table #sometable(table definition);

但是,此表不支持delete语句。即呼唤:

 delete from #sometable; 

会抛出错误:

 feature not supported

在存储过程中使用此表时,内容将与新数据连接,而不是替换为新数据。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您使用的是哪种HANA版本?在最新版本68中,它运行得很好:

;drop table #sometable;
create local temporary table #sometable(id integer, str nvarchar(30));

insert into #sometable values (1,'one');
insert into #sometable values (2,'two');
insert into #sometable values (3,'three');

select * from #sometable;  --> returns 3 rows
delete from #sometable;
select * from #sometable;  --> returns 0 rows

答案 1 :(得分:1)

我最近遇到了同样的问题,并在SAP Hana Developer Guide中找到了下一个解释:

  

您可以为@ Catalog.tableType注释定义以下值:

     

。 。

     

3)#GLOBAL_TEMPORARY

     

设置创建的表的范围。全局临时表中的数据是特定于会话的;只允许全局临时表的所有者会话插入/读取/截断数据。会话期间存在全局临时表,并且会话终止时将自动删除全局临时表中的数据。只有当表中没有任何记录时,才能删除全局临时表。

这意味着您可以使用truncate清除临时表:

truncate table #sometable;