Oracle - Delete solo del primer reg q cumpla una condicion

 
Vista:

Delete solo del primer reg q cumpla una condicion

Publicado por IDOIA (43 intervenciones) el 09/03/2004 12:55:02
Hola a todos,
Ahora tengo en un Forms una delete condicionada, pero es posible q varios registros cumplan la condición , entonces me borra todos los registros q cumplen la condición. Yo necesito , q solamente me borre solo uno, (el primero q encuentre o cualquiera). He ptobado poniendo DELETE FIRST, pero me da error en el trigger 'excepción ORA-00933 no tratada' tambien he probado poniendole 'limit 1' al final de la sentencia sql, pero me da el mismo error. Me gustaría poder hacerlo sin tener q crear una clave más en la tabla. Podeís ayudarme???
Muchas Gracias,
IDOIA
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:Delete solo del primer reg q cumpla una condici

Publicado por Mikel (14 intervenciones) el 09/03/2004 18:58:00
En principio en Oracle no existe manera de distinguir las distintas filas que cumplan una condición. En otros motores de BD si existe esa posiblidad pero en Oracle no.

Si no quieres modificar las tablas o las claves yo personalmente haría un cursor con las filas que cumplan la condición y me quedaría con los datos que identifiquen a una fila para ejecutar el DELETE con los datos de la fila que has seleccionado.

De todas formas, tal vez te sea conveniente modificar las tablas y/o las claves ya que cuando las tablas no tienen una clave que las identifique univocamente suelen surgir muchos problemas.

Si tienes alguna duda o quieres alguna aclaración más concreta puedes mandarme un correillo y vere si te puedo ayudar ...

Donostiatik agurrak ...

Mikel
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:Delete solo del primer reg q cumpla una condici

Publicado por rodrigo (75 intervenciones) el 09/03/2004 19:04:44
delete from personas where id_persona= 10 and rownum < 2
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