Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Error "Nombre ya usado"

Estas en el tema de Error "Nombre ya usado" en el foro de Oracle en Foros del Web. Hola, tengo un extraño fallo a ver si me pueden echar una mano, les cuento: Tengo varias tablas, pero donde da el fallo es el ...
  #1 (permalink)  
Antiguo 15/09/2010, 09:23
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 15 años, 5 meses
Puntos: 0
Sonrisa Error "Nombre ya usado"

Hola, tengo un extraño fallo a ver si me pueden echar una mano, les cuento:

Tengo varias tablas, pero donde da el fallo es el siguiente:

Tabla Clientes tiene clave primaria DNI.
Tabla OrdenCompra tiene clave primaria IdOrden y clave foránea RefCliente (Referencia a la tabla clientes).

Cuando ejecuto el script en Oracle una vez todo sale bien. Si lo ejecuto otra vez salen los siguientes errores:

CREATE TABLE Clientes OF Cliente_TipoObjeto
error: este nombre ya lo está utilizando otro objeto existente

FOREIGN KEY (RefCliente) REFERENCES Cliente
error: La tabla o vista no existe
error: table "SYSTEM.CLIENTE" tiene errores


Si lo vuelvo a ejecutar vuelve a salir bien, a la siguiente mal... y así sucesivamente, una vez bien y otra mal.


Estoy muy liado porque no se que le pasa, a ver si alguien me puede dar una idea.

Muchas Gracias
  #2 (permalink)  
Antiguo 16/09/2010, 06:35
Usuario no validado
 
Fecha de Ingreso: septiembre-2010
Ubicación: cali
Mensajes: 16
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Error "Nombre ya usado"

hola.

A mi una vez me paso lo mismo, pero era porque no tenia bien definidas las llaves, lo que yo hise fue empezar de nuevo a crear las tablas y las relaciones porque en ese momento no sabia en donde estaba el error.

asi que puedes empezar por revisar tus llaves y tus relaciones.
  #3 (permalink)  
Antiguo 16/09/2010, 07:57
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error "Nombre ya usado"

Las llaves lo he revisado pero las tengo bien. Mis dos objetos y tablas que fallan son estos:

CREATE TYPE Cliente_TipoObjeto AS OBJECT (
DNI INTEGER,
Universitario VARCHAR2(2),
Direccion Direccion_TipoObjeto,
Fecha_Nac VARCHAR2(10),
Telefono INTEGER,
Datos_Per DatosPer_TipoObjeto);
/

CREATE TYPE OrdenCompra_TipoObjeto AS OBJECT (
IdCompra NUMBER,
RefCliente REF Cliente_TipoObjeto,
LineaCompra_Anidada LineaCompra_TipoAnidada);
/

Tablas:

CREATE TABLE Cliente OF Cliente_TipoObjeto
(DNI PRIMARY KEY)
/

CREATE TABLE OrdenCompra OF OrdenCompra_TipoObjeto
(IdCompra PRIMARY KEY,
FOREIGN KEY (RefCliente) REFERENCES Cliente)
NESTED TABLE LineaCompra_Anidada STORE AS TA_Compra
((PRIMARY KEY (NESTED_TABLE_ID, IdLineaCompra)))
/


A ver si alguien me dice donde puede estar el fallo.
  #4 (permalink)  
Antiguo 16/09/2010, 08:11
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Error "Nombre ya usado"

juanxml todo puede deberse al orden que manejas en el script para la creación y borrado de los objetos. Como es el script?

Noto que cuando creas Cliente_TipoObjeto la variable datos_per a su vez invoca otro tipo llamado DatosPer_TipoObjeto.

Como no conocemos el script en su totalidad, no te sabría decir donde está el fallo exactamente. Mira como te dije, el orden de creación de los objetos.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 16/09/2010, 08:28
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error "Nombre ya usado"

Gracias por las respuestas.

Encontré el fallo tras comerme la cabeza, no estaba en el orden de creación, sino en el orden de eliminación.

Hacía el drop de una tabla que tenía un atributo que era clave foránea de otra antes que el drop de esa tabla, entonces no la podía eliminar ya que sus atributos estaban siendo usados.

Gracias por la ayuda ;)

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:48.