View a markdown version of this page

STL_DDLTEXT - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

STL_DDLTEXT

Menangkap pernyataan DDL berikut yang dijalankan pada sistem.

Pernyataan DDL ini mencakup kueri dan objek berikut:

  • BUAT SKEMA, TABEL, TAMPILAN

  • JATUHKAN SKEMA, TABEL, TAMPILAN

  • MENGUBAH SKEMA, TABEL

Lihat jugaSTL_QUERYTEXT,STL_UTILITYTEXT, danSVL_STATEMENTTEXT. Tampilan ini menyediakan garis waktu perintah SQL yang dijalankan pada sistem; riwayat ini berguna untuk pemecahan masalah dan untuk membuat jejak audit dari semua aktivitas sistem.

Gunakan kolom STARTTIME dan ENDTIME untuk mengetahui pernyataan mana yang dicatat selama periode waktu tertentu. Blok panjang teks SQL dipecah menjadi baris sepanjang 200 karakter; kolom SEQUENCE mengidentifikasi fragmen teks yang termasuk dalam satu pernyataan.

STL_DDLTEXT terlihat 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 pemantauan SYSSYS_QUERY_HISTORY. Data dalam tampilan pemantauan SYS diformat agar lebih mudah digunakan dan dipahami. Kami menyarankan Anda menggunakan tampilan pemantauan SYS untuk kueri 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) Baik nama file yang digunakan untuk menjalankan query atau label yang ditentukan dengan perintah SET QUERY_GROUP. Jika kueri tidak berbasis file atau parameter QUERY_GROUP tidak disetel, bidang ini kosong.
waktu mulai timestamp Waktu dalam UTC saat kueri dimulai. Total waktu termasuk antrian dan eksekusi. dengan 6 digit presisi untuk detik pecahan. Sebagai contoh: 2009-06-12 11:29:19.131358.
waktu akhir timestamp Waktu dalam UTC saat 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 pernyataan tunggal 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) Teks SQL, dalam penambahan 200 karakter. Bidang ini mungkin berisi karakter khusus seperti backslash (\\) dan newline (). \n

Kueri Sampel

Kueri berikut mengembalikan catatan yang menyertakan pernyataan DDL 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 pernyataan CREATE TABLE. Pernyataan DDL muncul di text kolom, yang dipotong untuk keterbacaan.

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)

Merekonstruksi SQL Tersimpan

SQL berikut mencantumkan baris yang disimpan di text kolom STL_DDLTEXT. Baris diurutkan oleh xid dansequence. Jika SQL asli lebih panjang dari 200 karakter beberapa baris, STL_DDLTEXT dapat berisi beberapa baris oleh. sequence

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 yang disimpan di text kolom STL_DDLTEXT, jalankan pernyataan SQL berikut. Ini mengumpulkan pernyataan DDL dari satu atau lebih segmen di text kolom. Sebelum menjalankan SQL yang direkonstruksi, ganti karakter khusus (\n) dengan baris baru di klien SQL Anda. Hasil pernyataan SELECT berikut mengumpulkan tiga baris secara berurutan untuk merekonstruksi SQL, 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');