Table des matières
- Description dans la base de données Oracle
- Explication de l'erreur ORA-06512 :
- Raisons de l'erreur ORA-06512 :
- Exemples d'ORA-06512 :
Description dans la base de données Oracle
ORA-06512 dans oracle est l'une des erreurs courantes rencontrées dans les programmes PLSQL dans la base de données Oracle
Voici ce que dit la documentation Oracle à propos de cette erreur
Référence :Documentation Oracle
Vous pouvez toujours le trouver en tapant ci-dessous sous Unix
oerr ORA 06512
Explication de l'erreur ORA-06512 :
Erreur ORA-06512 signifie le message de backtrace lorsque la pile est déroulée par des exceptions non gérées dans votre code PLSQL. Il s'agit d'une erreur fourre-tout pour toutes les exceptions PLSQL et elle est courante.
ORA 6512 n'indique pas l'erreur réelle, mais le numéro de ligne de l'erreur non gérée dans le code PLSQL. ORA-6512 apparaîtra généralement dans une pile de messages dans laquelle le message précédent nomme la raison de l'erreur, comme dans l'exemple suivant :
ORA-06502 :PL/SQL :erreur numérique ou de valeur ORA-06512 :à la ligne 1112
Dans ce qui précède, l'erreur surlignée en jaune est l'erreur principale
Raisons de l'erreur ORA-06512 :
Les options pour résoudre cette erreur Oracle sont :
1) Corrigez la condition à l'origine de l'erreur non gérée.
2) Écrivez un gestionnaire d'exceptions pour cette erreur non gérée.
3) Contactez votre administrateur de base de données Oracle pour obtenir de l'aide.
Exemples d'ORA-06512 :
Voyons quelques exemples sur la façon de travailler dessus
CREATE OR REPLACE PROCEDURE Testora_procASSite_name varchar2(5);beginsite_name :='techgoeasy.com';end;/Procedure created.sql> Exec Testora_procERROR à la ligne 1 :ORA-06502 : PL/SQL :erreur numérique ou de valeur :caractère tampon de chaîne trop petitORA-06512 :à la ligne 5
Dans l'exemple ci-dessus, la procédure a été compilée avec succès mais elle a donné des erreurs lors de l'exécution
Donc l'erreur réelle est l'erreur
ORA-06502 :PL/SQL :erreur numérique ou de valeur :tampon de chaîne de caractères trop petit
On peut facilement le corriger en augmentant la taille de la variable
CRÉER OU REMPLACER LA PROCÉDURE Testora_procASSite_name varchar2(20);beginsite_name :='techgoeasy.com';end;/Procedure created.SQL> La procédure Exec TestoraprocPL/SQL s'est terminée avec succès.
Nous pouvons également résoudre ce problème en utilisant le gestionnaire d'exceptions
CRÉER OU REMPLACER LA PROCÉDURE Testora_procASSite_name varchar2(5);beginsite_name :='techgoeasy.com';EXCEPTIONWHEN OTHERS THENsite_name :='tech';end;/Procedure created.SQL>Exec Testoraproc;Procédure PL/SQL terminée avec succès.Un autre exemple serait
CRÉER OU REMPLACER LA PROCÉDURE Testora_procASnode_name varchar2(5);beginselect node into node_name from db_node;end;/Procedure createdSQL> Exec Testora_proc;ORA-01422 :la récupération exacte renvoie plus que le nombre de lignes demandé ORA-06512 :à "NODE_NAME", ligne 4ORA-06512 :à la ligne 1Ici, ORA-01422 est la véritable erreur. nous avons plus d'une ligne dans la table db_node et obtenons plusieurs valeurs pour node.Ainsi, un correctif pourrait restreindre une ligne
CRÉER OU REMPLACER LA PROCÉDURE Testora_procASnode_name varchar2(5);beginselect node into node_name from db_node where rownum <2;end;/Procedure createdSQL> Exec Testora_proc;Procédure PL/SQL terminée avec succès.Un autre exemple serait
CRÉER OU REMPLACER LA PROCÉDURE Testora_procASnode_name varchar2(5);beginselect node into node_name from db_node;end;/Procedure createdSQL> Exec Testora_proc;ORA-01403 :aucune donnée trouvée ORA-06512 :à "NODE_NAME", ligne 4ORA-06512 :à la ligne 1Ici, ORA-01403 est la véritable erreur. nous n'avons pas de lignes dans la table oracle db_node et nous n'obtenons aucune erreur de données trouvées. Donc, un correctif pourrait être de mettre la gestion des exceptions
CRÉER OU REMPLACER LA PROCÉDURE Testora_procASnode_name varchar2(5);beginselect node into node_name from db_node where rownum <2;EXCEPTION WHEN NO_DATA_FOUND THEN node_name :='tech'; finir; /Procedure createdSQL> Exec Testora_proc;Procédure PL/SQL terminée avec succès.D'autres exemples peuvent être sur SYS.UTL_FILE
SQL> declareF_LOG utl_file.file_type;beginF_LOG :=utl_file.fopen('TESTDIR','k', 'w');end;/ 2 3 4 5 6declare*ERROR à la ligne 1 :ORA-29283 :opération de fichier invalide ORA-06512 :à "SYS.UTL_FILE", ligne 536ORA-29283 :opération de fichier invalideORA-06512 :à la ligne 4Ici, l'erreur principale est ORA-29283. Vérifiez la solution en cliquant sur le lien
J'espère que vous aimez ce post sur ORA-6512 Message d'erreur
Articles connexes
ORA-00911
ORA-03113
ORA-00257
ORA-27154
ORA-29913
ORA-20001 dans Gather schema stats on 11g(FND_HISTOGRAM_COLS )