다시시작하는/DATABASE7 쿼리에서 데이터 정렬하기 1. 가장 단순한 방법(속도는 운에 맞기자) select * from table_1 t1 join table_2 t2 on t1.col = t2.col order by t1.col; 2. 오라클의 힌트를 사용하기(무조건 인덱스를 탐) select /*+ index_asc(t1 table_1_idx */ * from table_1 t1 join table_2 t2 on t1.col = t2.col order by t1.col; 인덱스 탄다고 무조건 빨라지는거 아님. 2022. 5. 16. 오라클 오류 : ora-01466 ORA-01466 unable to read data - table definition has changed 오라클에서 테이블 형식이나 속성이 변경되면 flashback 이 안된다는 의미다. 순간 당황스러웠지만 알고나니 테이블에 제약조건이나 컬럼추가를 신중히 해야겠다. 2022. 5. 2. SQL STYLE GUIDE overoid.tistory.com/5 SQL Style Guide 아래 내용은 제가 2008년 프로젝트 당시에 작성한 문서입니다. 당시, 자바나 닷넷은 Code Style Guide 혹은 Code Convention등의 문서가 많았지만, SQL 및 PL/SQL에 대한 문서는 거의 없어서 제가 작성했던 overoid.tistory.com 참고하면 좋을 것 같아 링크... 2020. 11. 11. 실수로 데이터를 삭제했을때 스피드가 생명. SELECT * FROM TMP AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '10' MINUTE) WHERE ID = '1' INTERVAL에 넣을 수 있는 조건은 HOUR, MINUTE, SECOND 다만 스피드가 생명..삭제되었을 때 바로 처리해야지 늦으면 복구를 못하거나 백업 DB에서 복구해야 함. 늦을수록 일은 커짐. 2020. 2. 19. ORA-30926: unable to get a stable set of rows in the source tables ORACLE 데이터베이스를 사용하다보면 MERGE INTO 명령어가 유용할 때가 있다. INSERT, UPDATE를 한방에 해주니까. 그런데 가끔 오류가 발생한다. ORA-30926: unable to get a stable set of rows in the source tables MERGE INTO 문법을 보면 MERGE INTO employees e USING hr_records h ON (e.id = h.emp_id) WHEN MATCHED THEN UPDATE SET e.address = h.address WHEN NOT MATCHED THEN INSERT (id, address) VALUES (h.emp_id, h.address) 여기서 중요한게 USING에서 사용되고 있는 테이블의 ON 조건.. 2020. 2. 4. 오라클에서 TO_CHAR 사용시 공백생기는 이유 숫자를 문자로 변환할 때 가장 많이 사용하는 함수. TO_CHAR 가끔 변환된 문자열앞에 공백이 붙는경우가 있음. 이유는 숫자인 경우 양수는 공백, 음수는 '-'가 붙는다. 없애는 방법은 형식에 'FM'을 넣으면 해결. SELECT TO_CHAR(999, '000') FROM DUAL; -- 결과 ' 999' SELECT TO_CHAR(999, 'FM000') FROM DUAL; -- 결과 '999' SELECT TRIM(TO_CHAR(999, '000')) FROM DUAL; -- 결과 TRIM(' 999') 2020. 1. 30. 이전 1 2 다음