2010-08-04 18 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