我以这种方式在SAP HANA中创建临时表:
create local temporary table #sometable(table definition);
但是,此表不支持delete语句。即呼唤:
delete from #sometable;
会抛出错误:
feature not supported
在存储过程中使用此表时,内容将与新数据连接,而不是替换为新数据。我该如何解决这个问题?
答案 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;