VARCHAR2 타입을 사용하다가 CLOB 타입을 만난다면 귀찮기가 이루말할 수 없을 정도일 것이다. 하물며 CLOB 타입을 사용하는 이유는 VARCHAR2 타입은 최대 4000 Byte 용량을 저장할 수 있는데 반해, 훠~ㄹ씬 더 많은 4GByte의 대용량 저장 공간를 제공해 주기 때문일 것이다. TYPE에 대한 보다 자세한 설명은 생략하기로 하고, 본론으로 들어가자. Oracle CLOB 타입의 기본적인 쿼리사용과 Java/MyBatis, Javascript/jQuery 의 … 계속 읽기 Oracle CLOB 4000 이상 SELECT
[카테고리:] oracle
테이블 생성 후 DB접속 오류[Synonym:시노님]
분명히 테이블을 만들었는데, 테이블을 찾을 수 없다고 나온다면... Synonym을 등록해 주지 않아서 발생하는 문제일 수 있다! 테이블을 생성한 후, 항상 Synonym을 등록해 주어야 한다! Synonym등록방법 1. DB에 접속한다. (관리자계정) 2. Synonym을 등록한다. CREATE OR REPLACE PUBLIC SYNONYM MY_TABLE_NAME --[시노님명: 일반적으로 테이블명을 넣는다.] FOR AABOO.MY_TABLE_NAME --[테이블계정].[적용할 테이블명] ; (일반적으로 시노님명과 테이블명을 같이 쓴다.)
oracle 마지막날짜last_day, 요일day
SELECT LAST_DAY(SYSDATE) FROM DUAL; -- 01/31/2020 12:34:04 SELECT TO_CHAR(LAST_DAY(SYSDATE),'DD') FROM DUAL; --31 SELECT TO_CHAR(LAST_DAY(TO_DATE('201911','YYYYMM')),'DD') FROM DUAL; --30 SELECT TO_CHAR(LAST_DAY(TO_DATE('20221110','YYYYMMDD')),'DAY') FROM DUAL; --목요일 SELECT TO_CHAR(LAST_DAY(TO_DATE('20221110','YYYYMMDD')),'DY') FROM DUAL; --목
오라클 TIMESTAMP 형식
데이터형식 아래와 같이 6을 주면, 1/1000000 초 단위로 보여주드라 TIMESTAMP(6) 쿼리 SELECT SYSTIMESTAMP , TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD HH24:MI:SS.-FF') FROM DUAL; /*결과값 19/12/03 14:27:02.862583 +09:00 2019-12-03 14:27:02.862583 */
오라클 랜덤 숫자 만들어주기
참조 : http://starlandm.blogspot.jp/2010/09/oracle-%EB%9E%9C%EB%8D%A4%EA%B0%92-%EB%B0%9C%EC%83%9D%EC%8B%9C%ED%82%A4%EA%B8%B0.html SELECT ROUND(DBMS_RANDOM.VALUE(1,17),0) FROM DUAL;
오라클 정규식 regexp_replace
정규식 문자 변형 select regexp_replace('가나다라12345647890', '[0-9]', '')from dual; ==> 결과값 '가나다라'
테이블 칼럼 추가 수정 삭제 스크립트
1. 컬럼 추가 alter table 테이블 add(필드 number(10)); 2. 컬럼명 변경 alter table 테이블 rename column 현재이름 to 변경이름; 3.데이터 타입 변경 alter table 테이블 modify(필드명 varchar(10)); 4.컬럼삭제 alter table 테이블 drop(필드);
오라클 SELECT 엑셀 변환 후 엑셀에서 개행되어 보이도록 처리하기
REGEXP_REPLACE( REGEXP_REPLACE( '어쩌구저쩌구', '\\n', CHR(10) ), '\\r', CHR(13)) n과 r이 바뀌었을지도 모름. ㅡㅡㅋ
ROW_NUMBER() OVER(PARTITION BY 칼럼1 ORDER BY 칼럼1)
SELECT 'A' d, 1 a, 2 b, 3 c FROM dual UNION ALL SELECT 'B' d, 4 a, 5 b, 6 c FROM dual UNION ALL SELECT 'B' d, 7 a, 8 b, 9 c FROM dual UNION ALL SELECT 'C' d, 0 a, 1 b, 2 c FROM dual UNION ALL SELECT 'C' d, … 계속 읽기 ROW_NUMBER() OVER(PARTITION BY 칼럼1 ORDER BY 칼럼1)
WM_CONCAT보다 속도가 좋은 LISTAGG
참고사이트 : http://krespo.net/195 11g에서 가능 간단한 예 SELECT DEPTNO , LISTAGG(NAME, ',') WITHIN GROUP (ORDER BY NAME) AS NAME FROM TEST_DB WHERE DEPTNO = 1 GROUP BY DEPTNO; 데이터가 적을때는 문제 없었지만, 데이터가 많아지니 WM_CONCAT에서 속도를 다 잡아 먹고 있었다. 아래처럼 LISTAGG로 바꾸니 속도가 많이 빨라졌다. SELECT B.HICODE, B.HINAME, A.MCODE, A.MNAME, A.BUSINESSNUMBER, A.PURCHASETYPE , LISTAGG(DECODE(C.DDCFLAG,'I',C.ACQUIER,''),',') WITHIN GROUP … 계속 읽기 WM_CONCAT보다 속도가 좋은 LISTAGG