SQL命令未以DELETE transsaction正确结束
我有三张桌子 通量公式 焊剂配方 焊剂配方标签等SQL命令未以DELETE transsaction正确结束,sql,oracle,stored-procedures,sql-delete,Sql,Oracle,Stored Procedures,Sql Delete,我有三张桌子 通量公式 焊剂配方 焊剂配方标签等 ID NUMBER(38,0) FRM_ID NUMBER(38,0) -- FLUX_ISU_FORMULE ID FCL_ID NUMBER(38,0) -- FLUX_ISU_FORMULE_CL ID CADRAN NUMBER(38,0) EQU_CODE NUMBER(38,0) COEFFICIENT NUMBER(38,0) 我必须根据表的管理规则从表中删除数据: 卡德兰═ 1或4其他表被删除,没有错误消息。 类型
ID NUMBER(38,0)
FRM_ID NUMBER(38,0) -- FLUX_ISU_FORMULE ID
FCL_ID NUMBER(38,0) -- FLUX_ISU_FORMULE_CL ID
CADRAN NUMBER(38,0)
EQU_CODE NUMBER(38,0)
COEFFICIENT NUMBER(38,0)
我必须根据表的管理规则从表中删除数据:
卡德兰═ 1或4其他表被删除,没有错误消息。
类型_ENERGIE以EA开头,EA应接受大写和小写,其他类型的能源未集成,其他类型的能源已删除,没有错误消息
我这样做
DELETE
FROM FLUX_ISU_FORMULE
INNER JOIN FLUX_ISU_FORMULE_CL
ON FLUX_ISU_FORMULE.ID = FLUX_ISU_FORMULE_CL.FRM_ID
INNER JOIN FLUX_ISU_FORMULE_TAB_EQU
ON FLUX_ISU_FORMULE_CL.FRM_ID = FLUX_ISU_FORMULE_TAB_EQU.FRM_ID
AND FLUX_ISU_FORMULE_CL.ID = FLUX_ISU_FORMULE_TAB_EQU.FCL_ID
WHERE lower(FLUX_ISU_FORMULE.type_energie) NOT LIKE 'ea%'
AND (FLUX_ISU_FORMULE_TAB_EQU.CADRAN <> 1 AND FLUX_ISU_FORMULE_TAB_EQU.CADRAN <> 4);
我有一个错误:
命令的一致性:2,科隆:21
错误SQL:ORA-00933:la命令SQL ne se termine pas纠正
93300000-SQL命令未正确结束
*原因:
*行动:
Oracle不支持手册中明确记录的DELETE语句的JOIN
您需要使用相关的子选择来重写它。Oracle不支持DELETE语句的JOIN,该语句在手册中有明确的说明
DELETE FROM FLUX_ISU_FORMULE WHERE
(FLUX_ISU_FORMULE.ID) IN
(SELECT FLUX_ISU_FORMULE.ID
FROM FLUX_ISU_FORMULE
INNER JOIN FLUX_ISU_FORMULE_CL
ON FLUX_ISU_FORMULE.ID = FLUX_ISU_FORMULE_CL.FRM_ID
INNER JOIN FLUX_ISU_FORMULE_TAB_EQU
ON FLUX_ISU_FORMULE_CL.FRM_ID = FLUX_ISU_FORMULE_TAB_EQU.FRM_ID
AND FLUX_ISU_FORMULE_CL.ID = FLUX_ISU_FORMULE_TAB_EQU.FCL_ID
WHERE lower(FLUX_ISU_FORMULE.type_energie) NOT LIKE 'ea%'
AND (FLUX_ISU_FORMULE_TAB_EQU.CADRAN <> 1 AND FLUX_ISU_FORMULE_TAB_EQU.CADRAN <> 4));
COMMIT;
您需要使用相关的子选项重写它。好的,如何使用查询生成器生成删除语句?@Mercer:我不知道查询生成器是什么。你应该在论坛上向该生成器询问如何告诉它生成有效的Oracle语法。好的,如何使用查询生成器生成删除语句?@Mercer:我不知道该查询生成器是什么。您应该在论坛中询问构建器如何告诉它生成有效的Oracle语法。
DELETE FROM FLUX_ISU_FORMULE WHERE
(FLUX_ISU_FORMULE.ID) IN
(SELECT FLUX_ISU_FORMULE.ID
FROM FLUX_ISU_FORMULE
INNER JOIN FLUX_ISU_FORMULE_CL
ON FLUX_ISU_FORMULE.ID = FLUX_ISU_FORMULE_CL.FRM_ID
INNER JOIN FLUX_ISU_FORMULE_TAB_EQU
ON FLUX_ISU_FORMULE_CL.FRM_ID = FLUX_ISU_FORMULE_TAB_EQU.FRM_ID
AND FLUX_ISU_FORMULE_CL.ID = FLUX_ISU_FORMULE_TAB_EQU.FCL_ID
WHERE lower(FLUX_ISU_FORMULE.type_energie) NOT LIKE 'ea%'
AND (FLUX_ISU_FORMULE_TAB_EQU.CADRAN <> 1 AND FLUX_ISU_FORMULE_TAB_EQU.CADRAN <> 4));
COMMIT;
DELETE FROM FLUX_ISU_FORMULE WHERE
(FLUX_ISU_FORMULE.ID) IN
(SELECT FLUX_ISU_FORMULE.ID
FROM FLUX_ISU_FORMULE
INNER JOIN FLUX_ISU_FORMULE_CL
ON FLUX_ISU_FORMULE.ID = FLUX_ISU_FORMULE_CL.FRM_ID
INNER JOIN FLUX_ISU_FORMULE_TAB_EQU
ON FLUX_ISU_FORMULE_CL.FRM_ID = FLUX_ISU_FORMULE_TAB_EQU.FRM_ID
AND FLUX_ISU_FORMULE_CL.ID = FLUX_ISU_FORMULE_TAB_EQU.FCL_ID
WHERE lower(FLUX_ISU_FORMULE.type_energie) NOT LIKE 'ea%'
AND (FLUX_ISU_FORMULE_TAB_EQU.CADRAN <> 1 AND FLUX_ISU_FORMULE_TAB_EQU.CADRAN <> 4));
COMMIT;