테이블의 특정컬럼별 데이터 건수 0 3 2,386

by abysseye [Oracle 기초] [2017.10.17 14:58:27]


테이블 별로 데이터 건수를 구하려고 하는데 검색하다 보니  유용한 쿼리가 있어서 사용하려는데 잘 안되네요 ㅜ.ㅜ

SELECT table_name , num_rows , TO_NUMBER( dbms_xmlgen.getxmltype('SELECT COUNT(*) c FROM ' || table_name).Extract('//text()') ) num_rows2 FROM user_tables a, obj_tbl b Where a.table_name =b.tb_name

Tbl_obj라는 테이블엔 사용중인 테이블명만 있구요(10여개정도)

일단 위의 쿼리대러 실행하면 

ORA-31011 xml구문분석 실패함

ORA-19202  xml처리

LPX-00601 : invalid token in '//text ()'중 오류가 발생했습니다 라는 메세지가 나오네요

실질적으로 obj_tbl에 테이블들은 base_year라는 컬럼으로 관리되는 중인데요

테이블별 ,base_year 건수을 알고 싶은데 테이블별로 카운트해서 유니온 하는방법밖에는 없을까요 ㅜ.ㅜ 

 

 

 


     

by 우리집아찌 [2017.10.17 15:04:22]

오라클 버젼은요?


by 마농 [2017.10.17 16:48:20]

10개 정도 테이블이고 테이블 내역에 변동이 없다면?
  - 굳이 위와 같은 동적 쿼리 형태를 사용할 필요는 없을 듯 합니다.
  - 그냥 10 개 UNION ALL 하는 게 나을 듯 하네요.
혹시 테이블명에 소문자가 들어간다거나 하지는 않나요?
  - 소문자 테이블은 따옴표와 함께 사용해야 합니다.


by abysseye [2017.10.17 17:37:33]

오라클 버전은 11g 이구요

사용 테이블 건수는 제가 잘못봤더라구요

30개정도 되는데 데이터 양이 많아서 오래 걸리더라구요 >. <

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