ORA-00934: 此处不允许组函数
ORA-00934: group function is not allowed here
我编写了一个存储过程,希望将两个计数值添加到一个集合中,代码如下:
PROCEDURE generate(code_in in VARCHAR2
, value_1 out NUMBER
, value_2 out NUMBER) is
BEGIN
SELECT
COUNT(CASE WHEN type = 'A' THEN 1 ELSE NULL END) INTO value_1
, COUNT(CASE WHEN type IN ('B','D') THEN 1 ELSE NULL END) INTO value_2
FROM table
WHERE code = code_in;
END generate;
但是当运行代码出现以下错误时:
ORA-00934: group function is not allowed here
如果我删除第二个 COUNT
存储过程编译得很好,但是当我添加第二行时我得到错误。
谁能帮忙解释一下为什么会这样?请注意,我对 Oracle 的经验很少。
into
是一个可以接收多个变量的子句,而不是您附加到每个 select 项目的子句:
PROCEDURE generate(code_in in VARCHAR2
, value_1 out NUMBER
, value_2 out NUMBER) is
BEGIN
SELECT
COUNT(CASE WHEN type = 'A' THEN 1 ELSE NULL END),
COUNT(CASE WHEN type IN ('B','D') THEN 1 ELSE NULL END)
INTO value_1, value_2 -- into clause with both variables
FROM table
WHERE code = code_in;
END generate;
我编写了一个存储过程,希望将两个计数值添加到一个集合中,代码如下:
PROCEDURE generate(code_in in VARCHAR2
, value_1 out NUMBER
, value_2 out NUMBER) is
BEGIN
SELECT
COUNT(CASE WHEN type = 'A' THEN 1 ELSE NULL END) INTO value_1
, COUNT(CASE WHEN type IN ('B','D') THEN 1 ELSE NULL END) INTO value_2
FROM table
WHERE code = code_in;
END generate;
但是当运行代码出现以下错误时:
ORA-00934: group function is not allowed here
如果我删除第二个 COUNT
存储过程编译得很好,但是当我添加第二行时我得到错误。
谁能帮忙解释一下为什么会这样?请注意,我对 Oracle 的经验很少。
into
是一个可以接收多个变量的子句,而不是您附加到每个 select 项目的子句:
PROCEDURE generate(code_in in VARCHAR2
, value_1 out NUMBER
, value_2 out NUMBER) is
BEGIN
SELECT
COUNT(CASE WHEN type = 'A' THEN 1 ELSE NULL END),
COUNT(CASE WHEN type IN ('B','D') THEN 1 ELSE NULL END)
INTO value_1, value_2 -- into clause with both variables
FROM table
WHERE code = code_in;
END generate;