[ DB | ORACLE ] 개행문자 및 공백없애기
개행문자 없애기replace(replace(컬럼명, chr(10), ''), chr(13), '') 공백없애기REPLACE(컬럼명, ' ', '')
- Oracle/Oracle 실무
- · 2024. 9. 23.
select * from 테이블명 where not REGEXP_LIKE(컬럼명, '[^0-9]') ; 관계사에서 숫자로 만들어야하는 컬럼을 문자로 만들어서 난리가 났었다.숫자만 들어와야하는 컬럼에 문자가 있으면 조회하고싶지 않을 때에는 위와같이 사용하면 된다.
새로운 컬럼을 아래와 같이 추가했다.ALTER TABLE 테이블명 ADD CHECK_YN VARCHAR(1) DEFAULT 'N'; 그럼 comment가 빈 상태로 들어가게 되는데 이럴 때에는 컬럼 추가 후 아래와 같이 작업 해 주면 된다. COMMENT ON COLUMN 테이블명.컬럼명 IS 'comment'; 나의 경우 아래와 같이 작업했다.COMMENT ON COLUMN 테이블명.CHECK_YN IS '확인여부';
개행문자 없애기replace(replace(컬럼명, chr(10), ''), chr(13), '') 공백없애기REPLACE(컬럼명, ' ', '')
not in ('aaa','bbb') 이렇게 쓰는 것은 상관이 없지만 여기에 서브쿼리가 들어가면 쿼리의 성능이 떨어진다는 블로그 글을 봤다.그래서 문자열이 아닌 서브쿼리로 작성 된 NOT IN 쿼리를 수정 해 보았다.( JOIN, LEFT JOIN을 통해 쿼리 성능을 높일 수 있다. ) 쿼리 1수정 전SELECT 컬럼명 ...FROM 테이블1WHERE PROJ_NO = :PROJ_NO AND (A컬럼 IS NULL OR A컬럼 = ' ') AND (B컬럼 IS NULL OR B컬럼 = ' ') AND C컬럼 IN (SELECT :PROJ_NO_3||A컬럼 FROM 테이블2 WHERE PROJ..
계속 왜 이런 에러가 생기나 했는데,인터넷에 찾아보니 이유는 두 가지라고한다. DB Link의 설정이 잘못 되었거나 (PW 등) DB Link에서 가져오는 데이터가 너무 많으면 링크가 깨져서 그렇다고 한다. 웃기게도 난 두가지 다 아니었다. 이유는 문자열 연결자 때문이었는데, 쿼리가 아래와 같았다.SELECT :Param||Project_NoFROM 테이블명 @데이터링크WHERE Project_No = :Param 이게 파라미터로 받아오게되면 문자열인지 뭔지 인식을 못한다고한다.그래서 아래와 같이 문자열임을 확실하게 보여줄 수 있도록 데이터를 때려박으니 오류가 사라졌다.SELECT '파라미터'||Project_NoFROM 테이블명 @데이터링크WHERE Project_No = '파라미터'
ORA-01830: 날짜 형식의 지정에 불필요한 데이터가 포함되어 있습니다 01830. 00000 - "date format picture ends before converting entire input string" *Cause: *Action: 일단 데이터 형식은 20240108100641 이런식으로 들어왔다. SELECT COUNT(*) FROM 테이블명 WHERE REG_DATE LIKE '20240108%' and TO_DATE(REG_DATE,0,14, 'YYYYMMDDHH24MISS') >= SYSDATE - INTERVAL '3' MINUTE 이게 기존 쿼리였는데 테스트 데이터의 데이터가 잘못들어오면서 쿼리가 계속 깨졌다. SELECT COUNT(*) FROM 테이블명 WHERE REG_D..