Teradata临时表

时间:2017-12-19 14:03:03

标签: sql teradata temp-tables

我需要帮助在Teradata中创建临时表。下面我正在创建一个全局临时表TOPTABLE3。然后我在表中插入10行。但是,当我查询表时,我只返回0行,这表明记录没有插入临时表。提前致谢。

CREATE global temporary table  TOPTABLE3 (
TABLE1  VARCHAR(20))

- 完成CREATE TABLE。已处理0行。经历时间= 00:00:01

INSERT INTO TOPTABLE3 
SEL          top 10 TABLE1  
FROM    schema.table 
where       table.column1 = 'D'  
and  table.column2 = CAST('01/01/2017' AS DATE FORMAT 'MM/DD/YYYY')    

- INSERT已完成。已处理10行。经过时间= 00:00:06输出指向答案窗口

SELECT  *
FROM     My_ID.TOPTABLE3

- 完成选择。返回0行。经过时间= 00:00:02

1 个答案:

答案 0 :(得分:2)

当您执行SHOW TABLE时,您将发现基于标准SQL的ON COMMIT DELETE ROWS选项,但在Teradata中无用(除非您切换到ANSI会话)。

您运行的Teradata会话默认为每个请求一个事务,并且我们在Explain中发送END TRANSACTION步骤会截断表。

改为使用ON COMMIT PRESERVE ROWS

顺便说一下,您最好使用始终为CAST('01/01/2017' AS DATE FORMAT 'MM/DD/YYYY')的日期文字而不是YYYY-MM-DD

DATE '2017-01-01'