2011-04-06 23 views
8

No estoy seguro de lo que está pasando aquí, sobre todo porque nunca he usado esta función, pero cuando uso la función listagg en nuestra base de datos Oracle 11g me da una palabra clave ORA-00923 FROM no encontrada donde se esperabaORACLE SQL listagg function

Aquí está mi 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 

yo no tengo ni idea de por qué esto se está rompiendo. Estaba siguiendo el ejemplo encontrado here.

+0

Me parece bien. ¿Estás seguro de que tienes db es 11 g? Puede consultar mediante 'select banner from v $ version;' –

Respuesta

17

¿Está usando 11.1 o 11.2? LISTAGG se introdujo en 11.2, no estaba disponible en 11.1.

Su declaración de SQL me parece válida en 11.2. Pero obtendría un error en 11.1 y ORA-00923 parecería un error razonable en 11.1.

+0

Ejecuté la consulta que Conrad mencionó en los comentarios y parece que estamos ejecutando 11.1 no 11.2. Gracias, hombre, tan pronto como se termine el límite de tiempo lo marcaré como la respuesta. – Micharch54

+0

+1 No me di cuenta de que esto es solo 11.2. Si tuviera 11.1, hubiera pensado que debería funcionar. –

+0

Este error también viene en 11.2. 'Oracle Database 11g Enterprise Edition Versión 11.2.0.3.0 - Producción 64bit PL/SQL Versión 11.2.0.3.0 - Producción CORE 11.2.0.3.0 Producción TNS para Solaris: Versión 11.2.0.3.0 - Producción NLSRTL Versión 11.2.0.3.0 - Production' – cyborg007