예전부터 항상궁금해하다가 아무리검색해도 원하는대답을 못얻어 그냥넘기곤했는데
이번에 제대로짚고 넘어가려고합니다.
SELECT &as_query_type QUERY_TYPE,
A.DEPTCODE DEPTCODE ,
A.LIST_TYPE LIST_TYPE ,
TO_DATE(A.IPDATE,'YYYYMMDD') IPDATE ,
TO_DATE(A.IPDATE,'YYYYMMDD') ORDDATE ,
A.PATNO PATNO ,
A.PATNAME PATNAME ,
A.SEXS SEXS ,
A.AGE AGE ,
A.DEPTENAME DEPTENAME ,
A.JWFLAG JWFLAG ,
A.STATUS STATUS ,
TO_DATE(A.TWDATE,'YYYYMMDD') TWDATE ,
A.DOCNAME DOCNAME ,
A.PATRCNO PATRCNO ,
&ad_s_date S_DATE ,
A.OPUNQKEY OPUNQKEY
FROM V_CI_PATIENT_LIST A
WHERE A.IPDATE BETWEEN TO_CHAR(&ad_f_date,'YYYYMMDD') AND TO_CHAR(&ad_t_date,'YYYYMMDD')
AND A.JWFLAG LIKE &as_jwflag
AND A.DEPTCODE LIKE &as_deptcode
AND A.STATUS LIKE &as_status
AND A.LIST_TYPE = &as_list_type
AND &as_list_type NOT IN ('CQIICUID1','CQIANTIQU')
AND &as_query_type = 'D'
이 쿼리를 pl/sql 에서 실행(F8)시키면 인자로설정된 값들을 입력하는 창이뜨는데
문자형은 '123' 숫자형은 123 이런식으로 값을넣어주는데 date값은 어떻게 넣어주나요?
'2014/07/01 00:00:00' , 2014/07/01 00:00:00 이런식으로 넣어도 수치가 부적접하다는 에러메세지만 return됩니다
날짜형식은 어떤식으로 값을 입력해줘야하나요?
엠퍼센트(&) 는 SQL의 문자열을 치환하는 기능만을 합니다.
그래서 위에서도 문자를 표현하기 위해 따옴표를 별도로 붙인거지요.
마찬가지로 날짜를 표현하려면 to_date 함수를 함께 써주면 되겠지요.
그러나 이런게 의도한바는 아닐듯 하네요?
타입을 가진 형태로 하려면 바인드변수를 써야 합니다.
바인드 변수는 보통 콜론(:)을 붙여 사용합니다.
마지막으로 사용하시는 용어가 부적절하네요.
PL/SQL 은 언어입니다. 말씀하시는 것은 언어가 아닌 개발툴인듯 하네요.
PL/SQL이 아니라 PL/SQL Developer 를 말하는게 아닐런지???