반응형

DB 19

ORA-01489: 문자열 연결의 결과가 너무 깁니다

data1과 data2가 VARCHAR2 타입인 다음과 같이 문자열 조합을 통해 쿼리 작성 시 하나의 결과라도 VARCHAR2 타입의 한계인 4000 문자를 초과 하게 되면 위의 에러 발생. select test1 || test2 from tb_test; * 해결 1) 기존의 컬럼 데이터대로 분리해서 애플리케이션에서 병합. select test1, test2 from tb_test; 2) CLOB 타입으로 변환해서 병합. (to_clob()은 CLOB 타입으로 변환해주는 함수.) select to_clob(test1) || to_clob(test2) from tb_test;

DB/Oracle 2020.01.03

EXPLAIN 쿼리 실행계획

EXPLAIN [EXTENDED | PARTITIONS] SELECT select_options SELECT 명령문을 EXPLAIN 앞에 두면, MySQL은 쿼리 실행 플랜 (query execution plan) 정보를 옵티마이저 (optimizer)에서 가져 와서 출력 한다. 즉, MySQL은 테이블들이 어떤 순서로 조인 (join) 하는지에 대한 정보를 포함해서, SELECT를 처리하는 방법에 대해서 알려 준다. EXPLAIN PARTITIONS는 MySQL 5.1.5부터 사용 가능하다. 이것은 파티션된 테이블을 포함하는 쿼리를 실행할 때에만 유용하다. 즉 테이블의 파티션중 어떤 파티션을 사용했는지 등의 정보를 조회 할 수 있다. EXTENDED 키워드가 사용되면, EXPLAIN은 EXPLAIN 명..

DB/Mysql 2019.12.24

ORA-01861: literal does not match format string (리터럴이 형식 문자열과 일치하지 않음)

ORA-01861: literal does not match format string (리터럴이 형식 문자열과 일치하지 않음) 개발자 로컬 환경에서는 정상적으로 실행되는 쿼리가 운영환경에 반영을 하면 이와 같은 에러가 발생되는 케이스가 종종 있다. 원인은 TO_DATE와 TO_CHAR의 함수에 날짜형식을 지정하지 않았을 때 기본값으로 지정되는 형식이 달라서 그렇다. TO_DATE('2020-01-01', 'YYYY-MM-DD') 이런식으로 쓰는데 두번째 인수인 'YYYY-MM-DD'를 생략해버리면 환경에 따라 서로 다른값이 지정되기 때문에 위와같은 ORA-01861 오류가 생기는 것이다. 물론 최선의 해결책은 TO_DATE와 TO_CHAR를 쓸 때에는 항상 데이터형식을 맞게 사용 하는 것 이다. 하지만 ..

DB/Oracle 2019.11.27

ORA-12514, ORA-12560

ORA-12514, ORA-12560 *사전 확인 내용 - DB 인스턴스 서비스 정상 / TNSListener 서비스 정상 - listner.ora 와 tnsname.ora 를 확인해 보았으나 특이 사항 없음 * 원인 listener 의 로그파일의 용량이 4GB 이상일 경우 오류 발생 한다는 내용을 확인함 (경로 ex. D:\app\USER\diag\tnslsnr\DESKTOP-NAME\listener\trace) lsnrctl set log_status off --> 리스너의 로그 기록 사용 안 함 설정 rename listener.log listener_%date%.old --> 로그 파일명을 오늘 날짜의 로그파일명으로 변경 lsnrctl set log_status on --> 리스너의 로그 기록 사..

DB/Oracle 2019.11.19
반응형