인프런 커뮤니티 질문&답변
쿼리 질문
작성
·
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.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가 정의되어 있지 않은 것이 원인이 될 수도 있습니다. 정의되어 있지 않다면, 해당 필드를 정의해주세요.
아니면 오타가 있는지 다시 한 번 확인해보시고 수정하시면 됩니다.
이상입니다. 궁금한 점이 있으면 언제든지 물어봐주세요.




