mariaDB recursive사용시 no database selected 오류 0 1 697

by Henry [MySQL] mariaDB recursive CTE [2022.01.04 14:56:41]


새해복 많이받으세요~!

Oracle쿼리를 mariaDB로 수정작업 진행중에 막히는부분이 있어서 질문드리려합니다.

아래 쿼리문인데 실행시 'no database selected' 오류가 발생합니다.

UNION ALL 아랫부분 쿼리에서 발생하는듯합니다.

스키마명을 모두 지정해주었음에도 불구하고 발생하는 원인을 도저히 알길이 없어 여기에 질문을 올려봅니다.

감사합니다..!!!

 

with recursive CTE as (
    select concat( '.', T1.MENU_CD ) as TREE
          ,concat( '.', LPAD(T1.ORD_NO,10,'0') ) as TREE_ORD_NO
          ,T1.MENU_CD
          ,T1.MENU_NM
          ,T1.MENU_NM_EN
          ,T1.LINK_URL
          ,T1.LINK_TARGET
          ,0 as level
          ,T1.UP_MENU_CD
          ,(select I01.MENU_NM
              from parucncview.SYS_MENU I01
             where T1.MODULE_TYPE = I01.MODULE_TYPE
               and T1.UP_MENU_CD = I01.MENU_CD
           ) UP_MENU_NM
          ,T1.ORD_NO
          ,if( (SELECT COUNT(1) FROM parucncview.SYS_ROLE_MENU WHERE ROLE_CD = '1000' AND MENU_CD = T1.MENU_CD) = 0, '0', '1') AS IS_ROLE_MAPPING
          ,T1.USG_YN
          ,T1.MODULE_YN
          ,T1.DISPLAY_YN
          ,T1.MODULE_TYPE
      from parucncview.SYS_MENU T1
     where MENU_CD = 'ROOT'
 union all
    select concat( CTE.TREE, '.', P.MENU_CD ) as TREE
          ,concat( CTE.TREE_ORD_NO, '.', LPAD(P.ORD_NO,10,'0') ) as TREE_ORD_NO
          ,P.MENU_CD
          ,P.MENU_NM
          ,P.MENU_NM_EN
          ,P.LINK_URL
          ,P.LINK_TARGET
          ,level + 1 as level
          ,P.UP_MENU_CD
          ,(select I01.MENU_NM
              from parucncview.SYS_MENU I01
             where I01.MODULE_TYPE = P.MODULE_TYPE
               and I01.UP_MENU_CD = P.MENU_CD
           ) UP_MENU_NM
          ,P.ORD_NO
          ,if( (SELECT COUNT(1) FROM parucncview.SYS_ROLE_MENU T1 WHERE T1.ROLE_CD = '1000' AND T1.MENU_CD = P.MENU_CD) = 0, '0', '1') AS IS_ROLE_MAPPING
          ,P.USG_YN
          ,P.MODULE_YN
          ,P.DISPLAY_YN
          ,P.MODULE_TYPE
      from parucncview.SYS_MENU P
      join CTE
        on CTE.MENU_CD = P.UP_MENU_CD
  ) select TREE
         , TREE_ORD_NO
         , MENU_CD
         , MENU_NM
         , MENU_NM_EN
         , LINK_URL
         , LINK_TARGET
         , UP_MENU_CD
         , UP_MENU_NM
         , ORD_NO
         , IS_ROLE_MAPPING
         , USG_YN
         , MODULE_YN
         , DISPLAY_YN
         , level as LVL
         , case when (select COUNT(*) from parucncview.SYS_MENU where UP_MENU_CD = CTE.MENU_CD) > 0
                then 'Y'
                else 'N'
            end HAS_CHILD_YN
         , MODULE_TYPE
      from CTE
     where MENU_CD != 'ROOT'
       and MODULE_TYPE = if('B' is null, 'B', 'B')
  order by TREE;

by 마농 [2022.01.04 15:27:30]

no database selected : 접속 DB 지정 안했을 때 나는 오류
USE 명령을 통해 접속 DB 지정
USE parucncview;

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입