oracle - 我需要将此列与一个变量进行比较以更新表
问题描述
我需要将此列与更新表的变量进行比较,我有这个查询:
declare v_IdMig int;
begin
select max(ID_Mig)
into v_IdMig
from MIGPT021_LOG;
update MIGPT021_LOG
set RegPostMig = (select sum(cantidad) CantidadReg
from
(
select count(*) cantidad, sysdate FechaHora from CRPDTA.F59PT021
union all
select count(*) cantidad, sysdate FechaHora from CRPDTA.F59PT021_HTR)),
FecPostReg = (select max(FechaHora) Fecha
from
(
select count(*) cantidad, sysdate FechaHora from CRPDTA.F59PT021
union all
select count(*) cantidad, sysdate FechaHora from CRPDTA.F59PT021_HTR))
where max(Id_Mig) = v_IdMig;
但我有这个错误:
ORA-06550:第 20 列,第 7 列:PL/SQL:ORA-00934:没有许可证的功能 ORA-06550:第 7 列,第 1 列:PL/SQL:忽略 SQL 语句 ORA-06550:第 20 列,第 28 列:PLS-00103:在预期以下情况之一时遇到符号“文件结尾”:
(begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <a double-quote 06550. 00000 - "line %s, column %s:\n%s" *原因:通常是 PL/ SQL 编译错误。*操作:
谢谢
解决方案
ORA-00934: función de grupo no permitida aquí
您不能在 WHERE 子句中使用组函数(例如 MAX),就像您在此处尝试做的那样:
where max(Id_Mig) = v_IdMig;
我想你只是想要:
where Id_Mig = v_IdMig;
您已经选择了最大值。我假设您然后想要更新具有该值的行。
推荐阅读
- javascript - javascript数组推送不断重复自己无法找出原因
- python - 滑动窗口问题的时间复杂度
- python - 如何使用 Python 图像库中的“图像”函数中的像素数据写入二进制文件?
- python - 使用 python 在 Barchart 网站上抓取表格
- machine-learning - XGBoost 特征具有更高的特征重要性,但准确性更低
- git - 如何仅在我的工作忽略合并的情况下运行 difftool
- r - 限制数据框中所有单元格的字符串长度?
- python - 如何基于行创建 seaborn clustermap 并提取行标签?
- python - IndexError:创建均匀粒子时数组的索引过多
- dataframe - 如何在matplotlib中增加条形之间的空间并增加条形宽度