L'instruction substr d'oracle permet d'extraire une sous-chaîne de caractères à partir d'une chaîne, selon la position des caractères.
-- supprimer les n-premiers caractères (n=12)
select substr('1er exemple de substr', 13) from dual;
=> 'de substr'
-- prendre les k caractères après n (n=4, ; k=7)
select substr('2nd exemple de substr', 5, 7) from dual;
=> 'exemple'
-- prendre les n-derniers caractères (n=17)
select substr('3eme exemple de substr', -17) from dual;
=> 'exemple de substr'
associé aux fonction instr et length, il est possible d'effectuer de nombreuses opérations sur les chaînes.
L'instruction instr permet d'identifier la position d'une sous-chaîne de caractère contenu dans une chaîne :
-- touver la position de "exemple"
select instr('voici un exemple de instr', 'exemple') from dual;
=> 10
-- supprimer la partie avant "exemple"
ou bien (en utilisant la fonction with :
select substr('voici un exemple de instr associé à substr', instr('voici un exemple de instr associé à substr', 'exemple')) from dual;
=> 'exemple de instr associé à substr'with ma_chain as (select 'voici un exemple de instr associé à substr' s from dual)
select substr(s,instr(s, 'exemple')) from ma_chain;
=> 'exemple de instr associé à substr'
-- supprimer la partie après "exemple"
with ma_chain as (select 'voici un autre exemple de instr associé à substr' s , 'exemple' t from dual)
select substr(s,1,instr(s,t)+length(t) ) from ma_chain;
=> 'voici un autre exemple'
Particularités :
substr(colA, 0, n) <==> substr(colA, 1, n)
substr(colA, 0) <==> substr(colA, 1) <==> colA
substr(colA,n, k) avec k >= length(colA)-n <==> substr(colA,n)
Voir également l'utilisation de la fonction decode.
Pour plus de facilité, rechercher dans le site :
ou
Insérer un CLOB par sql*Loader
Les directories : manipulation de fichiers
Le bind peeking
Les histogrammes associés aux statistiques
Les secrets de la fonction DECODE
Les triggers
Plans d'exécution stockés
Aperçu des transactions autonomes
CBO : les plans d'exécution selon la volumétrie cible
Reprise de données : exemples simples
Clés primaires et étrangères : mettre en place ses contraintes d'intégrité
L'instruction MERGE ou l'insertion choisie
DBlink : interroger une base distante
Pourquoi mon index n'est pas utilisé ?
Les index bitmap
Les bind variables pour les requêtes courantes
Injection et traitements de masse
Créer un index de fonction
Vidage de cache
Utilisation de rownum et rowid
Les exceptions SQL oracle
Des lignes aux colonnes, un PIVOT suffit pour la 11g ; DECODE en attendant
Migration de modèles avec vues et synonymes
La clause WITH à la rescousse des sous requêtes
Comparer l'exécution d'une requête avec 2 index différents
La table DUAL pour développer
Tablespaces, datafiles et filesystem, comprendre le stockage
Modifier des paramètres, arrêter et redémarrer une base oracle.
Comprendre à quoi sert le listener et test avec tnsping
Interaction shell Unix / sqlplus Oracle
Gérer l'auto-increment sous Oracle
Le dictionnaire de données : premiers pas
Les LOB pour contourner les limites de LONG
Hint oracle et choix du plan d'exécution
Les types SQL et les types PL
Migration des LOB dans un tablespace dédié
SQL générant du SQL
Industrialisation des scripts SQL
CREATE OR REPLACE ... oui mais pour les tables ?
Les vues
Migration des index dans un tablespace dédié
Les colonnes virtuelles en 11g
Monter des données dans le cache Oracle
Index
La jointure : sélection sur plusieurs tables
XML et Oracle
Les statistiques Oracle
Import avec les contraintes : ordonner les insert
Les tables partitionnées
Fonction Oracle à partir d'une procédure java
Exporter la structure d'une base
Améliorer les performances d'une vue
Les index B-tree
substr et opération sur les chaînes
Inscription à :
Messages (Atom)
Articles les plus consultés
Catégories
- bases (12)
- fonction (10)
- index (14)
- jointure (11)
- maintenance (6)
- migration (9)
- optimisation (19)
- paramétrage (9)
- PL_SQL (15)
- script SQL (12)
- sql*loader (1)
- sqlplus (6)
- tablespace (5)
- techniques (18)
- vue (5)