2010-08-04 17 views
0

我有這個程序:如何從Oracle-Procedure中獲得單個輸出?

CREATE OR REPLACE PROCEDURE CONV1(
    pDate IN VARCHAR2, 
    pYear OUT number, 
    pMonth OUT number, 
    pDay OUT number 
) 
AS 
    lDate DATE; 
BEGIN 
    lDate := to_date(pDate, 'DD.MM.YYYY HH24:MI:SS'); 
    pYear := to_number(to_char(lDate, 'YYYY')); 
    pMonth := to_number(to_char(lDate, 'MM')); 
    pDay := to_number(to_char(lDate, 'DD')); 

END CONV1; 
/

如何調用這個過程,如果我只是想在那裏出局嗎? (像Select FMAN_STAT_CONV1('16.07.2010', pDay) from dual;(這是不是工作btw))

Greetz!

回答

6

創建將使用過程conv1的函數,但將只返回一個值。

甚至對你的具體情況

SELECT to_char(to_date(your_date, 'DD.MM.YYYY HH24:MI:SS'), 'DD') from dual. 

或者常見的情況是好:

CREATE OR REPLACE FUNCTION CONV2(
    pDate IN VARCHAR2 
) 
RETURN NUMBER 
IS 
    pDay number; 
    pMonth number; 
    pYear number; 

BEGIN 
    conv1(pDate, pYear, pMonth, pDay); 
    return pDay; 
END; 
+0

做了功能,THX – Husky110 2010-08-04 13:25:39