NVL과 NVL2 데이터 처리를 할 때 NULL 처리는 중요하며 오라클(oracle)에서는 이런 NULL 데이터 처리를 간편하게 하기 위해 NLV 함수를 제공한다. 오라클 외 다른 데이터베이스에서는 nvl 사용이 불가능하다. NVL 함수 NVL( 대상 , null인 경우 값 ) NULL 값을 다른 값으로 바꿀 때 사용하며, 모든 데이터 타입에 적용이 가능하다. 1 2 3 4 5 6 7 8 9 10 -- 매니저가 없는 값을 0으로 바꾸어서 출력하는 예제. SELECT empno, NVL(mgr, 0) mgr FROM emp WHERE deptno = 10; EMPNO MGR ------- ------- 7782 7839 7839 0 7934 7782 cs NVL2 함수 NVL2라는 함수는 NVL함수의 DE..
오라클에서 특정 문자열을 치환하거나 제거하기 위해서는 replace() 함수를 사용한다. 단순 문자열 치환 외에도 엔터값 제거나 태그를 엔터값 치환에도 많이 사용된다. replace(컬럼명, '찾을문자', '변환문자') 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 -- 간단한 REPLACE 예이다. SELECT REPLACE('oracleclub','oracle','db') name FROM DUAL; NAME ------ dbclub -- 대소문자를 구분한다는 것을 알수 있다. SELECT REPLACE('OracleClub','oracle','DB') name FROM DUAL UNION ALL SELECT REPLACE('OracleClub','Oracle','DB')..
요구사항으로 자릿수를 일정하게 맞춰달라는 요구가 있다. 이럴 때오라클에서 유용하게 사용할 수 있는 함수는 LPAD, RPAD 함수이다. LPAD, RPAD함수는 n자리만큼 왼쪽, 오른쪽 부터 채워서 반환하는 문자열 함수이다. LPAD, RPAD 본래 용도는 문자열 삽입을 주 용도로 사용하지만, 자릿수를 일정하게 맞추는 용도로도 사용할 수 있다. LPAD, RPAD LPAD(char1, n [,char2]) RPAD(char1, n [,char2]) LPAD : 왼쪽에 문자열을 끼어 놓는 역할을 한다. RPAD : 오른쪽에 문자열을 끼어 놓는 역할을 한다. n은 반환되는 문자열의 전체 길이를 나타내며, char1의 문자열이 n보다 클 경우 char1을 n개 문자열만큼 반환한다. 1 2 3 4 5 6 7 8..
오라클에서 SUBSTR 함수는 문자열을 자를 때 사용하는 기본 함수이다. 문자 단위로 자를때는자를 때는 SUBSTR 함수를 사용하고, 바이트 단위로 자를 때는 SUBSTRB 함수를 사용하면 된다. SUBSTR(char, m ,[n]), SUBSTRB(char, m ,[n]) SUBSTR 함수는 m 번째 자리부터 길이가 n개인 문자열을 반환 한다. m이 음수일 경우에는 뒤에서 m 번째 문자부터 n개의 문자를 반환한다. SUBSTRB 함수에서 B는 Byte단위로 처리하겠다는 의미이다. 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 -- 세번째 이후 문자열 반환. SELECT SUBSTR('oracleclub', 3) name FROM D..
CASE문 자바의 조건문과도 같은 기능을 하는 SQL의 조건문이다. CASE문은 WHEN... THEN쌍을 검색한다. 조회해 올 때의 조건은 WHERE 문으로 조건을 걸어 가져올 수 있다. 하지만 가져온 값에 어떤 조건을 걸어 보여주거나 또는 값을 변환할 필요가 있을 경우는 CASE... WHEN... THEN문을 쓴다. CASE WHEN [조건문] THEN [조건이 맞으면 반환할 값] ELSE [조건이 맞지않으면 반환할 값] END 1 2 3 4 5 6 7 8 UPDATE 테이블명 SET 값이 대입될 칼럼명 = CASE WHEN 비교칼럼1 = 비교값1 THEN 대입될 값1 WHEN 비교칼럼2 = 비교값2 THEN 대입될 값2 ELSE 값3 END; cs ELSE 문 같은 경우 선택사항이지만 혹시 모든 ..
서브 쿼리 하나의 SQL문 안에 포함되어 있는 또 다른 SQL. 서브 쿼리는 알려지지 ㅇ낳은 기준을 이용한 검색을 위해 사용한다. 서브 쿼리는 메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다. 서브쿼리 사용 시 주의사항 서브 쿼리를 괄호로 감싸서 사용한다. 서브 쿼리는 단일 행(Single Row) 또는 복수 행(Multiple Row) 비교 연산자와 함께 사용 가능하다. 단일 행 비교 연산자는 서브 쿼리의 결과가 반드시 1건 이하이어야 하고 복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관없다. 서브 쿼리에서는 ORDER BY를 사용하지 못한다. ORDER BY절은 SELECT절에서 오직 한 개만 올 수 있기 때문에 ORDER BY절은 메인쿼리의 마지막 문장에 위치해야 한다. 1. 단일행 서브쿼리 서..
ORA-01045 유저명 CREATE SESSION privilege; logon denied 해당 에러는 user가 새로 생성되거나 권한이 없을때 발생하는 에러입니다. 다시 말해 새로 생성한 유저가 접근할 권한이 없을때 발생하는 에러인데요. 권한 부여 방법 1. 윈도+R 누른 후 cmd 입력 혹은 시작-> 보조 프로그램-> 명령 프롬프트 2. sqlplus 입력 후 엔터 3. /as sysdba 입력 후 엔터 4. grant connect, resource to 계정명; 입력 후 엔터
오라클의 경우 무턱대고 새로 만든 계정으로 접속을 하게 되면 invalid username/password; logon denied라는 메시지가 뜨게 됩니다. 이러한 에러 메시지의 원인은 존재하는 계정이 없어서 생기는 오류이므로 cmd창을 통해 계정을 생성시켜야 합니다. 계정 생성 방법 1. 윈도+R 누른 후 cmd 입력 혹은 시작-> 보조 프로그램-> 명령 프롬프트 2. sqlplus 입력 후 엔터 3. /as sysdba 입력 후 엔터 4. create user 계정명 identified by 비밀번호; 입력 후 엔터 계정 권한 부여 방법 grant connect, dba, resource to 계정명; 계정 수정 방법 alter user 계정명 identified by 패스워드; 계정 삭제 방법 d..