

 Amazon Redshift unterstützt ab Patch 198 nicht mehr die Erstellung neuer Python-UDFs. Bestehende Python-UDFs werden bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

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

Sie können die Systemansicht SVL\_STORED\_PROC\_MESSAGES abfragen, um Informationen über Meldungen zu gespeicherten Prozeduren abzurufen. Ausgegebene Meldungen werden protokolliert, auch wenn der Aufruf der gespeicherten Prozedur abgebrochen wird. Jeder Aufruf einer gespeicherten Prozedur erhält eine Abfrage-ID. Weitere Informationen zum Festlegen der Mindestebene für protokollierte Meldungen finden Sie unter stored\_proc\_log\_min\_messages.

SVL\_STORED\_PROC\_MESSAGES ist für alle Benutzer sichtbar. Superuser können alle Zeilen sehen; reguläre Benutzer können nur ihre eigenen Daten sehen. Weitere Informationen finden Sie unter [Sichtbarkeit der Daten in Systemtabellen und Ansichten](cm_chap_system-tables.md#c_visibility-of-data).

Einige oder alle Daten in dieser Tabelle sind auch in der SYS-Überwachungsansicht [SYS\_PROCEDURE\_MESSAGES](SYS_PROCEDURE_MESSAGES.md) zu finden. Die Daten in der SYS-Überwachungsansicht sind so formatiert, dass sie leichter verwendbar und besser verständlich sind. Wir empfehlen Ihnen, für Ihre Abfragen die SYS-Überwachungsansicht zu verwenden.

## Tabellenspalten
<a name="r_SVL_STORED_PROC_MESSAGES-table-columns"></a>


| Spaltenname  | Datentyp  | Beschreibung  | 
| --- | --- | --- | 
| userid  | integer  | Die ID des Benutzers, dessen Berechtigungen zum Ausführen der Anweisung verwendet wurden. Wenn dieser Aufruf innerhalb einer gespeicherten SECURITY DEFINER-Prozedur eingebunden war, dann ist dies die Benutzer-ID des Besitzers dieser gespeicherten Prozedur.  | 
| session\_userid  | integer  | Die ID des Benutzers, der die Sitzung erstellt hat und der der Aufrufer des Aufrufs der gespeicherten Prozedur auf oberster Ebene ist.  | 
| pid | integer  | Die Prozess-ID.  | 
| xid | bigint | Die Transaktions-ID der Prozeduraufrufabfrage. | 
| query  | integer  | Die Abfrage-ID des Prozeduraufrufs.  | 
| recordtime | timestamp | Die Uhrzeit in UTC, zu der die Meldung ausgegeben wurde. | 
| loglevel | integer | Der numerische Wert der Protokollebene der ausgegebenen Meldung. Mögliche Werte: 20 – für LOG 30 – für INFO 40 – für NOTICE 50 – für WARNING 60 – für EXCEPTION | 
| loglevel\_text | character(10)  | Die Protokollebene, die dem numerischen Wert in LogLevel entspricht. Mögliche Werte: LOG, INFO, NOTICE, WARNING und EXCEPTION. | 
| Nachricht | character(1024) | Der Text der ausgegebenen Meldung. | 
| linenum | integer  | Die Zeilennummer der ausgegebenen Meldung. | 
| querytext | Zeichen (500)  | Der tatsächliche Text der Prozeduraufrufsabfrage.  | 
| label | Zeichen (320)  | Entweder der Name der für die Ausführung verwendeten Datei oder eine mit dem Befehl SET QUERY\_GROUP definierte Beschriftung. Wenn die Tabelle nicht dateibasiert ist oder der Parameter QUERY\_GROUP nicht eingerichtet ist, ist der Wert in diesem Feld der Standardwert. | 
| aborted  | integer  | Wenn eine gespeicherte Prozedur vom System beendet oder von einem Benutzer abgebrochen wurde, enthält diese Spalte den Wert 1. Wenn der Aufruf abgeschlossen wird, enthält diese Spalte den Wert 0.  | 
| message\_xid | bigint | Die Transaktions-ID der ausgelösten Nachricht. | 

## Beispielabfrage
<a name="r_SVL_STORED_PROC_MESSAGES-sample-query"></a>

Die folgenden SQL-Anweisungen zeigen, wie ausgegebene Meldungen mithilfe von SVL\_STORED\_PROC\_MESSAGES überprüft werden können.

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

Die folgenden SQL-Anweisungen zeigen, wie ausgegebene Meldungen mit der SET-Option mithilfe von SVL\_STORED\_PROC\_MESSAGES überprüft werden können, wenn eine gespeicherte Prozedur erstellt wird. Da test\_proc() die Mindestprotokollebene NOTICE aufweist, werden nur Meldungen auf der Ebene NOTICE, WARNING und EXCEPTION in SVL\_STORED\_PROC\_MESSAGES protokolliert.

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