2

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

  create local temporary table #sometable(table definition);

但是,此表不支持 delete 语句。即调用:

 delete from #sometable; 

会抛出错误:

 feature not supported

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

4

2 回答 2

1

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

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

. . .

3) #GLOBAL_TEMPORARY

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

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

truncate table #sometable;
于 2014-02-21T09:51:39.940 回答
1

您使用的是什么 HANA 修订版?在最新的 Revision 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
于 2013-10-25T00:58:19.583 回答