2017-08-01 81 views
1

我想顯示在oracle頂點IR查詢,從3個不同的表中最大的日期,使用最大的功能來選擇最大的。爲此,創建了兩個varchar2類型的函數。Apex交互式報告ORA-1843

其中之一返回轉換爲char,一個選定的表的這樣的時間:

create or replace FUNCTION RETURN_DATES (key in number, parameter in NUMBER) 
    RETURN VARCHAR2 IS 

    ... 
BEGIN 
     case parameter 

       when 1 then 
        select distinct MAX(mydate) into seal from table1 v WHERE v.num_contract = number_contract; 
        return NVL(TO_CHAR(TO_DATE (seal),'mm/dd/yyyy'),'01/01/1980') 
       when 2 then 
        select... from table2 x WHERE... 
... 
END; 

第二函數調用使用參數調用,之間的最大功能的一個,其是指case語句:

create or replace FUNCTION RETURN_BIGGEST_DATE(key in number) return VARCHAR2 IS 

    ... 
BEGIN 
     select greatest (RETURN_DATES(key,1),RETURN_DATES(key,2),RETURN_DATES(key,3)) into greatest_date from dual;  
     return greatest_date; 
... 
END; 

當我在sql命令中調用它可以正常工作,但是在交互式報表失敗時,使用完全相同的查詢返回ORA-1843。

任何人都可以幫忙嗎?

回答

1

簡單修改RETURN_DATES返回日期

和密封變量,日期型,無中轉,工作在頂點IR罰款! 我注意到當一個日期列在ir查詢中被中繼時,列過濾器上有一個額外的參數,名爲日期範圍。這是開始模擬並改變該函數的返回類型的雙向流量。被要求

沒有更多的變化:

create or replace FUNCTION RETURN_DATES (key in number, parameter in NUMBER) 
    RETURN DATE IS 

... 

    select distinct MAX(mydate) into seal from table1 v WHERE v.num_contract = number_contract; 
         return NVL(seal),'01/01/1980') 
相關問題