2017-12-18 12 views
-3

저장 프로 시저에 날짜 매개 변수를 사용할 수 있습니까? 예 : date 20171201 dateparameter.prc에서 사례 A를 실행해야합니다. 및 날짜 20171202는 위의 동일한 절차 인 dateparameter.prc에서 사례 B를 실행합니다. 나는 몇몇 책을 인터넷 검색하고 조사하고있다 그러나 나는 아직도 해결책을 찾아 내지 않았다. 아무도 그것에 대해 알 수 있습니까? 감사합니다날짜 매개 변수를 사용하는 oracle 저장 프로 시저

+6

그래서, 질문이 있습니다."그것을인가 가능한가? "이고 대답은"예, 가능합니다 "입니다. – Dmitry

+0

모든 유형의 매개 변수를 전달할 수 있습니다. '날짜'는 기본 제공 유형으로 'NUMBER'또는 'VARCHAR2'와 같습니다. –

+0

고마워, 나는 초심자이므로 아직 신탁에 대해 많이 모른다. 좋은 하루 보내! ~ – Sudal

답변

0

저장 프로 시저에 날짜 매개 변수를 사용할 수 있습니까?

예. OUT 날짜 매개 변수에 직접 IN 날짜 매개 변수로 날짜를 받아 들여 통과시키는 간단한 예이다

CREATE PROCEDURE your_procedure(
    in_value IN DATE, 
    out_return OUT DATE 
) 
IS 
BEGIN 
    out_return := in_value; 
END; 
/
+0

예를 들어 주셔서 감사합니다! – Sudal

0

예 것이 가능하다.

SQL> set serveroutput on 

SQL> create procedure dt_demo(p_d date) as 
    2 begin 
    3 dbms_output.put_line('p_d = ' || p_d); 
    4 end; 
    5/

Procedure created 

SQL> exec dt_demo(date '2017-12-02'); 

p_d = 02.12.17 

PL/SQL procedure successfully completed 
+0

코멘트 주셔서 감사합니다 지금 코딩을하고 있습니다! – Sudal

0

절차가 올바르게 작동하고 있습니다. 그러나

  1. 표현식 "DATE ​​'2017-12-02'"은 ISO 날짜 표준을 나타냅니다.
  2. "dbms_output.put_line ('p_d ='|| p_d)"표현식은 ISO 사양에 선행하는 일반적인 Oracle 날짜 처리를 나타냅니다.

dbms_ouput에서 날짜를 형식화 (표시)하면 날짜가 문자열로 변환됩니다. 이 경우 암시 적 변환이 있으므로 결과 형식은 NLS_DATA_FORMAT 설정에 의해 제어됩니다. 네가 "dd-mm-yy"로 설정되어있는 것 같습니다. 당신의 간부 문 앞에 다음을 실행/차이 삽입을 보려면 :

alter session set nls_date_format = 'yyyy-mm-dd을 ";

을 또한 오라클 11g 또는 버전에 적절한 오라클 Date Format를 참조

+0

코멘트 주셔서 감사합니다! – Sudal