哈纳的临时表

时间:2017-11-09 22:13:19

标签: database hana hana-sql-script

可以在hana中编写脚本来创建基于

的临时表

在现有表上(无需定义硬编码的列和列类型):

 create local temporary table #mytemp (id integer, name varchar(20));

创建具有相同列定义的临时表并包含 相同的数据?如果是这样..我很高兴得到一些例子

我在互联网上搜索了2天,我找不到任何有用的东西

感谢

6 个答案:

答案 0 :(得分:0)

SQLScript不支持基于动态结构定义创建本地临时表。

问题是:你想用它做什么? 而不是当地的温度。在大多数情况下,您可以使用表变量。

答案 1 :(得分:0)

通过查询sys.table_columns视图,您可以获取源表的列表和属性,然后构建动态CREATE脚本,然后执行以创建表。 您可以在Create Table Dynamically on HANA Database

找到示例案例的SQL代码

对于表格列,请阅读

DT

答案 2 :(得分:0)

似乎可以在我使用的hana版本中使用。我不确定如何找出版本。

PROCEDURE "xxx.yyy.zzz::MY_TEST"(

    OUT "OUT_COL" NVARCHAR(200) 
)
   LANGUAGE SQLSCRIPT
   SQL SECURITY INVOKER
   AS
BEGIN
    create LOCAL TEMPORARY TABLE #LOCALTEMPTABLE 
    as
    (
    SELECT distinct 'Cola' as out_col 
        FROM "SYNONYMS1"
    );
    select * from #LOCALTEMPTABLE ;
    DROP TABLE #LOCALTEMPTABLE;
END

答案 3 :(得分:0)

较新的HANA版本(HANA 2 SPS 04补丁5(内部版本4.4.17))支持您的请求:

create local temporary table #tempTableName' like "tableTypeName";

答案 4 :(得分:0)

这应该继承括号中任何查询的数据类型和所有精确值:

CREATE LOCAL COLUMN TEMPORARY TABLE #mytemp AS (
    SELECT 
    "COLUMN1",
    "COLUMN2",
    "COLUMN3"
    FROM MyTable 
    );
 -- Now you can add the rest of your query here as such: 
SELECT * FROM #mytemp 

答案 5 :(得分:0)

我想你可以写:

create column table #MyTempTable as ( select * from MySourceTable);

BR,