Sql Can';t在匿名块中向我的表插入值..但如果我运行查询时没有开始-结束,则它会起作用
如果我在begin end/中使用此查询,它将显示错误 ORA-00979:不是表达式的组 ORA-06512:在第3行 97900000-“不是表达式的组” *原因:Sql Can';t在匿名块中向我的表插入值..但如果我运行查询时没有开始-结束,则它会起作用,sql,oracle,plsql,group-by,sql-insert,Sql,Oracle,Plsql,Group By,Sql Insert,如果我在begin end/中使用此查询,它将显示错误 ORA-00979:不是表达式的组 ORA-06512:在第3行 97900000-“不是表达式的组” *原因: *行动: 但是,如果我在plsql块之外运行此查询,它将正常工作…请帮助我解决此问题….实际上,我删除了group by子句中的摘录,它工作正常 但另一个系统工作正常,即使在GROUPBY子句中提取…您使用的是Oracle的哪个版本和补丁级别?有可能你碰到了一个bug——这个错误有几个原因。它可能与插入无关——如果在游标中使用该
*行动:
但是,如果我在plsql块之外运行此查询,它将正常工作…请帮助我解决此问题….实际上,我删除了group by子句中的摘录,它工作正常
但另一个系统工作正常,即使在GROUPBY子句中提取…您使用的是Oracle的哪个版本和补丁级别?有可能你碰到了一个bug——这个错误有几个原因。它可能与插入无关——如果在游标中使用该查询部分并在结果中循环,您还会看到它吗?不过,您的查询可能会简化—我会首先删除所有的
order by
子句,这些子句没有用处,可能与bug有关;您可以通过一些返工来删除子查询。谢谢,现在它可以工作了
INSERT INTO mtl_strmnth_grid_tmp
( guid,
rigmove_mnth_no,
rigmove_month,
AVERAGE,
actual
)
SELECT
'1234',
A.rigmove_mnth_no,
A.rigmove_month,
B.AVG as "AVERAGE",
b.actual AS "ACTUAL"
FROM
(
SELECT DISTINCT
to_char(quarter_date,'MM') AS rigmove_mnth_no,
to_char(quarter_date,'MONTH') AS rigmove_month
FROM
t_adm_calendar
WHERE
quarter_date BETWEEN TO_DATE('01/01/2018','DD/MM/YYYY') AND TO_DATE('31/01/2018','DD/MM/YYYY')
) A
LEFT OUTER JOIN (
SELECT
rigmove_mnth_no,
rigmove_month,
SUM(AVG) AS AVG,
actual
FROM
(SELECT
EXTRACT(MONTH FROM sm1.rigmove_date) rigmove_mnth_no,
to_char(sm1.rigmove_date,'MONTH') rigmove_month,
SUM(DISTINCT sm2.AVG) AS AVG,
sm1.main_activity_code_pk,
SUM(sm1.actual) AS actual
FROM
v_report_smdelivery sm1
LEFT JOIN v_report_smdelivery_budget sm2 ON sm1.main_activity_code_pk = sm2.main_activity_code_pk
WHERE
sm1.rigmove_date BETWEEN TO_DATE('01/01/2018','DD/MM/YYYY') AND TO_DATE('31/01/2018','DD/MM/YYYY')
GROUP BY
EXTRACT(MONTH FROM sm1.rigmove_date),
to_char(sm1.rigmove_date,'MONTH'),
sm1.main_activity_code_pk
ORDER BY
EXTRACT(MONTH FROM sm1.rigmove_date),
to_char(sm1.rigmove_date,'MONTH')
)
GROUP BY
rigmove_mnth_no,
rigmove_month,
actual
ORDER BY
rigmove_mnth_no,
rigmove_month
) b ON A.rigmove_mnth_no = b.rigmove_mnth_no
ORDER BY rigmove_mnth_no
;