2011-04-06 142 views
8

我不確定這裏發生了什麼,主要是因爲我從來沒有使用過這個函數,但是當我在我們的Oracle 11g數據庫上使用listagg函數時,它給了我一個未找到的ORA-00923 FROM關鍵字在哪裏預期。ORACLE SQL listagg函數

這裏是我的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。您可以通過'v $ version版本中的select banner'來檢查;' – 2011-04-06 16:18:38

回答

17

您使用的是11.1還是11.2? LISTAGG在11.2中引入,它在11.1中不可用。

您的SQL語句在11.2中看起來對我有效。但是你會在11.1中得到一個錯誤,而在11.1中ORA-00923看起來像是一個合理的錯誤。

+0

我運行了Conrad在註釋中提到的查詢,它看起來像我們正在運行11.1而不是11.2。謝天謝地,一旦時間到了,我會將其標記爲答案。 – Micharch54 2011-04-06 16:23:08

+0

+1我沒有意識到這是11.2的唯一的事情。如果我有11.1我會認爲它應該工作。 – 2011-04-06 16:29:11

+0

這個錯誤也在11.2中。 Oracle數據庫11g企業版版本11.2.0.3.0-64位生產 PL/SQL版本11.2.0.3.0 - 生產 核心11.2.0.3.0生產 TNS for Solaris:版本11.2.0.3.0 - 生產 NLSRTL版本11.2.0.3.0 - 生產# – cyborg007 2014-03-06 07:13:03