我需要帮助在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
答案 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'