Les partenaires publicitaires:

Qu'est-ce que Oracle SQL code 955?

Oracle PL / SQL code d'erreur 955, aussi connu comme l'erreur ORA-00955, se produit lorsqu'un utilisateur crée un objet dans la base de données avec un nom déjà utilisé par un objet existant, comme une table, vue, index, synonyme ou cluster. Donner l'objet d'un autre nom résout habituellement l'erreur.

Afficher un message

  • Un utilisateur crée un objet sur la / SQL ligne de commande Oracle PL avec un certain nom et voit le message "ORA-00955 nom est déjà utilisé par un objet existant" affiché sur l'écran.

Causes

  • Le message d'erreur peut se produire lorsqu'un utilisateur installe une mise à jour, exécute un script / SQL Oracle PL qui tombe ou qui crée des tables ou des index ou utilise un mot réservé pour un objet défini par le système. Habituellement, l'utilisateur aura tenté de créer un objet avec un nom déjà attribué à un objet existant dans la base de données.

Solution

  • Les utilisateurs sont invités à sélectionner un autre nom ou l'objet ou à modifier et renommer un objet existant pour permettre l'utilisation du nom prévu. Interroger les DBA_OBJECTS table système ou USER_OBJECTS de confirmer si un autre utilisateur a le nom en cours d'utilisation.




    Jetez également un alias et synonymes publics pour le nom existant, en utilisant les instructions suivantes:

    SELECT *
    DE ALL_OBJECTS
    OÙ ObjectName = "NOM"-

    Le tableau ALL_OBJECTS contient la liste de tous les objets accessibles à l'utilisateur disponibles pour l'identifiant de connexion spécifique. Pour réutiliser un nom, déposer tous les objets indésirables avec le même nom.

Contourner le erreur utilisant un gestionnaire d'exception

  • Les utilisateurs peuvent contourner ORA-00955 en créant un gestionnaire d'exception qui ignore l'erreur de création d'objet. Créer un morceau de code PL / SQL qui intercepte l'erreur et l'erreur affecte une "NUL" état:

    DECLARE
    MyNamedTableExists exceptionnellement
    pragma exception_init (MyNamedTableExists, -955) -
    SQL_stmt varchar2 (50): = 'create table tempstore (nombre col1)' -
    COMMENCER
    / exécuter sql_stmt- immédiate /
    CREATE TABLE AS de MyNamedTableExists
    SELECT DE MySupposedTable-
    /
    + Ignorer Ora-955 erreurs si le nom de la table existe déjà) * /
    Exception lorsque MyNamedTableExists puis null-
    FIN-

» » » » Qu'est-ce que Oracle SQL code 955?