PostgreSQL 5

PostgreSql 다중 업데이트

update or insert 를 처리할 수 있는 upsert 문에서 다 건의 데이터를 처리할 순 없었다. 2개의 List 객체를 초기화 하고 신규 데이터와 기존 데이터로 분리, 그리고 각각 일괄로 처리 하였다. update multi rows sample 1 update test as t set--업데이트 하고자 하는 테이블 t column_a = c.column_a from ( values ('123', 1),--업데이트 데이터 row_1 ('345', 2) --업데이트 데이터 row_2 ) as c (column_b, column_a) --업데이트 가져오는 테이블 c where c.column_b = t.column_b; update multi rows sample 2 update test as t..

Programing 2021.05.12

PostgreSQL 날짜, 시간

해당 날짜의 데이터 select count(watt_max) from tbl_test where to_char(regdate, 'YYYY-MM-DD') = '2016-10-17' ; -- 소요시간 : 124초 (150만건) (하루: 20*60*60*24 = 1,728,000) 이렇게 하면 망함! 해당 날짜의 데이터 select count(watt) from tbl_test where regdate >= date '2016-10-17' and regdate < date '2016-10-17' + integer '1' -- 여기선 하루 ; --소요시간 : 634ms (150만건) (하루: 20*60*60*24 = 1,728,000) 해당 날짜의 데이터 select count(watt) from tbl_tes..

Programing 2021.02.22

Oracle TO PostgreSQL 변환 시 검토사항

1. DUAL 오라클에서 사용하는 DUAL 은 제외하고 사용한다. SELECT 1 FROM DUAL 과 같이 DUAL 을 사용할 수 없다. EX> SELECT 1 로만 작성하면 된다. 2. SYSDATE NOW() 함수를 사용한다. EX> SELECT TO_CHAR(NOW(), 'YYYY-MM-DD') 3. NVL COALESCE 함수를 사용한다 SELECT COALESCE(USER_ID, 0) FROM USER_INFO 4. SEQUENCE (시퀀스) 오라클 시퀀스 문법은 시퀀스명.NEXTVAL PostgreSQL 에서는 NEXTVAL('시퀀스명') 으로 사용한다. 5. ROWNUM 오라클(Oracle)에서 사용하는 ROWNUM 을 PostgreSQL에서 사용하는 방법 ▶ WHERE 절에서 사용 SEL..

Programing 2021.02.22

Oracle To PostgreSQL

기본 Oracle 에서 n 은 바이트 수이고 PostgreSQL 에서는 문자 수 입니다. PostgreSQL text 유형은 1GB 까지 number 유형을 numeric 타입으로 변환 할 수 있지만, smallint , int 및 bigint 사용시 성능이 향상 됨 Oracle 에서 to_date() 함수는 날짜와 시간을 모두 반환 하지만, PostgreSQL 에서 날짜만 반환 됨 (to_timestamp() 함수를 사용) --oracle exam SELECT TO_DATE ('20180314121212','yyyymmddhh24miss') FROM dual; --postgres exam SELECT TO_TIMESTAMP ('20180314121212','yyyymmddhh24miss'); Postg..

Programing 2019.02.20
반응형