Anwendungsfälle
Die match_recognize-Klausel ist bei der Umsetzung der folgenden Anwendungsfälle hilfreich:
Serien von zusammenhängenden Ereignissen erkennen (siehe Folien).
Mustererkennung: Trendwenden, Periodische Ereignisse, …
Top-N pro Gruppen finden
Kompatibilität
Zeilenmustererkennung (Row pattern matching) wurde mit SQL:2016 durch drei optinale Features eingeführt: R010 ist die Basis: dieses Feature erfordert die match_recognize-Klausel wie sie oben verwendet wird mit den Aggregatfunktionen min, max, sum, count, avg. R020 erlaubt die Verwendung von Patterns zur Definition von Frames in der over-Klausel. R030 Unterstützt der restlichen Aggregatfunktionen (z. B. stddev_pop, …).
JDBC und ORA-17041 Missing IN or OUT parameter
Das Fragezeichen (?) wird bei JDBC als Platzhalter verwendet, ist aber auch ein gültiges Literal in der pattern-Klausel (z. B. für nicht-gierige Quantifizierungen). Der Oracle JDBC-Treiber behandelt das Fragezeichen grundsätzlich als Platzhalter. Um das Fragezeichen-Literal in der pattern-Klausel zu verwenden, bietet der Oracle JDBC-Treibe zwei Möglichkeiten:
Statement.setEscapeProcessing(false)Der JDBC-Standard erlaubt die klientseitige Verarbeitung der SQL-Anweisung abzuschalten. Diese Methode funktioniert jedoch nicht für
PreparedStatements und kann daher nicht mit Bind-Parametern verwendet werden.{\?\}Der Oracle JDBC-Treiber unterstützt eine proprietäre Escapesyntax für das Fragezeichen:
{\?\}. Diese Zeichenkette kann in derpattern-Klausel anstatt eines einfachen Fragezeichens verwendet werden. Diese Methode funktioniert auch mitPreparedStatement.

