2013-05-09 79 views
0

我正在Oracle Apex中構建堆疊列三維Flash圖表。它基於PL/SQL返回的SQL查詢。需要PL/sql來捕獲所有類型的屬性並統計連接到這些屬性的數據庫中的實例數量。代碼是:Oracle Apex Flash Chart不顯示標籤

 DECLARE 
l_qry VARCHAR2(32767); 
v_id NUMBER; 
v_resort VARCHAR2(80); 

    BEGIN 
l_qry := 'SELECT ''fp=&APP_ID.:802::app_session::::P5_SEARCH_MONTH:''||TO_CHAR(E.ENQUIRED_DATE,''MON-YY'')||'':'' link,'; 

l_qry := l_qry || ''' ''||TO_CHAR(E.ENQUIRED_DATE,''MON-YY'')||'':'' label,'; 


    --Loop through the resorts and add a sum(decode...) column with column alias 
    FOR r1 IN (SELECT DISTINCT a.resort_id FROM enquiry a, resort b where a.resort_id IS NOT NULL and a.resort_id = b.id and b.active =1) 
    LOOP 
     select name into v_resort 
     from resort 
     where id = r1.resort_id; 

現在發生了什麼PLSQL正在淹沒所有度假村並對它們進行計數。但是這個解決方案確實在一定程度上起作用,但是在返回值之後我想用v_resort取得度假村名稱的標籤。這是其中的主要困難是,當你將鼠標懸停在列就好

l_qry := l_qry || 'sum(decode(resort_id,''' || r1.resort_id ||''',1,0)) test,'; 
l_qry := l_qry || 'sum(decode(resort_id,''' || r1.resort_id ||''',1,0)) '|| v_resort||','; 

第一行顯示「測試」標籤。然而,第二個與'|| v_resort ||'會引起不顯示任何回結果...它是不會放棄#NO_DATA_FOUND#的消息,但只是空白領域.. 代碼的其餘問題:

END LOOP; 

--Trim off trailing comma 
l_qry := rtrim(l_qry, ','); 

--Append the rest of the query 
l_qry := l_qry || ' from ENQUIRY E,resort r 
where 
e.enquiry_type=''AVAILR'' 
and e.enquiry_channel like '''||:P5_CHANNEL||''' 
and trunc(e.created) >= '''||:P5_DATE_FROM||''' 
and trunc(e.created) <= '''||:P5_DATE_TO||''' 
and e.ENQUIRED_DATE > '''||:P5_DATE_FROM||''' 
and ((NVL(:P5_AVAILABLE,''A'')=''A'') or ('''||:P5_AVAILABLE||'''=AVAILABLE)) 
and e.resort_id = r.id 
and ((resort_id = '''||:P6_RESORT||''') or ('''||:P6_RESORT||''' like ''0'')) 
group by To_Char(ENQUIRED_DATE,''MON-YY''),TO_CHAR(ENQUIRED_DATE,''YYMM'') 
Order By TO_CHAR(ENQUIRED_DATE,''YYMM'')'; 

return(l_qry); 


END; 

我累了「|| v_resort ||' ,'''|| v_resort ||'''。任何其他想法如何創建標籤的價值取自v_resort持有度假村名稱?

回答

0

嘗試「‘|| v_resort ||’」
你必須使用帶引號的標識符,因爲v_resort可以是任意的字符串和不帶引號的名稱有many rules