

 Amazon Redshift tidak akan lagi mendukung pembuatan UDF Python baru mulai Patch 198. UDF Python yang ada akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# SVL\_STORED\_PROC\_MESSAGES
<a name="r_SVL_STORED_PROC_MESSAGES"></a>

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](cm_chap_system-tables.md#c_visibility-of-data).

Beberapa atau semua data dalam tabel ini juga dapat ditemukan di tampilan [SYS\_PROCEDURE \_MESSAGES](SYS_PROCEDURE_MESSAGES.md) 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
<a name="r_SVL_STORED_PROC_MESSAGES-table-columns"></a>


| 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 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 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. | 
| digugurkan  | 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
<a name="r_SVL_STORED_PROC_MESSAGES-sample-query"></a>

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)
```