오라클에서 날짜, 전화번호와 같은 문자열에서 특수문자 또는 문자를 제거하고 숫자만 추출해야 할 경우가 있다. 문자열에서 숫자만 추출하기 위해서는 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 ..
오라클 사용자(유저) 계정의 비밀번호를 변경하기 위해서는 ALTER USER 문을 사용하며 기존 비밀번호가 새로운 비밀번호로 초기화된다. 사용자의 분실한 비밀번호를 찾기 및 확인하는 방법은 없으며 새로운 비밀번호로 재설정해야 한다. 변경할 비밀번호에 특수문자가 포함되어 있으면 쌍따옴표로 비밀번호를 감싼 후 변경해야 한다. 사용자 비밀번호 변경 ALTER USER scott IDENTIFIED BY tiger123; ALTER USER [사용자명] IDENTIFIED BY [새로운 비밀번호] ALTER USER 문을 실행하면 해당 사용자는 새로운 비밀번호로 변경된다. 사용자 비밀번호에 특수문자가 있을 경우 쌍따옴표 사용 ALTER USER scott IDENTIFIED BY "tiger123!@#"; 비밀..
오라클에서 유저의 계정을 생성할 때는 CREATE USER 문을 사용한다. 사용자를 생성할 때 테이블스페이스, 사용자 최초 로그인 시 암호 변경 등을 설정할 수 있으며, 오라클 12c 버전부터 사용자를 생성할 때 ORA-65096 오류가 발생할 수 있는데 이럴 때는 사용자명 앞에 c##을 붙여주면 된다. 목차 사용자 생성 (CREATE USER) 사용자 생성 오류 처리 (오라클 12c 이상) 사용자 생성 상세 설정 (테이블스페이스 등) 사용자 삭제 (DROP USER) 사용자 생성 (CREATE USER) CREATE USER scott IDENTIFIED BY tiger; CREATE USER [사용자명] IDENTIFIED BY [암호] 오라클 12c 버전부터 사용자명에 c##을 붙이지 않으면 오류가..