오라클에서 문자열에서 괄호 안의 텍스트, 글자, 문자, 숫자를 추출할 때는 정규식 함수를 사용하면 쉽게 추출할 수 있다. 그러나 오라클 9i 이하인 경우 정규식 함수를 사용할 수 없기 때문에 SUBSTR 함수를 사용해서 추출해야 한다. 정규 표현식을 사용하여 문자를 추출할 때는 딱 정해진 방법이 없고, 상황에 따라서 가장 최적의 방법을 사용하면 된다. 아래의 예제를 참고하여 상황에 따라서 정규 표현식을 추가하거나 변형하여 사용하면 된다. 목차 REGEXP_SUBSTR 함수를 사용하여 괄호 안 문자 추출 SUBSTR 함수를 사용하여 괄호 안 문자 추출 REGEXP_SUBSTR 함수를 사용하여 괄호 안 문자 추출 문자열에서 괄호와 문자를 같이 추출할 경우 WITH temp AS ( SELECT 'Oracle..
오라클에서 칼럼의 문자열에서 한글이 아닌 문자를 제거하고 한글만 추출해야 하는 경우가 있다. 문자열에서 한글만 추출할 때는 정규식 함수를 사용하면 쉽게 해결된다. 오라클에서 정규식 함수는 대부분 10g 이상의 버전에서 사용 가능하니 이점에 유의하여 아래의 기본적인 예제를 참고하여 활용하면 된다. 목차 문자열에서 한글만 추출 방법 문자열에 한글이 포함된 데이터만 조회 방법 문자열에서 한글만 추출 방법 WITH temp AS ( SELECT '오라클 데이터베이스 21c' AS ora_nm FROM dual UNION ALL SELECT 'Oracle Database 21c' AS ora_nm FROM dual UNION ALL SELECT 'Oracle 21c (오라클)' AS ora_nm FROM dual..
오라클에서 날짜, 전화번호와 같은 문자열에서 특수문자 또는 문자를 제거하고 숫자만 추출해야 할 경우가 있다. 문자열에서 숫자만 추출하기 위해서는 Oracle 10g부터 추가된 정규식 함수를 사용하면 쉽게 해결이 된다. Oracle 10g 이전 버전에서는 TRANSLATE 함수를 사용하여 문자열에서 숫자만 추출할 수 있다. 정규식 함수를 사용하면 문자열에서 원하는 위치의 숫자만 추출할 수 있기 때문에 조금 더 다양한 결과를 얻을 수 있다. 목차 REGEXP_REPLACE 함수를 사용하여 숫자만 추출 (Oracle 10g 이상) TRANSLATE 함수를 사용하여 숫자만 추출 (Oracle 8i 이상) 문자열의 마지막 숫자만 추출 (REGEXP_SUBSTR 함수) REGEXP_REPLACE 함수를 사용하여 숫..
오라클에서 다른 스키마에 생성된 패키지의 실행 또는 사용 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용하여 실행 권한을 부여하면 된다. 실행 권한을 부여하면 패키지 내부에 선언된 모든 함수, 프로시저를 사용할 수 있다. 패키지의 생성 권한을 부여하기 위해서는 "GRANT CREATE PROCEDURE" 구문을 사용하여 생성 권한을 부여하면 된다. 패키지의 권한 부여 방법은 프로시저의 권한 부여 방법과 동일하다. 목차 패키지 실행 권한 부여 (EXECUTE) 패키지 생성 권한 부여 (CREATE) 패키지 실행 권한 부여 (EXECUTE) -- 패키지 실행 권한 부여 GRANT EXECUTE ON hr.pkg_hello TO scott; -- 패키지 실행 권한 제거(회수) REVOKE E..
오라클에서 타 스키마에 생성된 프로시저의 사용 권한 또는 실행 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용한다. "프로시저 권한이 불충분합니다"라는 오류 메시지가 발생하면 실행 권한을 부여하면 된다. 프로시저 생성, 컴파일, DDL 권한을 부여하기 위해서는 "GRANT CREATE PROCEDURE" 구문을 사용하여 권한을 부여하면 프로시저 생성, 수정, 삭제 권한이 부여된다. 목차 프로시저 실행 권한 부여 (EXECUTE) 프로시저 생성 권한 부여 (CREATE) 프로시저 실행 권한 부여 (EXECUTE) 특정 프로시저 실행 권한 부여 -- 프로시저 실행 권한 부여 GRANT EXECUTE ON hr.pc_helloworld TO scott; -- 프로시저 실행 권한 제거(회수) ..
오라클에서 다른 스키마의 함수 실행(사용) 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용하면 된다. 그리고 함수의 생성 또는 컴파일 권한을 부여하기 위해서는 "GRANT CREATE FUNCTION" 구문을 사용할 수 없고 "GRANT CREATE PROCEDURE" 구문을 사용하여 함수 생성 권한을 부여할 수 있다. 목차 함수 실행 권한 부여 (EXECUTE) 함수 생성 권한 부여 (CREATE) 함수 실행 권한 부여 (EXECUTE) 특정 함수의 실행 권한 부여 -- 함수 실행 권한 부여 GRANT EXECUTE ON hr.fn_helloworld TO scott; -- 함수 실행 권한 제거(회수) REVOKE EXECUTE ON hr.fn_helloworld FROM scott;..
오라클에서 다른 스키마(사용자)에 생성된 테이블의 DML(SELECT, INSERT, UPDATE, DELETE ) 권한을 부여하기 위해서는 GRANT 문을 사용하면 된다. GRANT CREATE ANY TABLE 권한을 부여하면 다른 스키마에 테이블을 생성할 수 있는 권한이 부여된다. 자신의 스키마에는 GRANT CREATE TABLE 권한만 부여하면 생성, 삭제, DML 작업이 가능하다. 목차 다른 스키마 테이블 DML 권한 부여 다른 스키마 테이블 DML 권한 제거 다른 스키마 테이블 생성, 수정 제거 권한 다른 스키마 인덱스 생성, 수정 제거 권한 자신의 스키마에 테이블 생성 권한 부여 권한을 부여하기 위해서는 DBA 계정 또는 권한 부여가 가능한 계정으로 로그인 후 권한을 부여해야 한다. 다른 ..
오라클에서 시스템 권한을 부여하거나 회수(제거) 하기 위해서는 GRANT, REVOKE 문을 사용하면 된다. 사용자를 생성 후 시스템 권한이 부여되어야 데이터베이스 접속(로그인)이 가능하고 테이블 생성 및 데이터 입력(INSERT)이 가능하다. 세션 권한이 부여되지 않으면 사용자가 로그인할 때 ORA-01045 오류가 발생할 수 있다. 목차 CREATE SESSION (데이터베이스 접속 권한) CREATE TABLE (테이블 생성 권한) UNLIMITED TABLESPACE (테이블스페이스 사용 권한) CREATE INDEX (인덱스 생성 권한) 권한 회수(제거) 방법 (REVOKE) 시스템 권한 부여 방법 정리 CREATE SESSION (데이터베이스 접속 권한) GRANT CREATE SESSION ..
오라클에서 사용자(유저) 계정의 기본 테이블스페이스, 임시 테이블스페이스를 변경할 때는 ALTER USER 문을 사용하면 된다. QUOTA를 사용하여 기본 테이블스페이스의 용량 할당 또는 사용량을 제한할 수 있다. 사용자의 테이블스페이스명 변경 및 용량 변경 방법은 아래를 참고하면 된다. 기본 테이블 스페이스 변경 ALTER USER scott DEFAULT TABLESPACE tblspace1; ALTER USER [사용자명] DEFAULT TABLESPACE [변경할 테이블스페이스명] ALTER USER 문을 사용하여 사용의 테이블스페이스를 변경할 수 있다. 기본 테이블 스페이스 할당 용량 변경 ALTER USER scott QUOTA 10M ON tblspace1; ALTER USER [사용자명] ..
오라클에서 사용자(유저) 계정의 락(Lock)을 해제하기 위해서는 ALTER USER 문을 사용하면 된다. 사용자 계정의 ACCOUNT 속성을 UNLOCK으로 바꾸면 잠금이 해제되고 LOCK로 바꾸면 계정이 잠기게 된다. 사용자의 계정이 잠금 상태인지 확인하기 위해서는 DBA_USERS 시스템 뷰를 조회하면 확인할 수 있다. 사용자 계정 잠금 해제 방법 ALTER USER scott ACCOUNT UNLOCK; ALTER USER [사용자명] ACCOUNT UNLOCK ALTER USER 문을 사용하여 사용자 계정 잠금을 해제할 수 있다. 사용자 계정을 잠그고 싶을 때는 ALTER USER scott ACCOUNT LOCK; 을 사용하면 된다. 사용자 계정 잠금 여부 조회 방법 SELECT * FROM ..