database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41851 게시물 읽기
No. 41851
전체 테이블에서 특정 데이터 검색
작성자
노진규(nojinkyu)
작성일
2021-05-18 12:29ⓒ
2021-05-18 12:35ⓜ
조회수
8,209

전체 테이블에서 특정 데이터를 검색하고자 합니다.

1. Sql developer에서 쿼리 실행

SELECT 'SELECT count('||COLUMN_NAME||') cnt, '''||TABLE_NAME||'.'||COLUMN_NAME||''' target, TO_CHAR('||COLUMN_NAME||') contents  FROM '||TABLE_NAME||' WHERE  TO_CHAR('||COLUMN_NAME||') like ''%'||'코로나'||'%''

GROUP BY '||COLUMN_NAME||'

UNION ALL'  FROM USER_TAB_COLUMNS

ORDER BY TABLE_NAME,COLUMN_ID;

위 방법대로 나온 쿼리 결과물이 10,000 라인정도가 되고,  아래 2번과 같이 한번 감싸서 실행했습니다.


2. 쿼리 실행결과를 감싸서 다시 쿼리 실행(원본은 10,000 라인 정도 됨)

select * from

(

SELECT count(BBSSEQ) cnt, 'BBSATCLT.BBSSEQ' target, TO_CHAR(BBSSEQ) contents  FROM BBSATCLT WHERE  TO_CHAR(BBSSEQ) like '%코로나%'

GROUP BY BBSSEQ

UNION ALL

SELECT count(HBBSID) cnt, 'BBSATCLT.HBBSID' target, TO_CHAR(HBBSID) contents  FROM BBSATCLT WHERE  TO_CHAR(HBBSID) like '%코로나%'

GROUP BY HBBSID

UNION ALL

SELECT count(CATSEQ) cnt, 'BBSATCLT.CATSEQ' target, TO_CHAR(CATSEQ) contents  FROM BBSATCLT WHERE  TO_CHAR(CATSEQ) like '%코로나%'

GROUP BY CATSEQ

UNION ALL

SELECT count(GRPNUM) cnt, 'BBSATCLT.GRPNUM' target, TO_CHAR(GRPNUM) contents  FROM BBSATCLT WHERE  TO_CHAR(GRPNUM) like '%코로나%'

GROUP BY GRPNUM

UNION ALL

SELECT count(GRPSEQ) cnt, 'BBSATCLT.GRPSEQ' target, TO_CHAR(GRPSEQ) contents  FROM BBSATCLT WHERE  TO_CHAR(GRPSEQ) like '%코로나%'

GROUP BY GRPSEQ

UNION ALL

SELECT count(INDENT) cnt, 'BBSATCLT.INDENT' target, TO_CHAR(INDENT) contents  FROM BBSATCLT WHERE  TO_CHAR(INDENT) like '%코로나%'

GROUP BY INDENT

UNION ALL

SELECT count(PBSSEQ) cnt, 'BBSATCLT.PBSSEQ' target, TO_CHAR(PBSSEQ) contents  FROM BBSATCLT WHERE  TO_CHAR(PBSSEQ) like '%코로나%'

GROUP BY PBSSEQ

UNION ALL

SELECT count(SRCSEQ) cnt, 'BBSATCLT.SRCSEQ' target, TO_CHAR(SRCSEQ) contents  FROM BBSATCLT WHERE  TO_CHAR(SRCSEQ) like '%코로나%'

GROUP BY SRCSEQ

UNION ALL

SELECT count(CHDCNT) cnt, 'BBSATCLT.CHDCNT' target, TO_CHAR(CHDCNT) contents  FROM BBSATCLT WHERE  TO_CHAR(CHDCNT) like '%코로나%'

GROUP BY CHDCNT

UNION ALL

SELECT count(BTITLE) cnt, 'BBSATCLT.BTITLE' target, TO_CHAR(BTITLE) contents  FROM BBSATCLT WHERE  TO_CHAR(BTITLE) like '%코로나%'

GROUP BY BTITLE

UNION ALL

SELECT count(ATICLE) cnt, 'BBSATCLT.ATICLE' target, TO_CHAR(ATICLE) contents  FROM BBSATCLT WHERE  TO_CHAR(ATICLE) like '%코로나%'

GROUP BY ATICLE

UNION ALL

SELECT count(FILCNT) cnt, 'BBSATCLT.FILCNT' target, TO_CHAR(FILCNT) contents  FROM BBSATCLT WHERE  TO_CHAR(FILCNT) like '%코로나%'

GROUP BY FILCNT

UNION ALL

SELECT count(REFCNT) cnt, 'BBSATCLT.REFCNT' target, TO_CHAR(REFCNT) contents  FROM BBSATCLT WHERE  TO_CHAR(REFCNT) like '%코로나%'

GROUP BY REFCNT

UNION ALL

SELECT count(CMTCNT) cnt, 'BBSATCLT.CMTCNT' target, TO_CHAR(CMTCNT) contents  FROM BBSATCLT WHERE  TO_CHAR(CMTCNT) like '%코로나%'

GROUP BY CMTCNT

UNION ALL

SELECT count(RCMCNT) cnt, 'BBSATCLT.RCMCNT' target, TO_CHAR(RCMCNT) contents  FROM BBSATCLT WHERE  TO_CHAR(RCMCNT) like '%코로나%'

GROUP BY RCMCNT

UNION ALL

SELECT count(PROCST) cnt, 'BBSATCLT.PROCST' target, TO_CHAR(PROCST) contents  FROM BBSATCLT WHERE  TO_CHAR(PROCST) like '%코로나%'

GROUP BY PROCST

UNION ALL

SELECT count(BBSSDT) cnt, 'BBSATCLT.BBSSDT' target, TO_CHAR(BBSSDT) contents  FROM BBSATCLT WHERE  TO_CHAR(BBSSDT) like '%코로나%'

GROUP BY BBSSDT

UNION ALL

SELECT count(BBSEDT) cnt, 'BBSATCLT.BBSEDT' target, TO_CHAR(BBSEDT) contents  FROM BBSATCLT WHERE  TO_CHAR(BBSEDT) like '%코로나%'

GROUP BY BBSEDT

UNION ALL

SELECT count(BBSNTC) cnt, 'BBSATCLT.BBSNTC' target, TO_CHAR(BBSNTC) contents  FROM BBSATCLT WHERE  TO_CHAR(BBSNTC) like '%코로나%'

GROUP BY BBSNTC

UNION ALL

SELECT count(BBSOPN) cnt, 'BBSATCLT.BBSOPN' target, TO_CHAR(BBSOPN) contents  FROM BBSATCLT WHERE  TO_CHAR(BBSOPN) like '%코로나%'

GROUP BY BBSOPN

UNION ALL

SELECT count(IMGURL) cnt, 'BBSATCLT.IMGURL' target, TO_CHAR(IMGURL) contents  FROM BBSATCLT WHERE  TO_CHAR(IMGURL) like '%코로나%'

GROUP BY IMGURL

UNION ALL

SELECT count(REGSNM) cnt, 'BBSATCLT.REGSNM' target, TO_CHAR(REGSNM) contents  FROM BBSATCLT WHERE  TO_CHAR(REGSNM) like '%코로나%'

GROUP BY REGSNM

UNION ALL

SELECT count(MODDAT) cnt, 'BBSATCLT.MODDAT' target, TO_CHAR(MODDAT) contents  FROM BBSATCLT WHERE  TO_CHAR(MODDAT) like '%코로나%'

GROUP BY MODDAT

UNION ALL

SELECT count(REGDAT) cnt, 'BBSATCLT.REGDAT' target, TO_CHAR(REGDAT) contents  FROM BBSATCLT WHERE  TO_CHAR(REGDAT) like '%코로나%'

GROUP BY REGDAT

UNION ALL

SELECT count(MBRPID) cnt, 'BBSATCLT.MBRPID' target, TO_CHAR(MBRPID) contents  FROM BBSATCLT WHERE  TO_CHAR(MBRPID) like '%코로나%'

GROUP BY MBRPID

UNION ALL

SELECT count(CITINO) cnt, 'BBSATCLT.CITINO' target, TO_CHAR(CITINO) contents  FROM BBSATCLT WHERE  TO_CHAR(CITINO) like '%코로나%'

GROUP BY CITINO

UNION ALL

SELECT count(PASSWD) cnt, 'BBSATCLT.PASSWD' target, TO_CHAR(PASSWD) contents  FROM BBSATCLT WHERE  TO_CHAR(PASSWD) like '%코로나%'

GROUP BY PASSWD

UNION ALL

SELECT count(TELNUM) cnt, 'BBSATCLT.TELNUM' target, TO_CHAR(TELNUM) contents  FROM BBSATCLT WHERE  TO_CHAR(TELNUM) like '%코로나%'

GROUP BY TELNUM

UNION ALL

SELECT count(MEMAIL) cnt, 'BBSATCLT.MEMAIL' target, TO_CHAR(MEMAIL) contents  FROM BBSATCLT WHERE  TO_CHAR(MEMAIL) like '%코로나%'

GROUP BY MEMAIL

UNION ALL

SELECT count(BIZTYPE) cnt, 'BBSATCLT.BIZTYPE' target, TO_CHAR(BIZTYPE) contents  FROM BBSATCLT WHERE  TO_CHAR(BIZTYPE) like '%코로나%'

GROUP BY BIZTYPE

UNION ALL

SELECT count(REQTYPE) cnt, 'BBSATCLT.REQTYPE' target, TO_CHAR(REQTYPE) contents  FROM BBSATCLT WHERE  TO_CHAR(REQTYPE) like '%코로나%'

GROUP BY REQTYPE

)

where cnt > 0;

---------------------------------------------------

3. 오류 발생

ORA-00932: 일관성 없는 데이터 유형: -이(가) 필요하지만 CLOB임

00932. 00000 -  "inconsistent datatypes: expected %s got %s"

*Cause:    

*Action:

33행, 14열에서 오류 발생


전체 테이블에서 특정 데이터를 검색하고 싶은데 검색된 다른 정보들은 이해가 되지않아 적용하기 힘드네요.

더 쉬운 방법 있으면 알려주세요.

이 글에 대한 댓글이 총 1건 있습니다.

1. 특정 단어를 검색하는 것이므로 컬럼 타입을 제한할 필요가 있구요.

- WHERE data_type LIKE '%CHAR%'

2. 불필요한 부분이 보이는데.

- COUNT(컬럼명) 도 COUNT(*) 로 바꾸면 되고

- 컬럼 타입 제한 걸면 TO_CHAR 도 필요 없어 보입니다.

마농(manon94)님이 2021-05-18 18:22에 작성한 댓글입니다.
이 댓글은 2021-05-20 09:12에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
41856조인시 실행계획에서 풀스캔 [1]
라라라
2021-07-02
2547
41853풀스캔 질문 드립니다 [2]
궁금이
2021-05-27
2702
41852오라클 19c(윈도우즈용 x64) 설치 에러!!!
신승익
2021-05-24
2731
41851전체 테이블에서 특정 데이터 검색 [1]
노진규
2021-05-18
8209
41849파티션 테이블 잘라내기(월간 -> 일간) 문의 [2]
세션
2021-05-14
2541
41848테이블 조인 후 그룹별로 묶어서 그룹별 상위 1개씩 출력하고 싶습니다 [3]
노진규
2021-05-06
2491
41847오라클 계정 생성 질문입니다.
박승우
2021-04-13
2635
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다