데이터베이스 (3) 썸네일형 리스트형 KEEP DENSE_RANK 함수 변환 Oracle -> PostgreSQL (테이블을 T, 컬럼을 C, 등록일자를 RegDt 로 표현했을 경우) T에서 가장 최근에 등록된 데이터 값중 C의 가장 큰 값은? *(가독성을 위해 변수명만 BOLD) SELECT MAX(C) FROM T WHERE RegDt = (SELECT MAX(RegDt) FROM T); 위 데이터를 오라클에서 KEEP DENSE_RANK 함수를 써서 표현하면 다음과 같다. SELECT MAX(C) KEEP(DENSE_RANK FIRST ORDER BY RegDt DESC) FROM T; 위 함수를 PostgreSQL 로 이관하다가 그대로 사용하지 못한다는 것을 깨달았다. 더 효율적인 방법이야 많겠지만, 구글링 좀 뒤져보니까 좀 복잡하더라도 이게 가장 이해가 잘 돼서 난 이렇게 씀. WITH exampleName.. SQL에서 datetime타입을 java에서 insert SQL에서 조회시 datetime형식은 yyyy-MM-dd hh:mm:ss 형식으로 입력받는다. 현재 안드로이드스튜디오에서 JSONObject 객체를 생성하여 datetime을 put해서 전달하는 상황인데, 해당 컬럼(datetime)에 "2019-06-09 18:00:00"을 입력할 경우 HTTP400(잘못된 요청)응답을 받는다. (SimpleDataFormat이나 TimeStamp로 값을 넣어줘도 마찬가지) 이해가 안되는건 "123"을 입력할 경우 HTTP200 응답을 받아 데이터가 전송되는데 datetime 컬럼엔 null 값이 들어간다. DB 테이블에서 datetime 타입을 date 타입으로 바꾸니까 정상 동작한다. 원인 파악해서 실력 향상은 커녕 이렇게 현실과 타협해가면서 전진하니까 보람이 없다. 오라클 명령어 ●오라클 명령어(필요에 따라 계속 수정) [계정 생성]create user 계정명 identified by 비밀번호 [user에 권한 주기]GRANT connect, resource, dba TO [user_name]; [현재 접속자]show user [db에 유저 확인]select username from dba_users; [현재 계정의 테이블 목록]select * from tab; [계정 잠김 확인]SELECT username, account_status, lock_date FROM dba_users; [계정 잠금 해제]ALTER USER scott ACCOUNT UNLOCK; [테이블스페이스 조회]SELECT TABLESPACE_NAME, STATUS, CONTENTS FROM DBA_TABLES.. 이전 1 다음