SVL_STORED_PROC_MESSAGES - Amazon Redshift

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

SVL_STORED_PROC_MESSAGES

Anda dapat menanyakan tampilan sistem SVL_STORED_PROC_MESSAGES untuk mendapatkan informasi tentang pesan prosedur yang disimpan. Pesan yang diangkat dicatat bahkan jika panggilan prosedur yang disimpan dibatalkan. Setiap panggilan prosedur yang disimpan menerima ID kueri. Untuk informasi selengkapnya tentang cara menyetel level minimum untuk pesan yang dicatat, lihat stored_proc_log_min_messages.

SVL_STORED_PROC_MESSAGES 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 SYS_PROCEDURE _MESSAGES pemantauan SYS. Data dalam tampilan pemantauan SYS diformat agar lebih mudah digunakan dan dipahami. Kami menyarankan Anda menggunakan tampilan pemantauan SYS untuk pertanyaan Anda.

Kolom tabel

Nama kolom Jenis data Deskripsi
userid integer ID pengguna yang hak istimewanya digunakan untuk menjalankan pernyataan. Jika panggilan ini bersarang dalam prosedur tersimpan SECURITY DEFINER, maka ini adalah userid pemilik prosedur tersimpan tersebut.
session_userid integer ID pengguna yang membuat sesi dan merupakan pemanggil dari panggilan prosedur tersimpan tingkat atas.
pid integer ID proses.
xid bigint ID transaksi permintaan panggilan prosedur.
kueri integer ID kueri dari panggilan prosedur.
rekor waktu timestamp Waktu di UTC bahwa pesan itu diangkat.
loglevel integer Nilai numerik tingkat log dari pesan yang diangkat. Nilai yang mungkin: 20 - untuk LOG 30 - untuk INFO 40 - untuk PEMBERITAHUAN 50 - untuk PERINGATAN 60 - untuk PENGECUALIAN
loglevel_text karakter (10) Tingkat log yang sesuai dengan nilai numerik di loglevel. Nilai yang mungkin: LOG, INFO, PEMBERITAHUAN, PERINGATAN, dan PENGECUALIAN.
pesan karakter (1024) Teks dari pesan yang diangkat.
linenum integer Nomor baris pernyataan yang diangkat.
querytext karakter (500) Teks sebenarnya dari permintaan panggilan prosedur.
label karakter (320) Entah nama file yang digunakan untuk menjalankan kueri atau label yang ditentukan dengan perintah SET QUERY_GROUP. Jika kueri tidak berbasis file atau parameter QUERY_GROUP tidak disetel, nilai bidang ini adalah default.
dibatalkan integer Jika prosedur yang disimpan dihentikan oleh sistem atau dibatalkan oleh pengguna, kolom ini berisi 1. Jika panggilan berjalan hingga selesai, kolom ini berisi 0.
message_xid bigint ID transaksi dari pesan yang diangkat.

Contoh kueri

Pernyataan SQL berikut menunjukkan cara menggunakan SVL_STORED_PROC_MESSAGES untuk meninjau pesan yang dimunculkan.

-- Create and run a stored procedure CREATE OR REPLACE PROCEDURE test_proc1(f1 int) AS $$ BEGIN RAISE INFO 'Log Level: Input f1 is %',f1; RAISE NOTICE 'Notice Level: Input f1 is %',f1; EXECUTE 'select invalid'; RAISE NOTICE 'Should not print this'; EXCEPTION WHEN OTHERS THEN raise exception 'EXCEPTION level: Exception Handling'; END; $$ LANGUAGE plpgsql; -- Call this stored procedure CALL test_proc1(2); -- Show raised messages with level higher than INFO SELECT query, recordtime, loglevel, loglevel_text, trim(message) as message, aborted FROM svl_stored_proc_messages WHERE loglevel > 30 AND query = 193 ORDER BY recordtime; query | recordtime | loglevel | loglevel_text | message | aborted -------+----------------------------+----------+---------------+-------------------------------------+--------- 193 | 2020-03-17 23:57:18.277196 | 40 | NOTICE | Notice Level: Input f1 is 2 | 1 193 | 2020-03-17 23:57:18.277987 | 60 | EXCEPTION | EXCEPTION level: Exception Handling | 1 (2 rows) -- Show raised messages at EXCEPTION level SELECT query, recordtime, loglevel, loglevel_text, trim(message) as message, aborted FROM svl_stored_proc_messages WHERE loglevel_text = 'EXCEPTION' AND query = 193 ORDER BY recordtime; query | recordtime | loglevel | loglevel_text | message | aborted -------+----------------------------+----------+---------------+-------------------------------------+--------- 193 | 2020-03-17 23:57:18.277987 | 60 | EXCEPTION | EXCEPTION level: Exception Handling | 1

Pernyataan SQL berikut menunjukkan cara menggunakan SVL_STORED_PROC_MESSAGES untuk meninjau pesan yang diangkat dengan opsi SET saat membuat prosedur tersimpan. Karena test_proc () memiliki tingkat log minimum PEMBERITAHUAN, hanya pesan tingkat PEMBERITAHUAN, PERINGATAN, dan PENGECUALIAN yang masuk SVL_STORED_PROC_MESSAGES.

-- Create a stored procedure with minimum log level of NOTICE CREATE OR REPLACE PROCEDURE test_proc() AS $$ BEGIN RAISE LOG 'Raise LOG messages'; RAISE INFO 'Raise INFO messages'; RAISE NOTICE 'Raise NOTICE messages'; RAISE WARNING 'Raise WARNING messages'; RAISE EXCEPTION 'Raise EXCEPTION messages'; RAISE WARNING 'Raise WARNING messages again'; -- not reachable END; $$ LANGUAGE plpgsql SET stored_proc_log_min_messages = NOTICE; -- Call this stored procedure CALL test_proc(); -- Show the raised messages SELECT query, recordtime, loglevel_text, trim(message) as message, aborted FROM svl_stored_proc_messages WHERE query = 149 ORDER BY recordtime; query | recordtime | loglevel_text | message | aborted -------+----------------------------+---------------+--------------------------+--------- 149 | 2020-03-16 21:51:54.847627 | NOTICE | Raise NOTICE messages | 1 149 | 2020-03-16 21:51:54.84766 | WARNING | Raise WARNING messages | 1 149 | 2020-03-16 21:51:54.847668 | EXCEPTION | Raise EXCEPTION messages | 1 (3 rows)