강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

노지훈님의 프로필 이미지
노지훈

작성한 질문수

쿼리 질문

작성

·

330

0

안녕하세요

쿼리 오류가 나서 질문드립니다.

40행 FRDT_DATE 여기서 ORA_00904 : 부적합한 식별자로 오류 발생하는데요.

혹시 어떻게 수정해야 할까요??

 

 

SELECT

PAGE.*,

Y2.HMPGCD,

Y2.USR_NM AS USR_NM_ORG,

Y2.JOIN_APRBTN_YN,

Y2.TEST_ACCNT_YN,

Y2.FRDT,

Y2.LMDT,

FN_HASH(

Y2.ACCNTID || ',' || Y2.PWD || ',' || TO_CHAR(sysdate, 'YYYYMMDDHH24')

) AS LOGIN_KEY,

Y3.GNDR_CD,

Y3.HOME_PHONE_NUM HOME_PHONE_NUM,

'' AS BRTHDY_YMD,

Y4.EMPNUM,

Y4.HLDOFFC_STATE_CD,

NVL(

FN_GET_CODENM_LOCALE('00007', Y4.HLDOFFC_STATE_CD, NVL('ko', 'ko')),

'-'

) AS HLDOFFC_STATE_CD_NM,

Y3.DEPT_NM,

NVL(FN_GET_MASKING_INFO(Y3.EMAIL, 'EM'), '-') EMAIL_MASK,

NVL(FN_GET_MASKING_INFO(Y3.MOBILE_NUM, 'TP'), '-') MOBILE_NUM_MASK,

NVL(FN_GET_DATE_FORMAT(Y2.FRDT, '.'), '') AS FRDT_DATE,

NVL(Y3.COMP_NM, '-') AS COMP_NM

FROM

(

SELECT

(T2.TOTAL_CNT -(T2.RNUM -1)) ROWNO,

T2.*,

T2.RNUM as id

FROM

(

SELECT

T1.*,

COUNT(1) OVER() as TOTAL_CNT,

row_number() OVER(

ORDER BY

FRDT_DATE desc

) as RNUM

FROM

(

SELECT

USRTRGT.USRID,

USRTRGT.USR_NM,

USRTRGT.ACCNTID,

USRTRGT.USR_STCD,

C.ORGN_ID,

C.ORGN_NM,

D.WORKPLC_ID,

D.WORKPLC_NM,

USRTRGT.TEST_ACCNT_YN,

B.EMAIL,

B.MOBILE_NUM,

NVL(

(

SELECT

LISTAGG(TR.ROLE_NM, ',') WITHIN GROUP(

ORDER BY

TRUM.USRID

)

FROM

TCMN_ROLE_USR_MAPP TRUM

LEFT OUTER JOIN TCMN_ROLE TR ON TRUM.ROLE_ID = TR.ROLE_ID

WHERE

USRTRGT.USRID = TRUM.USRID

),(

SELECT

A.ROLE_NM

FROM

TCMN_ROLE A

WHERE

A.ROLE_CLSF_CD = 'U'

)

) AS ROLE_NM

FROM

TCMN_USER_MASTER USRTRGT

LEFT OUTER JOIN TCMN_USER_DTL B ON USRTRGT.USRID = B.USRID

LEFT OUTER JOIN TCMN_ORGN_MASTER C ON USRTRGT.ORGN_ID = C.ORGN_ID

LEFT OUTER JOIN TCMN_ORGN_WORKPLC D ON C.ORGN_ID = D.ORGN_ID

AND USRTRGT.WORKPLC_ID = D.WORKPLC_ID

LEFT OUTER JOIN TCMN_COMP_MEMBER E ON USRTRGT.USRID = E.USRID

WHERE

(

SELECT

COUNT(1)

FROM

TCMN_ROLE_USR_MAPP TRUM

LEFT OUTER JOIN TCMN_ROLE TR ON TRUM.ROLE_ID = TR.ROLE_ID

WHERE

USRTRGT.USRID = TRUM.USRID

AND TR.ROLE_CLSF_CD < 'A'

) < 1

AND USRTRGT.EXPSR_YN = 'Y'

AND USRTRGT.SSO_USR_STCD != '99'

) T1

) T2

WHERE

CEIL(RNUM / '1000') = '1'

) PAGE

INNER JOIN TCMN_USER_MASTER Y2 ON PAGE.USRID = Y2.USRID

INNER JOIN TCMN_USER_DTL Y3 ON Y2.USRID = Y3.USRID

LEFT OUTER JOIN TCMN_COMP_MEMBER Y4 ON PAGE.USRID = Y4.USRID

ORDER BY

ROWNO DESC;

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

40행에서 오류가 발생하고 있다면, FRDT_DATE가 부적합한 식별자라는 의미입니다. 이는 해당 쿼리에서 FRDT_DATE 필드가 정의되어 있지 않거나, 오타로 인한 오류일 가능성이 높습니다.

해당 쿼리를 보면, FRDT_DATE가 NVL(FN_GET_DATE_FORMAT(Y2.FRDT, ‘.’), “) AS FRDT_DATE 로 정의되어 있는 것으로 보이는데, Y2.FRDT가 정의되어 있지 않은 것이 원인이 될 수도 있습니다. 정의되어 있지 않다면, 해당 필드를 정의해주세요.

아니면 오타가 있는지 다시 한 번 확인해보시고 수정하시면 됩니다.

이상입니다. 궁금한 점이 있으면 언제든지 물어봐주세요.

노지훈님의 프로필 이미지
노지훈

작성한 질문수

질문하기