Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
STL_DDLTEXT
Menangkap DDL pernyataan berikut yang dijalankan pada sistem.
DDLPernyataan ini mencakup kueri dan objek berikut:
-
CREATE SCHEMA, TABLE, VIEW
-
DROP SCHEMA, TABLE, VIEW
-
ALTER SCHEMA, TABLE
Lihat jugaSTL_QUERYTEXT,STL_UTILITYTEXT, danSVL_STATEMENTTEXT. Pandangan ini memberikan garis waktu SQL perintah yang dijalankan pada sistem; riwayat ini berguna untuk pemecahan masalah dan untuk membuat jejak audit dari semua aktivitas sistem.
Gunakan ENDTIME kolom STARTTIME dan untuk mengetahui pernyataan mana yang dicatat selama periode waktu tertentu. Blok SQL teks yang panjang dipecah menjadi baris sepanjang 200 karakter; SEQUENCE kolom mengidentifikasi fragmen teks yang termasuk dalam satu pernyataan.
STL_ DDLTEXT dapat dilihat oleh semua pengguna. Pengguna super dapat melihat semua baris; pengguna biasa hanya dapat melihat data mereka sendiri. Untuk informasi selengkapnya, lihat Visibilitas data dalam tabel dan tampilan sistem.
Beberapa atau semua data dalam tabel ini juga dapat ditemukan di tampilan SYS pemantauanSYS_QUERY_HISTORY. Data dalam tampilan SYS pemantauan diformat agar lebih mudah digunakan dan dipahami. Kami menyarankan Anda menggunakan tampilan SYS pemantauan untuk pertanyaan Anda.
Kolom tabel
Nama kolom | Jenis data | Deskripsi |
---|---|---|
userid | integer | ID pengguna yang membuat entri. |
xid | bigint | ID transaksi yang terkait dengan pernyataan. |
pid | integer | ID proses yang terkait dengan pernyataan. |
label | karakter (320) | Entah nama file yang digunakan untuk menjalankan kueri atau label yang ditentukan dengan GROUP perintah SET QUERY _. Jika kueri tidak berbasis file atau GROUP parameter QUERY _ tidak disetel, bidang ini kosong. |
waktu mulai | timestamp | Waktu di UTC mana kueri dimulai. Total waktu termasuk antrian dan eksekusi. dengan 6 digit presisi untuk detik pecahan. Sebagai contoh: 2009-06-12 11:29:19.131358 . |
akhir waktu | timestamp | Waktu di UTC mana kueri selesai. Total waktu termasuk antrian dan eksekusi. dengan 6 digit presisi untuk detik pecahan. Sebagai contoh: 2009-06-12 11:29:19.131358 . |
urutan | integer | Ketika satu pernyataan berisi lebih dari 200 karakter, baris tambahan dicatat untuk pernyataan itu. Urutan 0 adalah baris pertama, 1 adalah yang kedua, dan seterusnya. |
text | karakter (200) | SQLteks, dalam peningkatan 200 karakter. Bidang ini mungkin berisi karakter khusus seperti garis miring terbalik (\\ ) dan baris baru (). \n |
Kueri Sampel
Kueri berikut mengembalikan catatan yang menyertakan DDL pernyataan yang dijalankan sebelumnya.
select xid, starttime, sequence, substring(text,1,40) as text from stl_ddltext order by xid desc, sequence;
Berikut ini adalah contoh output yang menunjukkan empat CREATE TABLE pernyataan. DDLPernyataan muncul di text
kolom, yang terpotong agar mudah dibaca.
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)
Rekonstruksi Tersimpan SQL
Berikut SQL daftar baris yang disimpan di text
kolom STL _DDLTEXT. Baris dipesan oleh xid
dansequence
. Jika SQL aslinya lebih panjang dari 200 karakter beberapa baris, STL _ DDLTEXT dapat berisi beberapa baris olehsequence
.
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');
...
Untuk merekonstruksi SQL disimpan di text
kolom STL _DDLTEXT, jalankan pernyataan berikutSQL. Ini menyatukan DDL pernyataan dari satu atau lebih segmen di text
kolom. Sebelum menjalankan rekonstruksiSQL, ganti karakter khusus (\n
) apa pun dengan baris baru di SQL klien Anda. Hasil SELECT pernyataan berikut menyatukan tiga baris secara berurutan untuk merekonstruksiSQL, di query_statement
lapangan.
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');