문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
database:oracle [2020/07/02 08:52] kwon37xi [charset / characterset] |
database:oracle [2020/08/21 14:01] (현재) kwon37xi [Identifier too long] |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== Oracle Database ====== | ====== Oracle Database ====== | ||
| + | * [[database: | ||
| ===== Docker Images ===== | ===== Docker Images ===== | ||
| 줄 8: | 줄 9: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| ===== Docker 로 설치 ===== | ===== Docker 로 설치 ===== | ||
| + | * [[https:// | ||
| + | * [[java: | ||
| + | * docker 기반이 아닐 경우 1초 정도에 실행 끝남. | ||
| + | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| docker run -d --name==oracle11gr2 \ | docker run -d --name==oracle11gr2 \ | ||
| 줄 15: | 줄 24: | ||
| -p 49180:8080 \ | -p 49180:8080 \ | ||
| -e ORACLE_ALLOW_REMOTE=true | -e ORACLE_ALLOW_REMOTE=true | ||
| - | -e ORACLE_DISABLE_ASYNCH_IO=true | + | -e ORACLE_DISABLE_ASYNCH_IO=true |
| wnameless/ | wnameless/ | ||
| </ | </ | ||
| 줄 33: | 줄 42: | ||
| * sqlplus< | * sqlplus< | ||
| - | docker exec -it oracle11gr2 /bin/bash | + | docker exec -it -u oracle: |
| + | # sqlplus 실행 | ||
| + | sqlplus " | ||
| - | # 접속 후 | ||
| - | su oracle | ||
| - | sqlplus /nolog | ||
| - | |||
| - | # sqlplus 에서 | ||
| - | SQL> conn / as sysdba | ||
| </ | </ | ||
| ===== Table Space와 사용자 추가 ===== | ===== Table Space와 사용자 추가 ===== | ||
| 줄 75: | 줄 80: | ||
| <code sql> | <code sql> | ||
| select * from nls_database_parameters where parameter like ' | select * from nls_database_parameters where parameter like ' | ||
| + | -- NLS_CHARACTERSET : AL32UTF8 | ||
| + | -- NLS_NCHAR_CHARACTERSET : AL16UTF16 | ||
| + | |||
| select VALUE$ from sys.props$ where name=' | select VALUE$ from sys.props$ where name=' | ||
| + | SELECT * FROM nls_database_parameters where parameter = ' | ||
| + | -- AMERICAN | ||
| </ | </ | ||
| - | * SQL을 이용한 변경 | + | * SQL을 이용한 변경 |
| <code sql> | <code sql> | ||
| update props$ set value$=' | update props$ set value$=' | ||
| - | update props$ set value$=' | + | update props$ set value$=' |
| update sys.props$ set value$=' | update sys.props$ set value$=' | ||
| commit; | commit; | ||
| + | |||
| + | -- 모든 데이터베이스에 일괄 적용. 아래 작업을 안하면 오류 발생했음. | ||
| + | -- ORA-06552: PL/SQL: Compilation unit analysis terminated | ||
| + | -- ORA-06553: PLS-553: 알 수 없는 문자 집합 이름입니다 | ||
| + | -- ORA-06553: PLS-553: character set name is not recognized | ||
| + | |||
| + | ALTER SYSTEM ENABLE RESTRICTED SESSION; | ||
| + | ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; | ||
| + | ALTER SYSTEM SET AQ_TM_PROCESSES=0; | ||
| + | |||
| + | ALTER DATABASE CHARACTER SET INTERNAL_USE KO16MSWIN949; | ||
| + | ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16; | ||
| + | |||
| + | -- 재시작 | ||
| shutdown immediate | shutdown immediate | ||
| startup | startup | ||
| 줄 96: | 줄 120: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | ===== TIMEZONE ===== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ===== 권한 Grant ===== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | |||
| + | ==== 기본 Role ==== | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Table 단위 권한 부여 ==== | ||
| + | < | ||
| + | -- 부여 | ||
| + | GRANT SELECT, INSERT, DELETE, UPDATE ON [TABLE NAME] TO [USER]; | ||
| + | |||
| + | -- 해제 | ||
| + | REVOKE SELECT, INSERT, DELETE, UPDATE ON [TABLE NAME] FROM [USER]; | ||
| + | </ | ||
| + | |||
| + | ===== Identifier too long ===== | ||
| + | * '' | ||
| + | * 컬럼명, 테이블명 등의 식별자 길이는 **30byte**로 제한돼 있다. | ||
| + | * 한글 컬럼명 등의 경우 인코딩에따라 '' | ||
| + | * JPA/ | ||