문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
database:oracle [2020/07/02 08:48] 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 | ||
줄 93: | 줄 117: | ||
* '' | * '' | ||
* 참고 | * 참고 | ||
+ | * [[https:// | ||
* [[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/ |