일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Java
- 오류해결
- 개발
- JavaScript
- db
- 친구랑
- kotlin
- oracle
- 도쿄
- 오라클
- AndroidStudio
- 리눅스
- 자바
- GitHub
- 안드로이드스튜디오
- 개발자
- 별5개
- 공부
- Eclipse
- 안드로이드
- 깃허브
- android studio
- 1박2일
- 3박4일
- Android
- 자바스크립트
- Git
- 재밌당
- 코틀린
- error
- Today
- Total
목록오라클 (24)
dev_eunz
오라클에서 DISTINCT ( SELECT시, 같은 데이터를 반복해서 보여주는 것 방지 ) 를 사용할 시에, ORDER BY절을 사용하고 싶어도 사용하기가 어렵다. 아래와 같은 오류가 나타나곤 한다. 오라클 : ORA-01791: SELECT 식이 부적합합니다 MS-SQL : ORDER BY items must appear in the select list if SELECT DISTINCT is specified. 그 때에는 이런 식으로 사용하면 된다. SELECT DISTINCT TMP_1, MAX(TMP_2) FROM TEMP GROUP BY TMP_1 ORDER BY MAX(TMP_2); MAX와 함께 사용하도록 하자.
ORACLE 사용에 있어서, 실수를 했을 때 유용하게 사용된다. 1. DELETE 시, 조건을 잘못 걸었다던가. 2. INSERT 시, 조건을 잘못 걸엇다던가. 3. UPDATE 시, 조건을 잘못 걸었을 때. 즉, DML 사용을 잘못 했을 때에 사용하면 유용하다. 현 시점에서 해당 시간만큼 돌아간 시점의 데이터를 볼 수 있다. ( 그 때의 데이터를 저장했다가, 원하는대로 사용하면 된다. ) SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '숫자' 단위) WHERE 조건 ( 이부분은 없어도 된다._) 숫자 - 정수 ( 1/ 3/ 10 등 ) 단위 - SECOND, MINUTE, HOUR, DAY ※ 만능은 아니고, 너무 오래 전의 데이터는 볼 수 없다. ..
데이터베이스를 사용하다 보면, 함수에서 DML 사용을 하면 편하게 처리가 되는 경우가 있다. 이 때에, 함수에서는 트랜잭션 수행을 할 수 없다는 오류가 나오게 된다. 해결방안은 함수의 시작부분에 pragma autonomous_transaction; 위의 문구를 추가해주면 된다.
회사에서 ORACLE DB를 사용하고 있는데, '시퀀스'를 생각보다 많이 사용하게 되었다. 잇츠 유용해 😆 시퀀스를 생성하는 방법이야 SQL Developer와 같은 툴을 사용해서 편리하게 생성할 수 있지만, 현재 시퀀스의 값이 무엇인지 궁금할 때에는 어떻게 해야할 지 아리송 했던 경험이 있어서 작성하게 되었다. '시퀀스이름.CURRVAL'을 사용하라는 사람들도 꽤나 있었지만, ORA-08002 : '시퀀스이름.CURRVAL'이 세션에서는 정의 되어 있지 않습니다 위와 같은 에러를 맞닥뜨리는 경험을 하게 되었다. 에러의 원인은 '시퀀스이름.CURRVAL'이 해당 세션(일종의 기록)에 남아있지 않다는 것이었다. '시퀀스이름.NEXTVAL' 을 사용하여 세션을 생성해주어야 사용 가능하다. 하지만, 이렇게 된..