오늘따라 계속 질문만 드리네요..ㅠㅠ
예를들어 title라는 필드에 [우리나라1] 안녕하세요..
이런식으로 [우리나라1] 이 공통적으로 들어있습니다.
그런데 제목에 들어가는 패턴이 [우리나라 1] , [우리나라 2]...
이런식으로 숫자값이 점점 올라갑니다.
이럴 경우에
기존 : [우리나라 1] 안녕하세요
변경 : 안녕하세요
이런식으로 [] 안에 있는 값들과 []까지 모두 삭제하고 나머지 부분만 그대로 저장할려면 어떤식으로 쿼리를 잡아줘야할까요?
with t as ( select '[우리나라 1] 반갑습니다 [우리나라 2] 안녕하세요.' txt from dual ) select regexp_replace(txt,'\[[^[]+\]','') from t
위의 jkson 님의 쿼리에서 중괄호 '[ ]' 가 타이틀 중간에 들어가는건 그대로 남겨두고 싶을 경우
아래 부분만 추가 하면 됩니다.
regexp_replace(txt,'^\[[^[]+\]','')
jkson님, Kyle님 답변 감사합니다.
말씀해주신대로 했는데..
Invalid regular expression in regexp function.
이런 에러가 나옵니다.
실행하신 쿼리를 올려봐 주세요
정규식을 옮기는 중간에 잘못들어 간거 같은데 쿼리를 봐야 확인이 가능 할듯 하네요
적어주신 쿼리를 그대로 작성을 해보니 그런 결과가 나왔습니다.
with BD_164 as ( select title txt from dual ) select regexp_replace(txt,'^\[[^[]+\]','') from t;
게시판명은 BD_164이고 적용할 필드는 title이라는 필드입니다.
with t as ( select title txt from BD_164 ) select regexp_replace(txt,'^\[[^[]+\]','') from t;
테이블명 적용을 잘 못하셨네요
select regexp_replace(title,'^\[[^[]+\]','') from BD_164;
위에 둘중에 하나를 사용해 보세요
이대로 적으셨다면 Invalid regular expression in regexp function 에러 나기 이전에 'ORA-00904 ~ 부적합한 식별자' 에러부터 떴을 것 같은데요.. 해당 에러가 날 때 실제 실행하신 쿼리를 올려보세요.
with t as ( select title txt from BD_164 ) select regexp_replace(txt,'^\[[^[]+\]','') from t;
이런식으로 실행을 해봐도 똑같은 에러가 나옵니다.
jkson님.. 제가 사용하는 툴이 TiberoAdmin 툴인데 거기에서는 위와같은 에러만 나옵니다.
실행쿼리는 위에 적어놓은것과 동일합니다.
티베로인가요? 정규식이라 크게 다를 것 같진않은데..
일단은
select replace(title,substr(title,instr(title,'['), instr(title,']')),'') from BD_164
이렇게 해보세요. 첫번째 []는 없앨 수 있습니다.
jkson님 답변 감사합니다.
그런데 그런식으로 해도 [] 과 [] 안에있는 내용이 그대로 출력이 됩니다.
티베로가 사용법이 좀 다를까요?? 제가 알기로는 거의 동일한걸로 알고있는데..ㅠㅠ
티베로랑 replace , instr 사용법이 동일할텐데요. 제가 적어드린 방법이 첫번째 [에서 첫번째 ]까지의 문자열을 replace 하는 내용이라 이해만 하셨다면 여러가지 방법으로 테스트 해보시면 될 것 같습니다.