我需要编写几个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)
这是关于我得到的表的唯一信息:
这是我需要更新的表(其
UVVAL_NM
)从这个表中,当
UMCOD_ID
与下表中的LRCOD_NM
相同时,我得到了LRCOD_ID
。当
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')