2017-05-06 23 views
0

私のストアド・プロシージャとまったく同じジョブを実行するユーザー定義集計関数を作成する方法がわかりません。私の関数には2つの入力属性が含まれていなければなりません。価格とタイマーがあります。 (私の悪い英語のため申し訳ありませんが)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

フォーマットは以下のようになります。 select文のロジックを変更する必要があります。

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です。 –

関連する問題