저는 .NET을 처음 사용하고 웹 서비스를 작성합니다. 서비스가 호출 될 때 실행해야하는 복잡한 Oracle 쿼리가 있습니다. 나는 아래의 쿼리 샘플을 제공하고있다.웹 서비스 작성을위한 Dapper
SELECT
STCD_PRIO_CATEGORY_DESCR.DESCR,
STRS_SESSION3.SESSION_NUM,
Trunc(STRS_SESSION3.START_DATE),
STRS_SESSION3.START_DATE,
Trunc(STRS_SESSION3.END_DATE),
Round((TO_DATE (TO_CHAR (STRS_SESSION3.END_DATE, 'dd/mm/yyyy hh24:mi'),'dd/mm/yyyy hh24:mi') - TO_DATE (TO_CHAR (STRS_SESSION3.START_DATE, 'dd/mm/yyyy hh24:mi'),'dd/mm/yyyy hh24:mi'))*1440),
STCD_ACT_DESCR4.DESCR,
decode((decode(sign((DECODE(SIGN((Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))),-1,(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE)),(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))+(STPR_OPTIONS.VALUEN)))),-1,'Y',0,'N','N')), 'N', Decode ((STPR_OPTIONS.VALUEN), '1', trunc((( DECODE(SIGN((Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))),-1,(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE)),(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))+(STPR_OPTIONS.VALUEN)))-1) /7)+1, '0', trunc((DECODE(SIGN((Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))),-1,(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE)),(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))+(STPR_OPTIONS.VALUEN)))/7)), 'Y', (trunc(((DECODE(SIGN((Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))),-1,(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE)),(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))+(STPR_OPTIONS.VALUEN))) +1)/ 7)-1) , -999),
DECODE(SIGN((Trunc(ILRS_DOSE.RESULT_DATE)) - (
FROM
STPR_STD_ANML,
STPR_ANML,
STPR_OPTIONS,
STCD_ACT_DESCR STCD_ACT_DESCR4,
STCD_ACT_DESCR,
STCD_UNIT_DESCR,
STCD_UNIT_DESCR STCD_UNIT_DESCR2,
STCD_UNIT_DESCR STCD_UNIT_DESCR10,
STCD_ACT STCD_ACT4,
STCD_ACT,
WHERE
(STPR_STUDY.ID=STPR_STUDY_DET.STD_ID)
AND (STPR_STUDY_DET.STD_TYPE_ID=STCD_STUDY_TYPE.ID)
AND (STCD_STUDY_TYPE_DESCR.STUDY_TYPE_ID(+)=STCD_STUDY_TYPE.ID AND STCD_STUDY_TYPE_DESCR.LANG_ID(+) = 1)
AND (STPR_STUDY.ID=STPR_STD_SPECIES.STD_ID(+))
AND (STPR_STD_SPECIES.SPECIES_ID=STCD_SPECIES.ID(+))
AND (STPR_STD_SPECIES.STRAIN_ID=STCD_STRAIN.ID(+))
AND (STCD_SPECIES.ID=STCD_SPECIES_DESCR.SPECIES_ID(+) AND
STPR_STUDY.STD_REF IN (?)
나는 단정 한 사용을 통해 캠,하지만 내 질문에이 서비스가 호출 될 때 말끔이 결과를 반환하는 방법입니다 내가하지 오전 POCO 클래스를 만들 수 있습니다 (이 JSON 형식으로 반환 된 데이터가 가능하다) 각 요소의 유형이 select인지 확인하십시오. select 또는 string이 될 수 있습니다. 적절한 데이터 유형을 제공해야합니다. 내 질문은 어리석은 짓일지도 모르겠다. 나는이 문제에 익숙하지 않고 도움을 찾고있다. 감사합니다
감사 Delosdos. 하지만 우리는 get과 set을 해당 열에 사용해야 만합니까? Dapper를 응용 프로그램에 사용하는 방법은 무엇입니까? – trx
DB 열 이름이 클래스 속성 이름과 일치하면 Dapper가 자동으로 개체를 채 웁니다. 그래서 "public string DESCR"을 추가 할 것입니다. 및 "공개 문자열 SESSION_NUM;" 예 : – Delosdos
Delosdos에 감사드립니다. 당신은 대단하다. 그러나 선택된 위성 질의 'Round ((TO_DATE (TO_CHAR (STRS_SESSION3.END_DATE,'dd/mm/yyyy hh24 : mi '),'dd/mm/yyyy hh24 : mi '와 같은) - TO_DATE (TO_CHAR (STRS_SESSION3.START_DATE, 'dd/mm/yyyy hh24 : mi'), 'dd/mm/yyyy hh24 : mi')) * 1440) '나도 똑같은 방식으로주고 싶니? – trx