Erstellen Teradata flüchtigen Tabelle, und wählen Sie aus der Tabelle mithilfe von isql

Ich bin versucht, senden Sie eine zwei-Anweisung SQL-Datei als batch-job auf dem isql-Dienstprogramm auf einem Linux-Rechner.

Die erste Anweisung definiert ein VOLATILE TABLE und die zweite Anweisung ist eine SELECT - Anweisung für diese Tabelle.

Dem Teradata-server gehostet wird, auf einem remote-Rechner und ich habe Sie erfolgreich ausgeführt SELECT statements, Resultsets zurück zu meinem host.

Unten ist ein Beispiel der SQL-Datei.

CREATE MULTISET VOLATILE TABLE my_temp_table AS (
  SELECT 
    A.ID
    , MIN(A.DTE) AS FIRST_DATE
  FROM (
    SELECT
      X.ID
      , MIN(X.STRT_DTE) AS DTE
    FROM DATABASE0.TABLE_ABC AS X
    WHERE X.STRT_DTE BETWEEN (CURRENT_DATE - 7) AND CURRENT_DATE
    GROUP BY X.ID
    UNION ALL
    SELECT
      Y.ID
      , MIN(Y.STRT_DTE) AS DTE
    FROM DATABASE0.TABLE_XYZ AS Y
    WHERE Y.STRT_DTE BETWEEN (CURRENT_DATE - 7) AND CURRENT_DATE
    GROUP BY Y.ID
  ) AS A
GROUP BY A.ID
)
WITH DATA
ON COMMIT PRESERVE ROWS
;
SELECT TOP 10 * FROM my_temp_table;

Wenn ich den folgenden Befehl ausführen

cat my_two_statement_query.sql | isql -v -b -d',' mydsn myuid mypwd

Erhalte ich die folgende Fehlermeldung

[25000][Teradata][ODBC Teradata Driver][Teradata Database] Data definition not valid unless solitary.

Ich bin in der Lage, führen Sie diese Anweisungen in der Teradata-client-Anwendungen - Studio und SQL-Assistent - ohne Probleme.

UPDATE: ich habe den Inhalt des odbc.ini-Datei

[ODBC]
InstallDir=/path/to/installation/dir
Trace=0
TraceDll=/path/to/dll/odbctrac.so
TraceFile=/path/to/tracefile/odbc_trace.log
TraceAutoStop=0

[ODBC Data Sources]
proddsn=tdata.so

[proddsn]
Driver=/path/to/driver/tdata/so
Description=Teradata database
DBCName=TDPROD
LastUser=
Username=
Password=
Database=DATABASE0
DefaultDatabase=DATABASE0
NoScan=Yes
Scheint, wie beide Aussagen wurden eingereicht, wie eine einzelne Multi-Anweisung Verlangen, was nicht möglich ist, wenn die DDL ist im Lieferumfang enthalten. Vielleicht ist der ODBC-Treiber entfernt die Leerzeichen, könnten Sie versuchen, die NoScan=Yes option in der ODBC.ini-Datei
Ich zweite dnoeth. Eine weitere option, die Sie versuchen können, ist die Verwendung einer GTT statt einer Volatile Tabelle.
Ich fügte hinzu, die NoScan=Yes option in der odbc.ini-Datei (siehe oben), aber die gleiche Fehlermeldung erhalten.
Leider habe ich keine TABELLE ERSTELLEN-Zugriff auf die Datenbank ALLE.

InformationsquelleAutor Jubbles | 2014-05-12

Schreibe einen Kommentar