Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:oracle_reverse_function

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
prog:oracle_reverse_function [2014/04/24 18:04]
gpipperr [Die Oracle SQL reverse Funktion - Einen String in SQL umdrehen]
prog:oracle_reverse_function [2014/11/21 15:33] (aktuell)
gpipperr [Die Oracle SQL reverse Funktion - Einen String in SQL umdrehen]
Zeile 1: Zeile 1:
 +===== Die Oracle SQL reverse Funktion - Einen String in SQL umdrehen =====
 +
 +Gelegentlich soll ein String von hinten gelesen werden, diese kann mit der undokumentierten **reverse** Funktion erfolgen.
 +
 +Beispiel:
 +<code sql>
 +
 +
 +select reverse('Gunther') from dual;
 +
 +REVERSE
 +-------
 +rehtnuG
 +
 +-- test mit PL/SQL
 +
 +set serveroutput on
 +
 +
 +declare
 + v_test varchar2(100);
 +begin
 + select reverse('Gunther') into v_test from dual;
 + dbms_output.put_line(v_test);
 +end;
 +/
 +
 +rehtnuG
 +
 +</code>
 +
 +=== Dokumentierte Variante mit DBMS_RAW ===
 +
 +Mit dem DBMS_RAW Package steht auch eine dokumentierte Funktion zur Verfügung.
 +
 +Beispiel:
 +
 +<code sql>
 +
 +select UTL_RAW.CAST_TO_VARCHAR2( UTL_RAW.REVERSE( UTL_RAW.CAST_TO_RAW( 'Gunther'))) from dual
 +/
 +
 +UTL_RAW.CAST_TO_VA
 +------------------
 +rehtnuG
 +
 +</code>
 +
 +siehe http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/u_raw.htm#i1003598
 +
 +=== Einsatz Beispiel ===
 +
 +Es sollen alle EMail Adressen von einem Provider mit verschiedenen Subdomains aus einer Adresse Tabelle gelesen werden.
 +
 +Beispiel:
 +<code sql>
 +# Dummy code:
 +
 +select reverse('gunther@sub.hohkng.cm') from dual where  reverse('gunther@sub.hohkng.cm') like 'mc.gnkhoh%';
 +
 +</code>
 +
 +Damit ist das "%" nicht am Anfang des Suchstrings und es kann auch ein function Based Index eingesetzt werden.
 +
 +==== Quellen ====
 +
 +  * http://www.dbasupport.com/forums/showthread.php?18399-Reverse%28%29-function-in-oracle
 +
 +
  
"Autor: Gunther Pipperr"
prog/oracle_reverse_function.txt · Zuletzt geändert: 2014/11/21 15:33 von gpipperr