급한 질문 하나 드립니다 0 1 529

by 초보 개발자 [SQL Query] Proc 쿼리 에러 [2020.08.21 13:57:37]


Select trim(to_char(a.id + (rownum-first_row), ‘0000000000’)) as id
  From 
(
     Select distinct id
          , first_row
       From ( 
             Select (select max(id) from Table_A) +                    
                     rownum as id
                   , rownum as first_row
               From Table_B
            Where절
                )
)            

오라클 버전은 9버전입니다.

질문입니다. 

1번문제. 이렇게 컴파일을 돌리면 pcc-s-02201 encountered the symbol "MAX" 부분과 "FROM" 부분과 "AS" 부분이 에러로 나왔습니다.

2번문제. 이부분만 문제인가 싶어 이 부분을 강제로 집어넣고 돌렸더니 이번엔 pcc-s-02201 encountered the symbol "TO_CHAR" 부분 또한 에러로 나왔습니다

구글링 결과 서브쿼리를 사용하면 안되서 동적sql문을 사용하라고 하는데 동적sql문을 써본적이 없어서요 

서브쿼리 문제는 1번만 해당되는거라 동적쿼리를 써도 2번문제도 해결되는건가요???

by 마농 [2020.08.21 16:01:39]

1. Distinct 가 불필요해 보이고
2. (rownum - first_row) 도 불필요해 보이네요.
3. 따옴표가 특수문자 아닌가요? ‘0000000000’ 일반문자로 바꿔보세요. '0000000000'
4. 스칼라서브쿼리는 그냥 From 절 인라인뷰로 내려보세요.

SELECT LPAD(a.max_id + ROWNUM, 10, '0') AS id
  FROM (SELECT MAX(id) max_id FROM table_a) a
     , table_b b
 WHERE -- (조건)
;

 

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