• Contact
  • Annonceurs

AURELIENPI.AT

Anything but the web !

  • Toutes les Archives
  • Blog
    • Wiki Technique
    • RDW
    • Panoramiques
    • Musique
  • Photos
  • Voyages

Remplacer les caracteres accentues dans une chaine de carractere (PL/SQL / Oracle / Fonction)

1
  • by Aurélien PIAT
  • in Wiki Technique
  • — 8 Nov, 2011

Il est souvent utile de pouvoir assainir un champ ou une variable dans un bloc PL/SQL ou bien simplement dans une requête. Pour cela, voici une toute petite fonction pouvant être mutualisée dans votre package ‘boîte à outils’.

Cette fonction remplace les caractères ŸÿÝýÜüÙùÛûÚúðߊšŒœÖöÕõØøÒòÔôÓóÑñÏïÌìÎîÍíËëÈèÊêÉéÇçÆæÄäÃãÅåÀàÂâÁá par leurs équivalents YyYyUuUuUuUuossSsOEoeOoOoOoOoOoOoNnIiIiIiIiEeEeEeEeCcAEaeAaAaAaAaAaAa ainsi que les retours chariots et tabulations par des espaces.

Libre à vous de lui fournir en argument un debug pour tracer lors de vos recettes.

CREATE OR REPLACE FUNCTION "SANITIZE" (param$text IN VARCHAR2 , param$debug IN NUMBER)
RETURN VARCHAR2
IS

v_text varchar2(32000) := '';

BEGIN
	v_text := param$text;

	IF param$debug = 1 THEN
		DBMS_OUTPUT.put_line ( 'AVANT => : ' || v_text );
	END IF;   

	v_text := translate( v_text, 'á', 'a');
	v_text := translate( v_text, 'Á', 'A');
	v_text := translate( v_text, 'â', 'a');
	v_text := translate( v_text, 'Â', 'A');
	v_text := translate( v_text, 'à', 'a');
	v_text := translate( v_text, 'À', 'A');
	v_text := translate( v_text, 'å', 'a');
	v_text := translate( v_text, 'Å', 'A');
	v_text := translate( v_text, 'ã', 'a');
	v_text := translate( v_text, 'Ã', 'A');
	v_text := translate( v_text, 'ä', 'a');
	v_text := translate( v_text, 'Ä', 'A');
	v_text := translate( v_text, 'æ', 'ae');
	v_text := translate( v_text, 'Æ', 'AE');
	v_text := translate( v_text, 'ç', 'c');
	v_text := translate( v_text, 'Ç', 'C');
	v_text := translate( v_text, 'é', 'e');
	v_text := translate( v_text, 'É', 'E');
	v_text := translate( v_text, 'ê', 'e');
	v_text := translate( v_text, 'Ê', 'E');
	v_text := translate( v_text, 'è', 'e');
	v_text := translate( v_text, 'È', 'E');
	v_text := translate( v_text, 'ë', 'e');
	v_text := translate( v_text, 'Ë', 'E');
	v_text := translate( v_text, 'í', 'i');
	v_text := translate( v_text, 'Í', 'I');
	v_text := translate( v_text, 'î', 'i');
	v_text := translate( v_text, 'Î', 'I');
	v_text := translate( v_text, 'ì', 'i');
	v_text := translate( v_text, 'Ì', 'I');
	v_text := translate( v_text, 'ï', 'i');
	v_text := translate( v_text, 'Ï', 'I');
	v_text := translate( v_text, 'ñ', 'n');
	v_text := translate( v_text, 'Ñ', 'N');
	v_text := translate( v_text, 'ó', 'o');
	v_text := translate( v_text, 'Ó', 'O');
	v_text := translate( v_text, 'ô', 'o');
	v_text := translate( v_text, 'Ô', 'O');
	v_text := translate( v_text, 'ò', 'o');
	v_text := translate( v_text, 'Ò', 'O');
	v_text := translate( v_text, 'ø', 'o');
	v_text := translate( v_text, 'Ø', 'O');
	v_text := translate( v_text, 'õ', 'o');
	v_text := translate( v_text, 'Õ', 'O');
	v_text := translate( v_text, 'ö', 'o');
	v_text := translate( v_text, 'Ö', 'O');
	v_text := translate( v_text, 'œ', 'oe');
	v_text := translate( v_text, 'Œ', 'OE');
	v_text := translate( v_text, 'š', 's');
	v_text := translate( v_text, 'Š', 'S');
	v_text := translate( v_text, 'ß', 'ss');
	v_text := translate( v_text, 'ð', 'o');
	v_text := translate( v_text, 'ú', 'u');
	v_text := translate( v_text, 'Ú', 'U');
	v_text := translate( v_text, 'û', 'u');
	v_text := translate( v_text, 'Û', 'U');
	v_text := translate( v_text, 'ù', 'u');
	v_text := translate( v_text, 'Ù', 'U');
	v_text := translate( v_text, 'ü', 'u');
	v_text := translate( v_text, 'Ü', 'U');
	v_text := translate( v_text, 'ý', 'y');
	v_text := translate( v_text, 'Ý', 'Y');
	v_text := translate( v_text, 'ÿ', 'y');
	v_text := translate( v_text, 'Ÿ', 'Y');
	v_text := translate( v_text, CHR(9), ' ');
	v_text := translate( v_text, CHR(10), ' ');
	v_text := translate( v_text, CHR(13), ' ');

	IF param$debug = 1 THEN
		DBMS_OUTPUT.put_line ( 'APRES => : ' || v_text );
	END IF;   

	RETURN v_text;
END;
/
Share

Tags: caractereespacefonctionoracleremplacementretour chariottabulation

You may also like...

  • Les miniatures des vidéos Youtube 20 Juil, 2013
  • Creer un package en PL/SQL (Oracle) 25 Mar, 2011
  • Comment installer des presets (paramètres prédéfinis) sur Adobe Lightroom 4 sur Mac 20 Juil, 2013
  • WP-Crontrol, un crontab pour WordPress & le mode maintenance 4 Fév, 2011

1 Comment

  1. Gom3 dit :
    13 mars 2015 à 16 h 13 min

    Salut,

    translate( v_text, ‘Æ’, ‘AE’); ne fonctionne pas car remplace par A.
    Il faudra utiliser replace( v_text, ‘Æ’, ‘AE’); pour remplacer par AE.

    Cdt.

    Répondre

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • Previous story Partager une connexion ethernet avec AirPort (Wifi / Mac OS X)
  • Next story Incosolata : Police de Developpement (EDI)
  • Onglets

    • Recent Posts
    • Most Popular
    • Comments
    • Tags
    • L’Écosse en une semaine6 mars 2020
    • Belkin Wemo Switch : allumer, éteindre et statut de tous vos switchs !20 mars 2016
    • Réparer VM Oracle VirtualBox Avorté11 décembre 2014
    • NAS Thecus N25607 octobre 2014
    • Afficher la couverture du livre en cours de lecture sur le Kobo By Fnac18 mai 2012
    • Comment installer des presets (paramètres prédéfinis) sur Adobe Lightroom 4 sur Mac20 juillet 2013
    • Sauvez votre lapin ! (Nabaztag)2 août 2011
    • Test du Videoprojecteur BenQ W700+22 février 2013
    • Fanny's Party 40 - Noël à la pelle - CatnGeek on:Sauvez votre lapin ! (Nabaztag)
    • maxime arnaudet on:Comment installer des presets (paramètres prédéfinis) sur Adobe Lightroom 4 sur Mac
    • Kb on:Afficher la couverture du livre en cours de lecture sur le Kobo By Fnac
    • Muriel on:Afficher la couverture du livre en cours de lecture sur le Kobo By Fnac
    • alternative app apple application astuce bretagne coding eclipse film flore fonction ftp Google gopro guadeloupe ios iphone kobo le sud liseuse mac os x media mer nas nature nowatch oracle os x panoramique photo photographie php pl/sql plugin podcast procedure qnap server serveur ssh video wallpaper wordpress xml youtube
  • Home
  • Toutes les catégories
  • Wiki Technique
  • Remplacer les caracteres accentues dans une chaine de carractere (PL/SQL / Oracle / Fonction)
  • Wiki Technique

    • Belkin Wemo Switch : allumer, éteindre et statut de tous vos switchs !20 mars 2016
    • Réparer VM Oracle VirtualBox Avorté11 décembre 2014
    • QNAP inclut le chiffrement intégral du NAS basé sur la technologie de chiffrement de volume2 octobre 2014
    • Augmenter un File System sous Linux6 juin 2014
    • Augmenter la taille d’un disque dur d’une VM sous VirtualBox (VDI)4 mars 2014
  • Blog

    • L’Écosse en une semaine6 mars 2020
    • NAS Thecus N25607 octobre 2014
    • QNAP inclut le chiffrement intégral du NAS basé sur la technologie de chiffrement de volume2 octobre 2014
    • HPC, la course à la puissance.4 juin 2014
    • YunoHost : Adieu Gmail, Drive, Dropbox, etc.19 mars 2014
  • Médias

    • Revue du web du 25/05/201325 mai 2013
    • Revue du web du 16/05/201316 mai 2013
    • Revue du web du 30/03/201330 mars 2013
    • Revue du web du 04/03/20134 mars 2013
    • freshnews #357 Samsung Galaxy Note III / Appels telephoniques sur Facebook Messenger / iPad detrone17 janvier 2013
  • A propos
  • Mentions legales
  • FAQ

Aurélien PIAT 2011~2020 - aurelienpi.at - Certains droits réservés : Creative Commons (France)