كيف يمكنني الحصول على واحدة من 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;
(الذي لا يعمل راجع للشغل))
هجيت!
المحلول
قم بإنشاء وظيفة ستستخدم الإجراء 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;
لا تنتمي إلى StackOverflow