2017-12-19 8 views
0

Ich brauche Hilfe beim Erstellen von temporären Tabellen in Teradata. Unten erstelle ich eine globale temporäre Tabelle TOPTABLE3. Dann füge ich 10 Zeilen in die Tabelle ein. Wenn ich jedoch die Tabelle abfrage, bekomme ich nur 0 Zeilen zurück, die zeigen, dass die Datensätze nicht in die temporäre Tabelle eingefügt wurden. Danke im Voraus.Teradata temporäre Tabelle

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

- CREATE TABLE abgeschlossen. 0 Zeilen verarbeitet. Verstrichene Zeit = 00:00:01

INSERT INTO TOPTABLE3 
SEL   top 10 SD_CARD_ISSUE 
FROM ICDW_GBL_V.LDA_TASER_TXNS_SHRT_WNDW_DAILY 
where  LDA_TASER_TXNS_SHRT_WNDW_DAILY .SD_CR_DB_IND = 'D' 
and LDA_TASER_TXNS_SHRT_WNDW_DAILY.PRD_END_DT = CAST('01/01/2017' AS DATE FORMAT 'MM/DD/YYYY')  

- INSERT abgeschlossen. 10 Zeilen verarbeitet. Elapsed Time = 00:00:06 Die an das Antwortfenster gerichtete Ausgabe

SELECT * 
FROM  My_SID.TOPTABLE3 

- SELECT abgeschlossen. 0 Zeilen zurückgegeben. Verstrichene Zeit = 00:00:02

+0

Meine erste Vermutung ist, dass 'TOPTABLE3' <>' My_SID.TOPTABLE3'. –

Antwort

2

Wenn Sie eine SHOW TABLE tun, werden Sie die Option ON COMMIT DELETE ROWS, die auf Standard-SQL basiert, aber ziemlich nutzlos in Teradata (wenn Sie zu ANSI-Sitzungen wechseln).

Sie führen eine Teradata-Sitzung, die standardmäßig eine Transaktion pro Anfrage und die Wir senden einen END TRANSACTION Schritt in Erklären schneidet die Tabelle ab.

Verwenden Sie stattdessen ON COMMIT PRESERVE ROWS.

Btw, statt CAST('01/01/2017' AS DATE FORMAT 'MM/DD/YYYY') Sie besser einen Datumsliteral benutzen, die immer YYYY-MM-DD ist:

DATE '2017-01-01' 
+0

Das hat funktioniert! Danke @dnoeth. Hier ist der Code, den ich verwendet habe: 'GLOBAL TEMPORARY Tabelle erstellen My_SID.temp3 ( CLS_ID INTEGER) ON COMMIT PRESERVE ROWS' –

Verwandte Themen