2017-05-06 118 views
0

我不知道如何创建用户定义的聚合函数,它应该完成与我的存储过程完全相同的工作。我的功能应该包含两个输入属性,有价格和计时器。 (对不起我的英文不好)Oracle SQL开发人员中的用户定义聚合函数开发人员

我的程序是:

CREATE OR REPLACE PROCEDURE "PRICE" 
    (key IN NUMBER) AS 
    pricer ARTICLE.PRICE%type; 
    BEGIN 
    SELECT price INTO pricer 
    FROM HistoryPrice 
    WHERE Key_article =key AND TIMER=(select max(TIMER) FROM 
    HistoryPrice WHERE Key_article=key AND TIMER<=SYSDATE); 

回答

0

格式就会像下面。你需要改变选择语句的逻辑。

CREATE OR REPLACE function f_price 
    (p_price IN NUMBER, 
    p_timer in number 
) return number as 
    pricer ARTICLE.PRICE%type; 
    BEGIN 

    SELECT price INTO pricer 
    FROM HistoryPrice 
    WHERE Key_article =key AND TIMER=(select max(TIMER) FROM 
    HistoryPrice WHERE Key_article=key AND TIMER<=SYSDATE); 

    return pricer; 

    end; 
+0

我需要创建用户定义的agregate函数。示例如下链接http://docs.oracle.com/cd/B28359_01/appdev.111/b28425/aggr_functions.htm –