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 dari permintaan panggilan prosedur. |
kueri | integer | ID kueri dari panggilan prosedur. |
rekor waktu | timestamp | Waktu di UTC bahwa pesan itu diangkat. |
loglevel | integer | Nilai numerik dari 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 dari 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)