본문 바로가기
DATABASE/DB study

Oracle SQL Developer(SQL EXPORT, ERD, letters Breaks Solved)

by 개폰지밥 2020. 5. 21.
반응형

FK가 걸려있는 테이블에서 암복호화 테스트를 해보고 싶었다. 

하지만 외래키가 있는 테이블을 암호화 하면 에러가 뜬다.

당연히 외래키가 걸려있으므로 부모 테이블을 변경할 수 없음. (무결성에 위배되기 때문)

그래서 FK를 삭제 후 다시 재 생성 해야하는데 쉽게 재생성 하는 방법을 찾다가

Oracle SQL Developer에서 제공해주는 테이블 SQL문과 DDL Save를 이용하여 제약조건을 다시 쉽게 추가하였다.

 

먼저 암/복호화 테스트

(물론 외래키가 걸려있지 않은 다른 데이터는 암/복호화가 잘 되는 것을 확인할 수 있다.)

 

 

외래키 삭제

Alter table [스키마.]테이블명 drop constraints 제약조건명;

select constraint_name, constraint_type, table_name, search_condition from user_constraints where table_name = 'EMPLOYEES';

alter employees drop constraints FK_EMP_DEP_ID;

 

우선 암복호화를 하기 위해서 numbervarchar2로 변경하겠다. (employees, departments 둘다 변경)

alter table employees modify department_id VARCHAR2(50);

alter table departments modify department_id VARCHAR2(50);

그러면 ORA-01439: column to be modified must be empty to change datatype 01439. 00000 - "column to be modified must be empty to change datatype"

이미 숫자 데이터가 들어가 있어서 그렇다. 숫자 데이터를 지우고 다시 변경

 

Delete

Delete [from] [스키마.]테이블명 where delete 조건;                      

 

데이터 다시 추가

insert into employees values('111111','111111-1111111');

insert into departments values('111111','seulgi');

 

외래키 SQL문 이용해서 쉽게 생성

다시 외래키를 생성하고 싶으면 테이블의 SQL 문을 이용하여 쉽게 생성할 수 있다.

테이블 더블클릭 후 관련 sql문을 그대로 복사 붙여넣기 하면 된다.

다시 생성된 것을 확인할 수 있다

 

DDL SAVE

하지만 이미 FK를 삭제 한 후여서 DDL문을 확인할 수 없는 문제를 방지하기 위해서 DDL 파일을 저장 할 수 있다.

저장하고 싶은 테이블 마우스 오른쪽 클릭 -> Quick DDL -> Save to File

예를 들어 primary key를 삭제 하기 전에 저장해놓고 primary key를 삭제 한 후 기존 primary key sql문을 복사 붙여넣기 하면 쉽게 primary key를 쉽게 생성할 수 있다!

============================================================================

ERD: 데이터베이스 개체 설계도

ERD(Entity Relationship Diagram)는 개체(테이블) 간의 관계를 이해하기 쉽게 그림으로 표현한 것으로 데이터를 조작하고 분석하는 기초 자료로 활용됩니다. DB의 설계 도면이라고 할 수 있습니다.

ERD를 해석할 수 있다면 테이블 간의 연관성과 관계의 전체적인 모습을 파악하고 데이터의 흐름과 프로세스를 확인하여 데이터를 효율적으로 조작하고 분석할 수 있습니다.

 

관계 : 개체 관계 표기법

ERDER 다이어그램이라고도 부르는데 E는 개체(entity)라는 의미고 R은 관계(relation)라는 의미입니다. 개체는 정보를 저장하고 관리하기 위한 집합이자 식별 가능한 것입니다.

 

Oracle SQL Developer에서 ERD를 확인하는 방법

File -> Data Modeler -> Import -> Data Dictionary

 

접속할 계정 선택 후 다음

 

DB 선택 후 다음

 

임포트하려는 객체 선택 후 다음

 

 

테이블의 키와 제약 조건 확인 시 예

KEY

NULL 가능 여부

열 이름

데이터 타입

P

No(*)

EMPLOYEE_ID

NUMBER(6,0)

U

No(*)

EMAIL

VARCHAR2(25 BYTE)

F

No(*)

JOB_ID

VARCHAR2(10 BYTE)

F

Yes

DEPARTMENT_ID

NUMBER(4,0)

 

P: 기본 키 (Primary key)

No(*): NOT NULL(*)

U: 고유 키 (Unique key)

F: 외래 키 (foreign key)

PF*:복합 키 : 하나 이상의 키 값을 조합하여 만든 키 기본 키 이자 외래 키라는 의미

즉 어떤 컬럼을 primary key로 생성하고 나중에 외래키로도 생성했을 때 PF라고 뜨게 된다.

 

============================================================================

ORACLE SQL Developer 글씨깨짐 해결

에러를 보려고 하는데 계속 ???? ??????(거꾸로) 이런식으로 떠서 에러를 해결 할 수없다! 그래서 글씨깨짐을 해결하려고 한다.

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

KOREAN_KOREA.KO16MSWIN949로 값을 변경한 후 레지스트리편집기를 종료

 

시작 + Rcmd 입력해 커맨드 입력창 실행

sqlplus /nolog

conn /as sysdba;

update props$ set VALUE$='KO16MSWIN949' where name='NLS_CHARACTERSET';

update props$ set VALUE$='AMERICAN_AMERICA.KO16MSWIN949' where name='NLS_LANGUAGE';

commit;

shutdown immediate;

startup

select name, value$ from sys.props$;

쿼리문 결과

NAME

VALUE$

NLS_LANGUAGE

AMERICAN_AMERICA.KO16MSWIN949

NLS_TERRITORY

AMERICA

NLS_CHARACTERSET

KO16MSWIN949

 

DB 재연결 후

잘 출력되는 것을 확인할 수 있다.

출처: https://secuinfo.tistory.com/entry/WEB-Server-8 [Song's Lab]

반응형

'DATABASE > DB study' 카테고리의 다른 글

Big data insert sql script  (0) 2020.05.22
Database Object (check, view, index, synonym, sequence)  (0) 2020.04.17
Database package  (0) 2020.03.16
merge, insert, alter, delete  (0) 2020.03.12
BLOB data create & Encryption/Decryption  (0) 2020.01.17

댓글