특정 문자열이 들어있는 컬럼 정보 모두 추출하는 방법 1 3 2,596

by 웁스 [SQL Query] [2013.09.25 10:36:37]


A라는 데이터베이스에 있는 모든 테이블의 컬럼 데이터 중 "change_text" 라는 문자열이 들어있는 컬럼을 모두 추출하고 싶을 때 어떻게 쿼리를 해야 할지 감이 오질 않습니다.;;
도움 부탁 드리겠습니다. 
오라클 샘플도 괜찮지만 ms-sql이면 더 좋을 것 같습니다.
by 마농 [2013.09.25 10:58:46]
-- 문자타입 컬럼중 검색어(특정문자열)가 저장되어 있는 테이블, 컬럼 찾기 --
SELECT tname, cname
  FROM col
 WHERE coltype LIKE '%CHAR%'
   AND TO_NUMBER(
       dbms_xmlgen.getxmltype(
       'SELECT 1 FROM '||tname||' WHERE '||cname||' LIKE ''%검색어%'' AND ROWNUM = 1'
       ).Extract('//text()')
       ) = 1
;

by 웁스 [2013.09.25 11:19:12]
답변 감사합니다.
혹시 ms-sql로 대체할 수 있는 쿼리 tip은 없나요?

by 우리집아찌 [2013.09.25 11:21:12]
요렇게 짜봤는데 에러남 ㅜㅜ WHERE 조건절빼면 잘되네요 멀까요?
SELECT * FROM 
(SELECT table_name 
   , COLUMN_NAME
   , TO_NUMBER( 
    dbms_xmlgen.getxmltype('SELECT COUNT(*) FROM ' || table_name || ' WHERE '|| COLUMN_NAME || '= ''admin'' ').Extract('//text()') 
    ) cnt

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