2017-10-19 19 views
-2

je tente de créer le paquet:Erreur: ORA-00955: le nom est déjà utilisé par un objet existant. Ensuite, je crée package

CREATE OR REPLACE PACKAGE CARS AS 
    TYPE REFCURSOR IS REF CURSOR; 
    TYPE car_arr IS TABLE OF my_cars%ROWTYPE; 
    PROCEDURE getAllCars(cars OUT REFCURSOR); 
    FUNCTION getCarById(id IN VARCHAR2) RETURN REFCURSOR; 
END CARS; 

je reçois: Erreur: ORA-00955: nom est déjà utilisé par un objet existant.

Comment le résoudre?

+1

Vérifiez si l'objet nommé 'CARS' existe dans le schéma utilisateur actuel: SELECT propriétaire, nom_objet, type_objet FROM all_objets WHERE nom_objet = 'CARS'; –

+1

Le message d'erreur est assez clair – GurV

+0

@ Mighty.Moogle OWNER: mon utilisateur, OBJECT_NAME: CARS –

Répondre

1

Les noms d'objet sont uniques dans un schéma. Si nous avons (disons) une table appelée "CARS" nous ne pouvons pas avoir aussi un paquet appelé "CARS".

Error: ORA-00955: name is already used by an existing object.

Il est donc clair que vous avez déjà créé un objet appelé "CARS". Si vous avez oublié ce que l'objet est, exécutez

select * from user_objects 
where object_name = 'CARS'; 

La colonne object_type vous dira quel type d'objet que vous avez déjà avec ce nom. Vous avez trois choix:

  1. donner le package un nom différent
  2. drop l'objet existant
  3. renommer l'objet existant

La première option semble plus facile mais YMMV.