Im heutigen Beispiel möchte ich einmal kurz aufzeigen, wie Sie einen Text nach Ihren Bedürfnissen hin normieren können. Ich habe dazu die bekanntesten Länder der Erde in einer WITH Clause zusammengefasst und bilde mir anhand des Namens einen später verwendbaren normierten String.
Der Zielstring muss GROSSGESCHRIEBEN sein und darf keine Umlaute (ÖÜÄöüäß) und Sonderzeichen (, '.()-) beinhalten.
Die Datenbasis bildet eine Tabelle der APEX Dashboard Competition.
Code:
SQL Probleme und das Oracle SQL Forum :
Code:
Das Ergebnis:
Der Zielstring muss GROSSGESCHRIEBEN sein und darf keine Umlaute (ÖÜÄöüäß) und Sonderzeichen (, '.()-) beinhalten.
Die Datenbasis bildet eine Tabelle der APEX Dashboard Competition.
Code:
create table laender_liste as select distinct country from gdb_world_population order by countryJetzt folgt eine Funktion die auf Basis einer Tabelle ein ausführbares WITH-Clause-Select generiert:
SQL Probleme und das Oracle SQL Forum :
Code:
WITH LAENDER_LISTE AS ( SELECT 'Afghanistan' as COUNTRY FROM DUAL UNION ALL SELECT 'Ägypten' as COUNTRY FROM DUAL UNION ALL SELECT 'Albanien' as COUNTRY FROM DUAL UNION ALL SELECT 'Algerien' as COUNTRY FROM DUAL UNION ALL SELECT 'Andorra' as COUNTRY FROM DUAL UNION ALL SELECT 'Angola' as COUNTRY FROM DUAL UNION ALL SELECT 'Antigua und Barbuda' as COUNTRY FROM DUAL UNION ALL SELECT 'Äquatorialguinea' as COUNTRY FROM DUAL UNION ALL SELECT 'Argentinien' as COUNTRY FROM DUAL UNION ALL SELECT 'Armenien' as COUNTRY FROM DUAL UNION ALL SELECT 'Aserbaidschan' as COUNTRY FROM DUAL UNION ALL SELECT 'Äthopien' as COUNTRY FROM DUAL UNION ALL SELECT 'Australien' as COUNTRY FROM DUAL UNION ALL SELECT 'Bahamas' as COUNTRY FROM DUAL UNION ALL SELECT 'Bahrain' as COUNTRY FROM DUAL UNION ALL SELECT 'Bangladesch' as COUNTRY FROM DUAL UNION ALL SELECT 'Barbados' as COUNTRY FROM DUAL UNION ALL SELECT 'Belgien' as COUNTRY FROM DUAL UNION ALL SELECT 'Belize' as COUNTRY FROM DUAL UNION ALL SELECT 'Benin' as COUNTRY FROM DUAL UNION ALL SELECT 'Bhutan' as COUNTRY FROM DUAL UNION ALL SELECT 'Bolivien, Plurinationaler Staat' as COUNTRY FROM DUAL UNION ALL SELECT 'Bosnien und Herzegowina' as COUNTRY FROM DUAL UNION ALL SELECT 'Botsuana' as COUNTRY FROM DUAL UNION ALL SELECT 'Brasilien' as COUNTRY FROM DUAL UNION ALL SELECT 'Brunei Darussalam' as COUNTRY FROM DUAL UNION ALL SELECT 'Bulgarien' as COUNTRY FROM DUAL UNION ALL SELECT 'Burkina Faso' as COUNTRY FROM DUAL UNION ALL SELECT 'Burundi' as COUNTRY FROM DUAL UNION ALL SELECT 'Cabo Verde' as COUNTRY FROM DUAL UNION ALL SELECT 'Chile' as COUNTRY FROM DUAL UNION ALL SELECT 'China' as COUNTRY FROM DUAL UNION ALL SELECT 'Costa Rica' as COUNTRY FROM DUAL UNION ALL SELECT 'Cote d''Ivoire' as COUNTRY FROM DUAL UNION ALL SELECT 'Dänemark' as COUNTRY FROM DUAL UNION ALL SELECT 'Deutschland' as COUNTRY FROM DUAL UNION ALL SELECT 'Dominica' as COUNTRY FROM DUAL UNION ALL SELECT 'Dominikanische Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Dschibuti' as COUNTRY FROM DUAL UNION ALL SELECT 'Ecuador' as COUNTRY FROM DUAL UNION ALL SELECT 'El Salvador' as COUNTRY FROM DUAL UNION ALL SELECT 'Eritrea' as COUNTRY FROM DUAL UNION ALL SELECT 'Estland' as COUNTRY FROM DUAL UNION ALL SELECT 'Fidschi' as COUNTRY FROM DUAL UNION ALL SELECT 'Finnland' as COUNTRY FROM DUAL UNION ALL SELECT 'Frankreich' as COUNTRY FROM DUAL UNION ALL SELECT 'Gabun' as COUNTRY FROM DUAL UNION ALL SELECT 'Gambia' as COUNTRY FROM DUAL UNION ALL SELECT 'Georgien' as COUNTRY FROM DUAL UNION ALL SELECT 'Ghana' as COUNTRY FROM DUAL UNION ALL SELECT 'Grenada' as COUNTRY FROM DUAL UNION ALL SELECT 'Griechenland' as COUNTRY FROM DUAL UNION ALL SELECT 'Guatemala' as COUNTRY FROM DUAL UNION ALL SELECT 'Guinea' as COUNTRY FROM DUAL UNION ALL SELECT 'Guinea-Bissau' as COUNTRY FROM DUAL UNION ALL SELECT 'Guyana' as COUNTRY FROM DUAL UNION ALL SELECT 'Haiti' as COUNTRY FROM DUAL UNION ALL SELECT 'Honduras' as COUNTRY FROM DUAL UNION ALL SELECT 'Indien' as COUNTRY FROM DUAL UNION ALL SELECT 'Indonesien' as COUNTRY FROM DUAL UNION ALL SELECT 'Irak' as COUNTRY FROM DUAL UNION ALL SELECT 'Iran, Islamische Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Irland' as COUNTRY FROM DUAL UNION ALL SELECT 'Island' as COUNTRY FROM DUAL UNION ALL SELECT 'Israel' as COUNTRY FROM DUAL UNION ALL SELECT 'Italien' as COUNTRY FROM DUAL UNION ALL SELECT 'Jamaika' as COUNTRY FROM DUAL UNION ALL SELECT 'Japan' as COUNTRY FROM DUAL UNION ALL SELECT 'Jemen' as COUNTRY FROM DUAL UNION ALL SELECT 'Jordanien' as COUNTRY FROM DUAL UNION ALL SELECT 'Kambodscha' as COUNTRY FROM DUAL UNION ALL SELECT 'Kamerun' as COUNTRY FROM DUAL UNION ALL SELECT 'Kanada' as COUNTRY FROM DUAL UNION ALL SELECT 'Kasachstan' as COUNTRY FROM DUAL UNION ALL SELECT 'Katar' as COUNTRY FROM DUAL UNION ALL SELECT 'Kenia' as COUNTRY FROM DUAL UNION ALL SELECT 'Kirgisistan' as COUNTRY FROM DUAL UNION ALL SELECT 'Kiribati' as COUNTRY FROM DUAL UNION ALL SELECT 'Kolumbien' as COUNTRY FROM DUAL UNION ALL SELECT 'Komoren' as COUNTRY FROM DUAL UNION ALL SELECT 'Kongo, Demokratische Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Kongo, Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Korea, Demokratische Volksrepublik' as COUNTRY FROM DUAL UNION ALL SELECT 'Korea, Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Kroatien' as COUNTRY FROM DUAL UNION ALL SELECT 'Kuba' as COUNTRY FROM DUAL UNION ALL SELECT 'Kuwait' as COUNTRY FROM DUAL UNION ALL SELECT 'Laos, Demokratische Volksrepublik' as COUNTRY FROM DUAL UNION ALL SELECT 'Lesotho' as COUNTRY FROM DUAL UNION ALL SELECT 'Lettland' as COUNTRY FROM DUAL UNION ALL SELECT 'Libanon' as COUNTRY FROM DUAL UNION ALL SELECT 'Liberia' as COUNTRY FROM DUAL UNION ALL SELECT 'Libyen' as COUNTRY FROM DUAL UNION ALL SELECT 'Liechtenstein' as COUNTRY FROM DUAL UNION ALL SELECT 'Litauen' as COUNTRY FROM DUAL UNION ALL SELECT 'Luxemburg' as COUNTRY FROM DUAL UNION ALL SELECT 'Madagaskar' as COUNTRY FROM DUAL UNION ALL SELECT 'Malawi' as COUNTRY FROM DUAL UNION ALL SELECT 'Malaysia' as COUNTRY FROM DUAL UNION ALL SELECT 'Malediven' as COUNTRY FROM DUAL UNION ALL SELECT 'Mali' as COUNTRY FROM DUAL UNION ALL SELECT 'Malta' as COUNTRY FROM DUAL UNION ALL SELECT 'Marokko' as COUNTRY FROM DUAL UNION ALL SELECT 'Marshallinseln' as COUNTRY FROM DUAL UNION ALL SELECT 'Mauretanien' as COUNTRY FROM DUAL UNION ALL SELECT 'Mauritius' as COUNTRY FROM DUAL UNION ALL SELECT 'Mazedonien, ehemalige jugoslawische Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Mexiko' as COUNTRY FROM DUAL UNION ALL SELECT 'Mikronesien, Föderierte Staaten von' as COUNTRY FROM DUAL UNION ALL SELECT 'Moldau, Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Monaco' as COUNTRY FROM DUAL UNION ALL SELECT 'Mongolei' as COUNTRY FROM DUAL UNION ALL SELECT 'Montenegro (ab 03062006)' as COUNTRY FROM DUAL UNION ALL SELECT 'Mosambik' as COUNTRY FROM DUAL UNION ALL SELECT 'Myanmar' as COUNTRY FROM DUAL UNION ALL SELECT 'Namibia' as COUNTRY FROM DUAL UNION ALL SELECT 'Nauru' as COUNTRY FROM DUAL UNION ALL SELECT 'Nepal' as COUNTRY FROM DUAL UNION ALL SELECT 'Neuseeland' as COUNTRY FROM DUAL UNION ALL SELECT 'Nicaragua' as COUNTRY FROM DUAL UNION ALL SELECT 'Niederlande' as COUNTRY FROM DUAL UNION ALL SELECT 'Niger' as COUNTRY FROM DUAL UNION ALL SELECT 'Nigeria' as COUNTRY FROM DUAL UNION ALL SELECT 'Norwegen' as COUNTRY FROM DUAL UNION ALL SELECT 'Oman' as COUNTRY FROM DUAL UNION ALL SELECT 'Österreich' as COUNTRY FROM DUAL UNION ALL SELECT 'Pakistan' as COUNTRY FROM DUAL UNION ALL SELECT 'Palau' as COUNTRY FROM DUAL UNION ALL SELECT 'Panama' as COUNTRY FROM DUAL UNION ALL SELECT 'Papua-Neuguinea' as COUNTRY FROM DUAL UNION ALL SELECT 'Paraguay' as COUNTRY FROM DUAL UNION ALL SELECT 'Peru' as COUNTRY FROM DUAL UNION ALL SELECT 'Philippinen' as COUNTRY FROM DUAL UNION ALL SELECT 'Polen' as COUNTRY FROM DUAL UNION ALL SELECT 'Portugal' as COUNTRY FROM DUAL UNION ALL SELECT 'Ruanda' as COUNTRY FROM DUAL UNION ALL SELECT 'Rumänien' as COUNTRY FROM DUAL UNION ALL SELECT 'Russische Föderation' as COUNTRY FROM DUAL UNION ALL SELECT 'Salomonen' as COUNTRY FROM DUAL UNION ALL SELECT 'Sambia' as COUNTRY FROM DUAL UNION ALL SELECT 'Samoa' as COUNTRY FROM DUAL UNION ALL SELECT 'San Marino' as COUNTRY FROM DUAL UNION ALL SELECT 'Sao Tome und Principe' as COUNTRY FROM DUAL UNION ALL SELECT 'Saudi-Arabien' as COUNTRY FROM DUAL UNION ALL SELECT 'Schweden' as COUNTRY FROM DUAL UNION ALL SELECT 'Schweiz' as COUNTRY FROM DUAL UNION ALL SELECT 'Senegal' as COUNTRY FROM DUAL UNION ALL SELECT 'Serbien (einschl Kosovo) (03062006-16022008)' as COUNTRY FROM DUAL UNION ALL SELECT 'Seychellen' as COUNTRY FROM DUAL UNION ALL SELECT 'Sierra Leone' as COUNTRY FROM DUAL UNION ALL SELECT 'Simbabwe' as COUNTRY FROM DUAL UNION ALL SELECT 'Singapur' as COUNTRY FROM DUAL UNION ALL SELECT 'Slowakei' as COUNTRY FROM DUAL UNION ALL SELECT 'Slowenien' as COUNTRY FROM DUAL UNION ALL SELECT 'Somalia' as COUNTRY FROM DUAL UNION ALL SELECT 'Spanien' as COUNTRY FROM DUAL UNION ALL SELECT 'Sri Lanka' as COUNTRY FROM DUAL UNION ALL SELECT 'St Kitts und Nevis' as COUNTRY FROM DUAL UNION ALL SELECT 'St Lucia' as COUNTRY FROM DUAL UNION ALL SELECT 'St Vincent und die Grenadinen' as COUNTRY FROM DUAL UNION ALL SELECT 'Südafrika' as COUNTRY FROM DUAL UNION ALL SELECT 'Sudan (einschließlich Südsudan) (bis 08072011)' as COUNTRY FROM DUAL UNION ALL SELECT 'Südsudan (ab 09072011)' as COUNTRY FROM DUAL UNION ALL SELECT 'Suriname' as COUNTRY FROM DUAL UNION ALL SELECT 'Swasiland' as COUNTRY FROM DUAL UNION ALL SELECT 'Syrien' as COUNTRY FROM DUAL UNION ALL SELECT 'Tadschikistan' as COUNTRY FROM DUAL UNION ALL SELECT 'Tansania' as COUNTRY FROM DUAL UNION ALL SELECT 'Thailand' as COUNTRY FROM DUAL UNION ALL SELECT 'Timor-Leste' as COUNTRY FROM DUAL UNION ALL SELECT 'Togo' as COUNTRY FROM DUAL UNION ALL SELECT 'Tonga' as COUNTRY FROM DUAL UNION ALL SELECT 'Trinidad und Tobago' as COUNTRY FROM DUAL UNION ALL SELECT 'Tschad' as COUNTRY FROM DUAL UNION ALL SELECT 'Tschechische Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Tunesien' as COUNTRY FROM DUAL UNION ALL SELECT 'Türkei' as COUNTRY FROM DUAL UNION ALL SELECT 'Turkmenistan' as COUNTRY FROM DUAL UNION ALL SELECT 'Tuvalu' as COUNTRY FROM DUAL UNION ALL SELECT 'Uganda' as COUNTRY FROM DUAL UNION ALL SELECT 'Ukraine' as COUNTRY FROM DUAL UNION ALL SELECT 'Ungarn' as COUNTRY FROM DUAL UNION ALL SELECT 'Uruguay' as COUNTRY FROM DUAL UNION ALL SELECT 'Usbekistan' as COUNTRY FROM DUAL UNION ALL SELECT 'Vanuatu' as COUNTRY FROM DUAL UNION ALL SELECT 'Vatikanstadt' as COUNTRY FROM DUAL UNION ALL SELECT 'Venezuela, Bolivarische Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Vereinigte Arabische Emirate' as COUNTRY FROM DUAL UNION ALL SELECT 'Vereinigte Staaten' as COUNTRY FROM DUAL UNION ALL SELECT 'Vereinigtes Königreich' as COUNTRY FROM DUAL UNION ALL SELECT 'Vietnam' as COUNTRY FROM DUAL UNION ALL SELECT 'Weißrussland' as COUNTRY FROM DUAL UNION ALL SELECT 'Zentralafrikanische Republik' as COUNTRY FROM DUAL UNION ALL SELECT 'Zypern' as COUNTRY FROM DUAL ) SELECT T1.COUNTRY, UPPER(TRANSLATE ( REGEXP_REPLACE (REGEXP_REPLACE ( REPLACE ( COUNTRY , 'ß' , 'ss' ) , '([ÖÜÄöüä])' , '\1e' ) , '\)\ \(|\ \(|\, |\ |,|\.|\(|\)|\''|\-' , '_' ) , 'ÖÜÄöüä' , 'OUAoua' )) AS TRANSFORMED_COUNTRY FROM LAENDER_LISTE T1 ORDER BY 1Mit Hilfe von REGEXP_REPLACE und TRANSLATE (Danke Oracle Forum) konnte ich nun einen genormten Namen generieren.
Das Ergebnis: