Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
STL_DDLTEXT
Erfasst die folgenden DDL Anweisungen, die auf dem System ausgeführt wurden.
Diese DDL Anweisungen beinhalten die folgenden Abfragen und Objekte:
-
CREATE SCHEMA, TABLE, VIEW
-
DROP SCHEMA, TABLE, VIEW
-
ALTER SCHEMA, TABLE
Vgl. auch STL_QUERYTEXT, STL_UTILITYTEXT und SVL_STATEMENTTEXT. Diese Ansichten bieten eine Zeitleiste der SQL Befehle, die auf dem System ausgeführt werden. Dieser Verlauf ist nützlich für die Problembehandlung und für die Erstellung eines Prüfprotokolls aller Systemaktivitäten.
Verwenden Sie die ENDTIME Spalten STARTTIME und, um herauszufinden, welche Anweisungen in einem bestimmten Zeitraum protokolliert wurden. Lange SQL Textblöcke werden in Zeilen mit einer Länge von 200 Zeichen aufgeteilt. SEQUENCE In der Spalte werden Textfragmente identifiziert, die zu einer einzelnen Anweisung gehören.
STL_ DDLTEXT ist für alle Benutzer sichtbar. Superuser können alle Zeilen sehen; reguläre Benutzer können nur ihre eigenen Daten sehen. Weitere Informationen finden Sie unter Sichtbarkeit der Daten in Systemtabellen und Ansichten.
Einige oder alle Daten in dieser Tabelle befinden sich auch in der SYS ÜberwachungsansichtSYS_QUERY_HISTORY. Die Daten in der SYS Überwachungsansicht sind so formatiert, dass sie einfacher zu verwenden und zu verstehen sind. Wir empfehlen Ihnen, die SYS Überwachungsansicht für Ihre Abfragen zu verwenden.
Tabellenspalten
Spaltenname | Datentyp | Beschreibung |
---|---|---|
userid | integer | ID des Benutzers, der den Eintrag generiert hat. |
xid | bigint | Mit der Anweisung verbundene Transaktions-ID. |
pid | integer | Die mit der Anweisung verbundene Prozess-ID. |
label | Zeichen (320) | Entweder der Name der Datei, mit der die Abfrage ausgeführt wurde, oder ein mit dem GROUP Befehl SET QUERY _ definiertes Label. Wenn die Abfrage nicht dateibasiert ist oder der GROUP Parameter QUERY _ nicht festgelegt ist, ist dieses Feld leer. |
starttime | Zeitstempel | Uhrzeit, zu der UTC die Abfrage gestartet wurde. Die Gesamtzeit umfasst die Zeit in der Warteschlange und Zeit für die Ausführung mit einer Genauigkeit von 6 Nachkommastellen für Sekundenbruchteile. Beispiel: 2009-06-12 11:29:19.131358 . |
endtime | Zeitstempel | ZeitUTC, in der die Abfrage beendet wurde. Die Gesamtzeit umfasst die Zeit in der Warteschlange und Zeit für die Ausführung mit einer Genauigkeit von 6 Nachkommastellen für Sekundenbruchteile. Beispiel: 2009-06-12 11:29:19.131358 . |
sequence | integer | Wenn eine einzelne Anweisung mehr als 200 Zeichen enthält, werden weitere Zeilen für diese Anweisung protokolliert. Sequenz 0 ist die erste Zeile, 1 die zweite usw. |
Text | character(200) | SQLText, in Schritten von 200 Zeichen. Diese Feld kann Sonderzeichen wie Backslash (\\ ) und Zeilenumbruch (\n ) enthalten. |
Beispielabfragen
Die folgende Abfrage gibt Datensätze zurück, die zuvor ausgeführte Anweisungen enthalten. DDL
select xid, starttime, sequence, substring(text,1,40) as text from stl_ddltext order by xid desc, sequence;
Im Folgenden finden Sie eine Beispielausgabe, die vier CREATE TABLE Anweisungen zeigt. Die DDL Anweisungen werden in der text
Spalte angezeigt, die aus Gründen der Lesbarkeit gekürzt wurde.
xid | starttime | sequence | text ------+----------------------------+----------+------------------------------------------ 1806 | 2013-10-23 00:11:14.709851 | 0 | CREATE TABLE supplier ( s_suppkey int4 N 1806 | 2013-10-23 00:11:14.709851 | 1 | s_comment varchar(101) NOT NULL ) 1805 | 2013-10-23 00:11:14.496153 | 0 | CREATE TABLE region ( r_regionkey int4 N 1804 | 2013-10-23 00:11:14.285986 | 0 | CREATE TABLE partsupp ( ps_partkey int8 1803 | 2013-10-23 00:11:14.056901 | 0 | CREATE TABLE part ( p_partkey int8 NOT N 1803 | 2013-10-23 00:11:14.056901 | 1 | ner char(10) NOT NULL , p_retailprice nu (6 rows)
Gespeichert wird rekonstruiert SQL
Im Folgenden werden Zeilen SQL aufgeführt, die in der text
Spalte _ gespeichert sindSTL. DDLTEXT Die Zeilen sind geordnet nach xid
und sequence
. Wenn das Original mehr SQL als 200 Zeichen umfasst (mehrere Zeilen), DDLTEXT kann STL _ mehrere Zeilen von enthaltensequence
.
SELECT xid, sequence, LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') WITHIN GROUP (ORDER BY sequence) as query_statement FROM stl_ddltext GROUP BY xid, sequence ORDER BY xid, sequence;
xid | sequence | query_statement
--------+-----------+-----------------
7886671 0 create external schema schema_spectrum_uddh\nfrom data catalog\ndatabase 'spectrum_db_uddh'\niam_role ''\ncreate external database if not exists;
7886752 0 CREATE EXTERNAL TABLE schema_spectrum_uddh.soccer_league\n(\n league_rank smallint,\n prev_rank smallint,\n club_name varchar(15),\n league_name varchar(20),\n league_off decimal(6,2),\n le
7886752 1 ague_def decimal(6,2),\n league_spi decimal(6,2),\n league_nspi smallint\n)\nROW FORMAT DELIMITED \n FIELDS TERMINATED BY ',' \n LINES TERMINATED BY '\\n\\l'\nstored as textfile\nLOCATION 's
7886752 2 3://mybucket-spectrum-uddh/'\ntable properties ('skip.header.line.count'='1');
...
Führen Sie die folgende SQL Anweisung ausDDLTEXT, um die in der text
Spalte STL _ SQL gespeicherten Werte zu rekonstruieren. Sie fasst DDL Anweisungen aus einem oder mehreren Segmenten in der text
Spalte zusammen. Bevor Sie die Rekonstruktion ausführenSQL, ersetzen Sie alle (\n
) Sonderzeichen in Ihrem SQL Client durch eine neue Zeile. Die Ergebnisse der folgenden SELECT Anweisung fügen nacheinander drei Zeilen zusammen, um dasSQL, im Feld zu rekonstruieren. query_statement
SELECT LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END) WITHIN GROUP (ORDER BY sequence) as query_statement FROM stl_ddltext GROUP BY xid, endtime order by xid, endtime;
query_statement
--------------
create external schema schema_spectrum_uddh\nfrom data catalog\ndatabase 'spectrum_db_uddh'\niam_role ''\ncreate external database if not exists;
CREATE EXTERNAL TABLE schema_spectrum_uddh.soccer_league\n(\n league_rank smallint,\n prev_rank smallint,\n club_name varchar(15),\n league_name varchar(20),\n league_off decimal(6,2),\n league_def decimal(6,2),\n league_spi decimal(6,2),\n league_nspi smallint\n)\nROW FORMAT DELIMITED \n FIELDS TERMINATED BY ',' \n LINES TERMINATED BY '\\n\\l'\nstored as textfile\nLOCATION 's3://mybucket-spectrum-uddh/'\ntable properties ('skip.header.line.count'='1');