Requetes pl sql

De system.co.free.fr.

retour vers Oracle

Sommaire

liste des tables et vues

liste des tables et vues accessibles au user lançant la commande, vues dynamiques comprises:

select table_name from cat order by table_name;


Pour information les noms commençant par 'V_$' appartiennent (comme les autres) a SYS. Il existe des synonymes publics pour ces vues qui commence par un 'V$'. Elles sont surtout utiles pour la surveillance en temps réel du système ou pour faire du tuning.

Chaînes de caractères

SQL permet de codifier les chaînes de caracteres dans des formats ou chaque caractère est sur 2 octects ( ASCII, EBCDIC) ou sur 4 octets (Unicode).

  • VARCHAR2(n): Chaîne de caractères de longueur variable avec n entre 1 et 32767, mais une colonne de ce type ne peut excéder une longueur de 4000 caractères.
  • CHAR(n): Chaîne de caractère de longueur fixe définie a la création de la table, avec n entre 1 et 32767 mais une colonne de ce type ne peut excéder une longueur de 2000 caractères.


Pour les chaines dont le type commence par N comme nationaux la longueur en caractère dépend du nombre d'octets utilisé pour coder un caractère:

  • NVARCHAR2: Chaîne de caractères de longueur variable pour les jeux de caractères nationaux.D'une longueur de 32767 octets.
  • NCHAR: Chaîne de caractères de longueur fixe défini a la création pouvant atteindre 32767 octets.


Operateurs sur les chaines de caracteres

LIKE

effectue des recherches dans des chaînes de caractères.

  • % caractère générique qui remplace une chaîne de 0 a n caractères.
  • _ remplace un caractère quelconque, obligatoirement existant.

Exemples:

select NOM_PRODUIT, QUANTITE from PRODUITS where QUANTITE like '%bo_tes%kg%';


NOM_PRODUIT                              QUANTITE
---------------------------------------- -------------------------------------------
Konbu                                    1 boîtes (2 kg)
Alice Mutton                             20 boîtes (1 kg)



REGEXP_LIKE

REGEXP_LIKE(chaîne, chaîne_rationnelle [, parametre]):recherche d'une expression rationnelle (en anglais regular expression) dans une chaîne

  • chaine: chaine a traiter.
  • chaîne_rationnelle: chaine de la recherche par expression rationnelle.

Rappel succinct:

^ :début de ligne
$ :fin de ligne
? :l'élément précédent est facultatif ou apparaît 1 fois
* :l'élément précédent est facultatif ou apparaît plusieurs fois
. :remplace un caractère
+ :l'élément précédent apparaît au moins une fois
{n} :l’élément précédent doit apparaître n fois
{n,} :l’élément précédent doit apparaître n fois ou plus
{,n} :l’élément précédent doit apparaître au plus n fois
{n,m} :l’élément précédent doit apparaître entre n et m fois
[aef] :correspondance avec l'un des caractères situé entre les crochets
(chaîne):sous chaine
\:le caractère suivant est interprété littéralement.
  • parametre:
i : ignorer les differences majuscules et minuscules
c : respecter les differences majuscules et minuscules
x : ignorer les espaces dans la chaîne a traiter

Exemple:

select QUANTITE from PRODUITS where regexp_like (QUANTITE, '(carton|pièce|bouteille)','i');

QUANTITE
------------------------------
24 bouteilles (1 litre)
12 bouteilles (550 ml)
12 cartons (1 kg)
18 cartons (500 g)
1 carton (1 kg)
10 cartons (500 g)
10 boîtes x 12 pièces
24 cartons x 4 pièces



Fonctions sur les chaines de caracteres

Majuscule/Minuscule

  • LOWER(chaîne) = chaîne :converti les majuscules de chaîne en minuscules.Retourne la chaîne converti.
  • UPPER(chaîne) = chaîne :converti les minuscules de chaîne en minuscules.Retourne la chaîne converti.
  • INITCAP(chaîne) = chaîne :converti en majuscule la première lettre de chaque mot de la chaîne et toutes les autres lettres en minuscules.Sont considéré comme séparateur de mots tous les caractères qui ne sont pas des lettres.


Concatenation

  • CONCAT(chaîne1,chaîne2) = chaîne1+chaîne2 :concaténation de 2 chaînes.
  • chaîne1||chaîne2 = chaîne1+chaîne2 : concaténation de 2 chaînes.

Exemple:

Select concat(concat(NOM, ' '), PRENOM), NOM||' '||PRENOM from EMPLOYES;


Modification de la longueur

  • LPAD(chaîne1,long[,chaîne2]) = chaîne:complète ou tronque à gauche (left) a la longueur long de chaîne1.

chaîne1:chaîne a traiter
long: longueur de la chaîne après le traitement
chaîne2: motif du remplissage.
La fonction LPAD redimensionne la chaîne1 à la longueur long soit en tronquant chaîne1 soit en y ajoutant chaîne2 autant de fois que nécessaire.

  • RPAD(chaîne1,long[,chaîne2]) = chaîne:complète ou tronque à droite (right) a la longueur long de chaîne1.

chaîne1:chaîne a traiter
long: longueur de la chaîne après le traitement
chaîne2: motif du remplissage.Si non indiqué l'espace est utilisé.
La fonction LPAD redimensionne la chaîne1 à la longueur long soit en tronquant chaîne1 soit en y ajoutant chaîne2 autant de fois que nécessaire.

Outils personnels