我需要编写几个UPDATE查询来解析.csv文件中的数据,但我不知道该表的工作方式,我什至没有直接访问数据库的权限,我只是得到了这样的INSERT查询一:

insert into lr_umbrales_valores (umcod_id, uvfec_dt, uvval_nm)
values ((select umcod_id from lr_umbrales
where lrcod_nm = (
    select lrcod_id from lr_lineas_referencia
    where me_metrica_nm = ?
    and fecha_baja_dt is null)
and umtip_tx='S'), sysdate, ?)


所以我正在尝试:

UPDATE LR_UMBRALES_VALORES SET UVVAL_NM = ?
WHERE (
    SELECT UMCOD_ID FROM LR_UMBRALES
    WHERE LRCOD_NM = (
        SELECT LRCOD_ID FROM LR_LINEAS_REFERENCIA
        WHERE ME_METRICA_NM = ?
        AND FECHA_BAJA_DT IS NULL
    )
    AND UMTIP_TX = 'S')
AND UVFEC_DT = TO_DATE(?, 'DD/MM/YYYY HH24:MI:SS')");


这给我一个“缺少表达式”错误(ORA-00936)

这是关于我得到的表的唯一信息:

java - UPDATE中缺少表达式-LMLPHP
这是我需要更新的表(其UVVAL_NM

java - UPDATE中缺少表达式-LMLPHP
从这个表中,当UMCOD_ID与下表中的LRCOD_NM相同时,我得到了LRCOD_ID

java - UPDATE中缺少表达式-LMLPHP
LRCOD_ID与'ME_METRICA_NM'参数相同时获取?

如何解决这个问题的任何技巧?不用说,我是SQL的新手,所以这可能是一个非常明显的错误,但我做对了。

最佳答案

这部分

WHERE (
SELECT UMCOD_ID FROM LR_UMBRALES
WHERE LRCOD_NM = (
    SELECT LRCOD_ID FROM LR_LINEAS_REFERENCIA
    WHERE ME_METRICA_NM = ?
    AND FECHA_BAJA_DT IS NULL
)
AND UMTIP_TX = 'S')


导致错误。也许你想要类似的东西

WHERE UMCOD_ID = (
    SELECT UMCOD_ID FROM LR_UMBRALES
    WHERE LRCOD_NM = (
        SELECT LRCOD_ID FROM LR_LINEAS_REFERENCIA
        WHERE ME_METRICA_NM = ?
        AND FECHA_BAJA_DT IS NULL
    )
    AND UMTIP_TX = 'S')

10-01 13:51