Oracle - Error ora-00001

 
Vista:

Error ora-00001

Publicado por goya (89 intervenciones) el 14/04/2007 20:12:12
Cordial Saludo:

Tengo un boton en un formulario, resulta que ese boton hace las sigueinte instruccion:

insert into tabla1
(TIPO_CONTEO, CONSEC_CRUCE ,NRO_CLIENTE ,NRO_REFERENCIA ,
NRO_UBICACION, UNIDAD, LOTE, FECHA_VENCE, CANTIDAD)
select DISTINCT
:conteo_inventario.tipo_conteo, :conteo_inventario.CONSEC_CRUCE ,NRO_CLIENTE ,NRO_REFERENCIA ,
NRO_UBICACION, UNIDAD, LOTE, FECHA_VENCE, 0
from det_inventario_teorico t
where nro_cliente = :cruce_inventario.nro_cliente
and consec_cruce = :cruce_inventario.consec_cruce
and not exists (select 'x'
from det_conteo_inventario d
where d.consec_cruce = :cruce_inventario.consec_cruce
and d.tipo_conteo = :conteo_inventario.tipo_conteo
and d.nro_referencia = t.nro_referencia
and d.nro_cliente = t.nro_cliente
and d.nro_ubicacion = t.nro_ubicacion
and d.unidad = t.unidad
and nvl(d.fecha_vence,to_date('01/01/1900','dd/mm/yyyy')) = nvl(t.fecha_vence,to_date('01/01/1900','dd/mm/yyyy'))
and d.lote = t.lote);

Aunque se va a insertar de un select distinct no hay datos repetidos pero me muestra el error ora-00001 y mire y dice Se intentó añadir una fila que provoca que un índice único repita valores. No se que hacer al respecto.

A quien me pueda colaborar muchas grcias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error ora-00001

Publicado por Rodolfo Reyes (445 intervenciones) el 18/04/2007 21:56:24
El select distinct, solo te no se repetiran registros. Pero puede ser que en tu tabla ya existe uno de estos registros.

Por ejemplo

manda ha insertar 1,2,3
4,5,6
7,8,9

Son tres registros totalmente diferentes, pero si en tu tabla ya existe el registro

7,8,9. entonces saldra el ora000001, lo cual indica que estas violando una llave primaria.

Lo que puedes hacer es agregar un NOT EXISTS al query, para garantizar que el registro no existe ya en la tabla TABLA1.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error ora-00001

Publicado por jorge (2 intervenciones) el 01/06/2010 17:41:05
Hola! buenos dias
no se como agregar el not exists que señalas dentro del query, me podrias decir porfavor como inplementarlo, ya sea por medio de un ejemplo muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error ora-00001

Publicado por jorge (2 intervenciones) el 01/06/2010 17:41:34
Hola! buenos dias
no se como agregar el not exists que señalas dentro del query, me podrias decir porfavor como inplementarlo, ya sea por medio de un ejemplo muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error ora-00001

Publicado por Carlos Marchena (1 intervención) el 15/08/2007 16:02:31
Sencillamente tuvistes un error de violacion de una llave unica es decir cuando intentas actualizar el registro este no te lo va a permitir porque estas generando un registro con la misma llave, por tanto te lanza ese error, la solucion q te propongo es q elimines ese registro y lo ingreses nuevamente ya con los datos actualizados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error ora-00001

Publicado por Juan Guillermo Niño (1 intervención) el 31/08/2007 22:36:52
Talvez no se esta generando la violacion en la tabla sobre la cual estas realizando el Insert, sino que en cambio puede que esta tabla tenga un Trigger sobre otra tabla y ahi sea donde se este generando el error, sule suceder....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error ora-00001

Publicado por Lucas (1 intervención) el 17/07/2008 16:09:49
Hola, fijate en el scrip de la tabla que seguramente hay un unic index generado. ejemplo:

en la tabla Agenda como se ve hay un UNIQUE INDEX de varios campos

CREATE UNIQUE INDEX TVFIE ON AGENDAS
(TURNOID, VISITATECNICASUBTIPOID, FECHA, ITEM, ESTADO)

entonces deberias buscar los datos repetidos y la forma de ayarlo en este caso seria:

select ds.AGENDAID as auxAgID, ds.FECHA, ds.TURNOID,
ds.ESTADO
from agendas ag, agendas ds
where
ag.VISITATECNICASUBTIPOID = ds.VISITATECNICASUBTIPOID
and ag.FECHA = ds.FECHA
and ag.ITEM = ds.ITEM
and ag.TURNOID = ds.TURNOID
and ag.AGENDAID <> ds.AGENDAID

esto devolvera los registros duplicados.
luego debes eliminarlos lo cual te lo dejo para que lo hagas tú.

esto es una idea que posiblemmente te sollucionara, pero si no es asi la mejor manera de ver lo que es cierto es mirando el script de la tabla y ver todas las restricciones que tiene dicha tabla

saludos Lucas Rodriguez.
Programador de sistemas .Net
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar