Dba errors

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic
Domaine Administration (objets invalides)
Voir aussi Dba compare schemas · Dba column constraints

Dba_errors liste toutes les erreurs de compilation des objets procéduraux du schéma connecté (procédures, fonctions, packages, corps de package, triggers, vues), à partir de la vue DBA_ERRORS.

C'est le réflexe de base après un déploiement PL/SQL ou une opération DDL en masse : un objet en statut INVALID ne donne pas toujours une erreur lisible ailleurs, alors que DBA_ERRORS détaille précisément la ligne et la position fautives.

Script

SET TERMOUT OFF
COLUMN current_instance NEW_VALUE current_instance NOPRINT
SELECT RPAD(instance_name, 17) current_instance FROM v$instance;
SET TERMOUT ON

PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Rapport   : Erreurs sur objets procéduraux (PL/SQL, vues, triggers...) |
PROMPT | Instance  : &current_instance                                         |
PROMPT +------------------------------------------------------------------------+

SET ECHO      OFF
SET FEEDBACK  6
SET HEADING   ON
SET LINESIZE  180
SET PAGESIZE  50000
SET VERIFY    OFF

CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES

COLUMN type     FORMAT a15     HEADING 'Type objet'
COLUMN owner    FORMAT a17     HEADING 'Schéma'
COLUMN name     FORMAT a30     HEADING 'Nom objet'
COLUMN sequence FORMAT 999,999 HEADING 'Séquence'
COLUMN line     FORMAT 999,999 HEADING 'Ligne'
COLUMN position FORMAT 999,999 HEADING 'Position'
COLUMN text                    HEADING 'Texte erreur'

SELECT
    type
  , owner
  , name
  , sequence
  , line
  , position
  , text
FROM
    dba_errors
ORDER BY
    1, 2, 3
/

Le script d'origine construisait la colonne texte via text || chr(10) || chr(10) text, ce qui est syntaxiquement invalide (alias répété sans virgule) — corrigé ci-dessus en une simple sélection de text.

Colonnes / sortie

  • Séquence : ordre des lignes d'erreur pour un même objet, quand une erreur en ligne 1 signale plusieurs sous-erreurs (utile pour les remonter dans l'ordre).
  • Ligne / Position : coordonnées exactes de l'erreur dans le source de l'objet — à croiser avec DBA_SOURCE pour retrouver la ligne fautive.

Voir aussi