Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. SQL
  3. Les erreurs les plus couramment rencontrées
Extrait - SQL Les fondamentaux du langage (avec exercices et corrigés) - (5e édition)
Extraits du livre
SQL Les fondamentaux du langage (avec exercices et corrigés) - (5e édition)
1 avis
Revenir à la page d'achat du livre

Les erreurs les plus couramment rencontrées

Introduction

Les erreurs Oracle d’accès aux données sont au format ORA-nnnnn. Il en existe plusieurs milliers. Dans ce chapitre seront évoquées quelques erreurs les plus couramment rencontrées.

D’autres erreurs Oracle existent et sont classées par types de demande. Par exemple, les erreurs spécifiques au PL/SQL seront notées PLS-nnnnn, les erreurs liées aux sauvegardes seront notées RMAN-nnnnn, les erreurs de chargement avec SQL*Loader seront notées SQL*LOADERnnnnn, etc.

Vous trouverez sur Internet des sites répertoriant l’ensemble des erreurs existantes. En voici quelques-uns :

Sur les accès aux données (LDD/LMD)

Code de l’anomalie

Message Oracle

Cause de l’anomalie

Solution

ORA-00001

unique constraint (string.string) violated

Un UPDATE ou un INSERT provoque une clé dupliquée.

Supprimez la contrainte UNIQUE sur la clé, ou corrigez l’INSERT ou l’UPDATE.

ORA-00051

timeout occurred while waiting for a resource

Dépassement de délai lors du lancement d’une commande. Une ligne dans une table est réservée par un autre utilisateur et, passé un certain délai d’attente, Oracle ramène cette erreur.

Relancez la commande plus tard.

ORA-00054

resource busy and acquire with NOWAIT specified

La table ou les lignes auxquelles on souhaite accéder sont réservées (lockées - vocabulaire informatique) par un autre utilisateur et le paramètre NOWAIT est activé. Cela signifie que Oracle n’attend pas dans ce cas.

Réessayez la commande après avoir attendu quelques minutes ou enlevez le paramètre NOWAIT pour qu’Oracle attende la libération de la ressource.

ORA-00060

deadlock detected while waiting for resource

Vous essayez de mettre à jour une ligne qui est également mise à jour par une autre session utilisateur. 

Il faut que l’une ou l’autre des sessions réalise un ROLLBACK ou un COMMIT pour libérer la ressource.

ORA-00100

no data found

Aucune ligne n’est ramenée par le SELECT demandé.

Vérifiez la clause WHERE et les données de la table.

ORA-00900

invalid SQL statement

La syntaxe de votre requête ou de votre procédure stockée n’est pas correcte.

Corrigez la syntaxe, vérifiez notamment le format des dates, par rapport à la variable NLS_DATE_FORMAT déclarée dans la base.

ORA-00900

to ORA-01499 3-7statement. ORDER BY cannot be used to create an ordered view or to insert in acertain order.

L’ordre SQL ORDER BY n’est pas possible avec un CREATE VIEW or INSERT.

Vérifiez la syntaxe de l’ordre demandé.

ORA-00901

invalid CREATE command

La commande CREATE n’a pas la bonne syntaxe.

Corrigez la syntaxe.

ORA-00902

invalid datatype

Lors de la création ou de la modification d’une table, vous n’avez pas utilisé un type de colonne Oracle connu.

Vérifiez les formats attribués...

Sur les transactions et les sessions (TCL/DCL)

Code de l’anomalie

Message Oracle

Cause de l’anomalie

Solution

ORA-00018

maximum number of sessions exceeded

Dépassement du nombre de sessions possibles.

Augmentez la valeur du nombre de sessions maximum : paramètre SESSIONS ALTER system SET SESSIONS=250 scope=spfile;

ORA-00019

maximum number of session licenses exceeded

Toutes les licences sont utilisées.

Augmentez la valeur du nombre de sessions maximum : paramètre LICENSE_ MAX_SESSIONS.

ORA-00021

session attached to some other processcannot switch session

Une session utilisateur est utilisée par un autre utilisateur.

Contrôlez les sessions actives.

ORA-00022

invalid session ID- access denied

La session n’existe pas ou vous n’avez pas les droits pour l’utiliser.

Utilisez une session valide ou vérifiez les droits utilisateurs.

ORA-00025

failed to allocate string

Manque de mémoire pour une chaîne de caractères.

Augmentez la taille mémoire de la SGA.

ORA-00026

missing or invalid session ID

La commande ALTER SYSTEM KILL SESSION indique que l’ID n’existe pas ou n’est pas présent.

Relancez la commande avec un ID valide.

ORA-00027

cannot kill current session

Impossible de tuer la session courante.

Utilisez un autre utilisateur pour tuer la session souhaitée.

ORA-00028

your session has been killed

Votre session a été tuée par un autre utilisateur. 

Reconnectez-vous.

ORA-00029

session is not a user...

Sur les composants internes (mémoire, système)

Code de l’anomalie

Message Oracle

Cause de l’anomalie

Solution

ORA-00058

DB_BLOCK_SIZE must be string to mount this database (not string)

La valeur indiquée pour le paramètre DB_BLOCK_SIZE lors du démarrage de la base n’est pas celui qui a servi lors de la création de la base.

Corrigez le paramètre DB_BLOCK_SIZE.

ORA-00059

maximum number of DB_FILES exceeded

Le nombre de fichiers physiques maximum (DB_FILES) contenant les données de la base est dépassé.

Incrémentez le paramètre DB_FILES et redémarrez la base.

ORA-00063

maximum number of LOG_FILES exceeded

Le nombre de fichiers journaux (log) maximum est dépassé.

Incrémentez le paramètre LOG_FILES.

ORA-00065

initialization of FIXED_DATE failed

La variable FIXED_DATE qui est la date système Oracle n’est pas au format date (yyyy-mm-dd:hh24:mi:ss).

Modifiez le paramètre pour le mettre au bon format et relancez la base.

ORA-00483

During shutdown a process abnormally terminated

Lors de l’arrêt de la base, un processus s’est mal terminé.

Vérifiez les logs pour détecter quel processus est concerné.