2013-07-13 2 views
0

저는 PL/SQL에서 초보자이며이 쿼리를 고수하고 있습니다!
내가이 명령을 실행하고있어,
SELECT 문이 PL/SQL 블록에서 작동하지 않습니다.

SELECT COUNT(*),AVG(SI.TOTALCOST) 
FROM S2.CAR C, S2.SERVINV SI 
WHERE C.SERIAL = SI.SERIAL 
AND MAKE = 'JAGUAR' 
AND MODEL = 'PRO'; 

직접 SQLPLUS에 프롬프트가 perfactly 잘 작동하고 출력을 보여줍니다!

하지만 PL/SQL 블록의 일부로서 동일한 쿼리,이 방법을 실행하면

SELECT COUNT(*) INTO v_visits, AVG(SI.TOTALCOST) INTO v_avg 
FROM S2.CAR C, S2.SERVINV SI 
WHERE C.SERIAL = SI.SERIAL 
AND MAKE = '&p_make' 
AND MODEL = '&p_model'; 

작동하지 않습니다! 이 오류가 발생합니다.

SELECT COUNT(*) INTO v_visits, AVG(SI.TOTALCOST) INTO v_avg 
           * 
ERROR at line 7: 
ORA-06550: line 7, column 32: 
PL/SQL: ORA-00934: group function is not allowed here 
ORA-06550: line 7, column 1: 
PL/SQL: SQL Statement ignored 

여기에 어떤 문제가 있는지 이해할 수 없습니다.
인터넷을 살펴 보았지만 도움이되는 것을 찾을 수 없었습니다!
도움을 주시면 감사하겠습니다.

감사

답변

1

허용 하나 into 문이있다. 변수를 나열하십시오. 이 버전은 또한 더 현대적인 조인 구문을 사용합니다 (배워야 함) :

SELECT COUNT(*), AVG(SI.TOTALCOST) 
INTO v_visits, v_avg 
FROM S2.CAR C join 
    S2.SERVINV SI 
    on C.SERIAL = SI.SERIAL 
where MAKE = '&p_make' AND MODEL = '&p_model'; 
+0

빠른 답장을 보내 주셔서 감사합니다! 그것은 도움이되었다! :) –

관련 문제