SQL - Borrar filas basadas es otras tablas

   
Vista:

Borrar filas basadas es otras tablas

Publicado por cesar cuncanchun (14 intervenciones) el 22/12/2013 04:26:11
Hola:
Debo borrar registros de una tabla basados en la union con otra tabla. Lo estoy haciendo en oracle y me sale error de sentencia. Esto es lo que tengo y no se donde pueda estar el error.

DELETE FROM SYSADM.PS_ITEM_ACTIVITY
FROM SYSADM.PS_ITEM_DST A INNER JOIN SYSADM.PS_ITEM_ACTIVITY B
ON B.BUSINESS_UNIT =A.BUSINESS_UNIT
AND B.CUST_ID=A.CUST_ID
AND B.ITEM=A.ITEM
AND B.ITEM_SEQ_NUM=A.ITEM_SEQ_NUM
WHERE A.BUSINESS_UNIT = 'AKBOL'
AND ACCOUNTING_DT = TO_DATE('2013-08-03','YYYY-MM-DD')
AND GL_DISTRIB_STATUS = 'N'
AND ITEM='08150005004970-09'

Gracias por la atencion prestada.
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

Borrar filas basadas es otras tablas

Publicado por leonardo_josue (877 intervenciones) el 13/01/2014 15:46:13
Hola cesar cuncanchun:

El error puede estar en que no has puesto atención a cómo es la sintaxis para el DELETE utilizando varias tablas y tienes un error de sintaxis bastante claro;

Del manual de referencia de ORACLE:

1
2
3
4
5
6
7
8
9
10
11
12
Multiple-table syntax:
 
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    tbl_name[.*] [, tbl_name[.*]] ...
    FROM table_references
    [WHERE where_condition]
Or:
 
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*]] ...
    USING table_references
    [WHERE where_condition]

o revisando en ejemplo que ponen:

1
2
3
4
5
6
DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;
Or:
 
DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;

Observa en ambos casos ¿Cuántas veces aparece la palabra FROM?, El error es bastante claro, bueno, no tanto dado que no te diste cuenta por ti mismo.

Además de este error de sintaxis, puede haber otro tipo de errores relacionados con la información. Lamentablemente no nos pones el código de error que te está apareciendo, y por lo tanto resulta imposible darte una respuesta puntual. Arregla este detalle y trata de ejecutar la consulta, si continuas con problemas POSTEA EL CÓDIGO DE ERROR, no nos digas simplemente que la sentencia te marca uno, y si es posible poste algunos datos de ejemplo para hacer pruebas.

Saludos
Leo.
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