WALLET이 OPEN 시에는 일반 쿼리 처럼 사용해도 문제가 전혀 없다.
하지만 WALLET CLOSE 시에는 몇가지 CASE 가 존재한다.
* WALLET CLOSE 상태일때 산술연산 ( + / - x )
- SELECT Condition1 (+ / - X ) Condition2 from table where ..;
Condition1 |
Condition2 |
Evaluation |
A Is NULL |
B Is NULL |
NULL |
A Is NOT NULL |
B IS NULL |
ERROR |
A IS NULL |
B IS NOT NULL |
NULL |
A IS NOT NULL |
B IS NOT NULL |
ERROR |
T1
C1 C2 C3 C4 1 3 1 2 1 2 |
1. select sum(c1) from t1;
- ORA-28365: wallet is not open
2. select sum(c2) from t1;
- ORA-28365: wallet is not open
3. select sum(c3) from t1;
- ORA-28365: wallet is not open4. select sum(c4) from t1;
- 정상 출력
5. select count(c4) from t1;
COUNT(C4)
----------
0
6. select count(c2) from t1;
- ORA-28365: wallet is not opensum(),avg(),abs(),max(),min(),count()등 내부적으로 수학적인 연산이 필요한 경우에는 에러를
리턴한다. 또한 NULL 집합에서의 연산은 NULL 을 리턴하지만 일반연산과의 다른점은 함수를
이용한 연산은 NOT NULL이 하나라도 있으면 에러를 리턴한다는 점이다.
(일반적으로 함수를 이용한 연산은 NULL 을 고려하지 않기 때문이다.)
댓글 없음:
댓글 쓰기