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

Auteur: John Pratt
Date De Création: 13 Janvier 2021
Date De Mise À Jour: 1 Juillet 2024
Anonim
Qu'est-ce que le code SQL Oracle 955? - Des Articles
Qu'est-ce que le code SQL Oracle 955? - Des Articles

Contenu

L'erreur Oracle PL / SQL 955, mieux connue sous le nom de ORA-00955, se produit lorsqu'un utilisateur crée un objet dans la base de données avec un nom utilisé par un objet déjà existant, tel qu'une table, une vue, un index, un synonyme ou un groupe. Donner à l'objet un nom différent résout l'erreur.


ORA-00955 est une erreur d'exception qui se produit avec un nom déjà attribué à un autre objet. (Justin Sullivan / Getty Images / Getty Images)

Message d'erreur

Un utilisateur crée un objet sur la ligne de commande Oracle PL / SQL avec un certain nom et reçoit le message "Le nom ORA-00955 est déjà utilisé par un objet existant".

Les causes

Le message d'erreur peut survenir lorsqu'un utilisateur installe une mise à jour, exécute un script dans Oracle PL / SQL qui efface ou crée des tables ou des index, ou utilise un mot réservé à un objet défini par le système. Généralement, l'utilisateur tentera de créer un objet avec le nom déjà attribué à un autre objet de la base de données.


La solution

Il est conseillé aux utilisateurs de sélectionner un autre nom ou objet, ou de modifier et renommer un objet existant afin de permettre l'utilisation du nom souhaité. Voir DBA_OBJECTS ou USER_OBJECTS pour vérifier si un autre utilisateur porte le nom en cours d'utilisation.

Vérifiez également les surnoms et les synonymes publics pour le nom existant, à l'aide de l'instruction suivante:

SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";

La table ALL_OBJECTS contient la liste de tous les objets accessibles à l'utilisateur disponibles pour l'ID de connexion spécifique. Pour réutiliser un nom, supprimez tous les objets indésirables portant le même nom.

Ignorer l'erreur en utilisant la gestion des exceptions

Les utilisateurs peuvent contourner ORA-00955 en créant un gestionnaire d'exceptions qui ignore l'erreur de création d'objet. Créez un code PL / SQL qui gérera l'erreur et affectera "NULL" à son statut:


DECLARE MyNamedTableExists EXCEPTION; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'créer une table de stockage temporaire (numéro col1)'; COMMENCE / exécuter immédiatement sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Ignore les erreurs ORA-955 si le nom de la table existe déjà) / EXCEPTION lorsque MyNamedTableExists then NULL; FIN;