2011-04-06 4 views
8

나는이 기능을 한번도 사용하지 않았기 때문에 무엇이 일어나는지 잘 모르겠다.하지만 Oracle 11g 데이터베이스에서 listagg 기능을 사용하면 ORA-00923 FROM 키워드를 찾을 수 없다. 예상했던 곳.ORACLE SQL listagg function

여기에 나는이 깨는 이유 단서를하지 않은 내 SQL

SELECT cdm.courses_id,cde.additional_resources, listagg (dm.delivery_method_desc, ',') 
WITHIN GROUP (ORDER BY dm.delivery_method_desc) delivery_methods 
FROM tablespace.course_de_delivery_methods cdm, 
     tablespace.course_distance_ed cde, 
     tablespace.delivery_methods dm 
WHERE cdm.courses_id = cde.courses_id 
AND cdm.delivery_methods_id = dm.delivery_methods_id 
GROUP BY cdm.courses_id 

입니다. 찾은 예제를 따라했습니다. here.

+0

나에게 잘 어울립니다. 당신은 db가 11g인지 확신합니까? 'select banner from v $ version; '을 통해 확인할 수 있습니다. –

답변

17

11.1 또는 11.2를 사용하고 있습니까? LISTAGG는 11.2에서 소개되었지만 11.1에서는 사용할 수 없었습니다.

귀하의 SQL 문은 11.2에서 나에게 맞는 것 같습니다. 11.1에서는 오류가 발생하고 ORA-00923은 11.1에서 합리적인 오류처럼 보일 것입니다.

+0

콘래드가 주석에서 언급 한 쿼리를 실행했는데 11.1이 아닌 11.1이 실행중인 것으로 보입니다. 고마워요. 시간 제한이 다가 오면 나는 이것을 답으로 표시 할 것입니다. – Micharch54

+0

+1 나는 이것이 11.2 유일한 것임을 깨닫지 못했습니다. 내가 11.1을 가졌다면 그것이 효과가 있다고 생각했을 것이다. –

+0

이 오류는 11.2에서도 발생합니다. '오라클 데이터베이스 11g 엔터프라이즈 에디션 출시 11.2.0.3.0 - 64 비트 생산 PL/SQL 릴리스 11.2.0.3.0 - 생산 CORE 11.2.0.3.0 생산 Solaris 용 TNS : 버전 11.2.0.3.0 - 생산 NLSRTL 버전 11.2.0.3.0 - Production' – cyborg007