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

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"
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'
ou bien (en utilisant la fonction with : 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.

[ ... ] Lire la suite

Catégories