2014-12-02 54 views
0

我有一個SQL語句,正常工作,併產生正確的結果。但是,如果我使用完全相同的語句並將其放入View,那麼我得到的編譯器錯誤不太合理(請參閱下文)。有人告訴我說,它可以工作,因爲使用LISTAGG進行查看並沒有限制,但它顯然會誤導我。我不確定我的發言有什麼問題。有人能指出我嗎?可以使用LISTAGG嗎?

enter image description here

+1

請編輯的問題,並顯示'創建view'聲明。您也可以嘗試在查詢前創建視圖。 – 2014-12-02 12:46:51

+0

我在視圖中使用了'listagg' ...所以它絕對有可能。只需要弄清楚爲什麼你的案件失敗! – Captain 2014-12-02 13:09:58

+0

@戈登:你不相信這個!我可以使用完全相同的語句來創建視圖,該語句在使用GUI時會導致問題!如果我創建視圖使用語句,它的工作原理!你能否把答案放在我可以給予適當的信貸給你?我是Oracle新手,認爲使用GUI會更容易,但顯然它有錯誤!非常感謝你的幫助!!! – user1205746 2014-12-02 13:38:38

回答

2

你的問題似乎是與GUI。

可以使用創建一個視圖:

create view v_storeproducts as 
    SELECT "StoreId", 
      LISTAGG("ProductCategory" 
           || ':' 
           || '(' 
           || ProductIds 
           || ' 
        )', ', ') WITHIN GROUP (ORDER BY "ProductCategory") AS ProductsAndCategories 
    FROM (SELECT "StoreId", 
       "ProductCategory", 
        LISTAGG("ProductId", ',') WITHIN GROUP (ORDER BY "ProductId") AS ProductIds 
      FROM SUPERMARKET 
      GROUP BY "StoreId", 
      "ProductCategory" 
     ) s 
    GROUP BY "StoreId";