1. UPDATE ''(공백), NULL 이후 SELECT 하기
1 2 3 4 5 6 | /* 테스트 테이블 생성 */ CREATE TABLE TEST_TABLE1 AS( SELECT 1 E_ID, '조현영' E_NAME FROM DUAL UNION ALL SELECT 2 E_ID, '이상현' E_NAME FROM DUAL UNION ALL SELECT 3 E_ID, '김지숙' E_NAME FROM DUAL ); | cs |
1 2 3 | /* 조회하기 */ SELECT * FROM TEST_TABLE1; | cs |
1 2 3 4 | /* E_NAME을 공백으로 업데이트 한다. */ UPDATE TEST_TABLE1 SET E_NAME = '' WHERE E_ID = 1; | cs |
1 2 3 4 | /* E_NAME을 공백으로 업데이트 한 내용을 SELECT한다. */ SELECT * FROM TEST_TABLE1 WHERE E_NAME = ''; | cs |
결과가 나오지 않는다.
본인은 E_NAME을 공백으로 UPDATE를 완료하고
E_NAME에는 공백의 데이터가 들어갈 것이라 예상했지만
공백으로 조회했을때 데이터가 조회되지 않는다.
1 2 3 4 | /*결과가 나온다. */ SELECT * FROM TEST_TABLE1 WHERE E_NAME IS NULL; | cs |
하지만 IS NULL로 SELECT를 하면 데이터가 조회된다.
이 결과를 통해 NULL, 공백('') 모두 NULL로 업데이트 치는 것을 확인했다.
1 2 3 4 5 6 7 8 9 | /* E_NAME을 공백으로 업데이트 한다. */ UPDATE TEST_TABLE1 SET E_NAME = '' WHERE E_ID = 1; /* E_NAME은 NULL로 업데이트 된다. */ UPDATE TEST_TABLE1 SET E_NAME = NULL WHERE E_ID = 1; | cs |
Mybatis를 사용한다면 param값의 유무에 따라 null과 공백을 같이 체크하는 경우를
다음과 같이 볼 수 있다.
1 2 | <if test='custNo != null and custNo != ""'> </if> | cs |
본인은 쿼리에서도 공백으로 데이터를 넣으면 공백으로 업데이트 되는 줄 알았던 것이다.
2. 테이블 컬럼 데이터 쉽게 UPDATE 하는 방법
일반적인 UPDATE 문이다.
1 2 3 | UPDATE TEST_TABLE1 SET E_NAME = '' WHERE E_ID = 1; | cs |
UPDATE 하기전 UPDATE할 데이터를 미리 SELECT 하고 데이터를 확인해
조건을 걸어 작업 하는 경우가 많은데 2단계의 과정 대신
SELECT 해서 바로 컬럼으로 접근해 고칠수 있는 방법이 있다.
1 2 3 4 5 6 7 | EDIT [테이블명] WHERE [컬럼] = [조건] ; SELECT A.*, ROWID FROM [테이블명] alias A ; | cs |
위 구문을 사용하면 SELECT하고 해당 컬럼 데이터에 마우스 더블클릭으로 데이터를 조작하여 업데이트 할 수 있다.
'전체 > Oracle' 카테고리의 다른 글
오라클 column to row (컬럼의 데이터를 여러개의 row로 가져오기) (0) | 2020.02.26 |
---|---|
ORA-28014, ORA-01940 DROP User,CREATE User Oracle 12c (0) | 2019.07.30 |
ORA-28000: the account is locked 활성화 방법 (0) | 2019.07.08 |
oracle USER 생성, 권한부여, table space 생성, export, import 방법 (1) | 2019.06.17 |
Oracle HINT (0) | 2019.04.11 |