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
NoScan=Yes
option in der ODBC.ini-DateiIch 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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen Sie einfach die Letzte ; die aus Ihrer SQL-Datei. Ich habe versucht, es funktioniert für mich.
InformationsquelleAutor firebat123