Oracle
-
쉘 스크립트 환경에서는 일부 특수문자가 쉘 명령어와 같이 사용되는 경우가 있습니다. 쉘 스크립트 유틸리티 암호를 입력할 때 오류가 발생하기도 합니다. sqlplus [oracle@oracle ~]$ sqlplus migration_user/test@2023 SQL*Plus: Release 12.2.0.1.0 Production on Mon Jul 31 03:38:21 2023 Copyright (c) 1982, 2016, Oracle. All rights reserved. ERROR: ORA-12170: TNS:Connect timeout occurred Enter user-name: [oracle@oracle ~]$ sqlplus migration_user/"test@2023" SQL*Plus: Rel..
sqlplus/tbsql에서 특수문자 암호 접속 하는 방법쉘 스크립트 환경에서는 일부 특수문자가 쉘 명령어와 같이 사용되는 경우가 있습니다. 쉘 스크립트 유틸리티 암호를 입력할 때 오류가 발생하기도 합니다. sqlplus [oracle@oracle ~]$ sqlplus migration_user/test@2023 SQL*Plus: Release 12.2.0.1.0 Production on Mon Jul 31 03:38:21 2023 Copyright (c) 1982, 2016, Oracle. All rights reserved. ERROR: ORA-12170: TNS:Connect timeout occurred Enter user-name: [oracle@oracle ~]$ sqlplus migration_user/"test@2023" SQL*Plus: Rel..
2023.07.31 -
데이터 작업을 하다보면 한글이 들어있는 특정 로우들을 제외하거나 찾아야하는 경우 데이터에 한글이 포함되었는지 찾아야하기 때문에 테이블 풀 스캔은 불가피 합니다. SELECT column1, CASE WHEN REGEXP_LIKE (column2,'[가-힣]') THEN '한글 포함' ELSE '한글 미포함' END FROM tbl; SELECT column1 FROM tbl WHERE REGEXP_LIKE (column2,'[가-힣]'); REGEXP_LIKE 문자열 내 한글이 포함된지 모두 찾아야하기 때문에 DBMS에서 제공하는 REGEXP_LIKE 함수의 내부 알고리즘이 어떻게 구현했는지에 따라 성능 차이가 있겠지만 기본적으로는 많은 데이터를 작업하기에는 느릴 수 밖에 없습니다.
ORACLE/TIBERO 한글 포함 데이터 찾기 (REGEXP_LIKE)데이터 작업을 하다보면 한글이 들어있는 특정 로우들을 제외하거나 찾아야하는 경우 데이터에 한글이 포함되었는지 찾아야하기 때문에 테이블 풀 스캔은 불가피 합니다. SELECT column1, CASE WHEN REGEXP_LIKE (column2,'[가-힣]') THEN '한글 포함' ELSE '한글 미포함' END FROM tbl; SELECT column1 FROM tbl WHERE REGEXP_LIKE (column2,'[가-힣]'); REGEXP_LIKE 문자열 내 한글이 포함된지 모두 찾아야하기 때문에 DBMS에서 제공하는 REGEXP_LIKE 함수의 내부 알고리즘이 어떻게 구현했는지에 따라 성능 차이가 있겠지만 기본적으로는 많은 데이터를 작업하기에는 느릴 수 밖에 없습니다.
2023.07.31 -
SQL 튜닝 학습을 하고 싶은데, ORACLE 데모 데이터 외의 데이터로 테스트를 하고 싶은 경우 활용하면 좋습니다. 자체적으로 고민해서 만든 모델이며 정규화, SQL 튜닝 등등 다양한 케이스로 활용할 수 있습니다. DDL -- 20만 CREATE TABLE user_info( uuid number(38), user_id varchar(400), password varchar(4000), email varchar(1000), oauth_type varchar(1000), singup_date date ); -- 100만 CREATE TABLE user_post_info( uuid varchar(5000), user_id varchar(1000), post_id number(38), post_path va..
ORACLE/TIBERO SQL 튜닝(최적화) 학습을 위한 테스트 데이터 만들기SQL 튜닝 학습을 하고 싶은데, ORACLE 데모 데이터 외의 데이터로 테스트를 하고 싶은 경우 활용하면 좋습니다. 자체적으로 고민해서 만든 모델이며 정규화, SQL 튜닝 등등 다양한 케이스로 활용할 수 있습니다. DDL -- 20만 CREATE TABLE user_info( uuid number(38), user_id varchar(400), password varchar(4000), email varchar(1000), oauth_type varchar(1000), singup_date date ); -- 100만 CREATE TABLE user_post_info( uuid varchar(5000), user_id varchar(1000), post_id number(38), post_path va..
2023.07.21 -
ORA-01502: index '%s' or partition of such index is in unusabl 위 에러가 발생할 시 partition table의 key가 unusabl 상태가 된 것을 확인할 수 있습니다. partition table에 딸린 key가 unsabl 된 상태 인데요. partition table에 생성 된 global key에 모두 영향을 끼쳐 그렇습니다. partition table에서 truncate partition table과 drop partition table 같은 작업이 빈번한 경우 global key를 local key로 변경하는 것을 권장 합니다. ORA-01502 재현 SQL> create table p1(x int, xx int, xxx int) par..
ORA-01502: index '%s' or partition of such index is in unusablORA-01502: index '%s' or partition of such index is in unusabl 위 에러가 발생할 시 partition table의 key가 unusabl 상태가 된 것을 확인할 수 있습니다. partition table에 딸린 key가 unsabl 된 상태 인데요. partition table에 생성 된 global key에 모두 영향을 끼쳐 그렇습니다. partition table에서 truncate partition table과 drop partition table 같은 작업이 빈번한 경우 global key를 local key로 변경하는 것을 권장 합니다. ORA-01502 재현 SQL> create table p1(x int, xx int, xxx int) par..
2022.12.13 -
ORACLE 12c 부터 CDB 환경을 사용한다면, CDB가 아닌 PDB로 서비스 하고 있을 가능성이 크다. PDB의 characterset을 변경하는 것은 기존 CDB가 아닌 환경에서와 조금 다르며 하기 방법으로 가능하다 ※ 개발용 테스트를 위해 작성하였으며 실 업무에서는 검토가 필요하다 NLS_CHARACTERSET=AL16UTF8 NLS_NCHAR_CHARACTERSET=AL16UTF16 UTF8에서 EUCKR 변경 진행, 데이터 없다는 전재하에 진행 NLS_CHARACTERSET=KO16KSC5601 NLS_NCHAR_CHARACTERSET=AL16UTF16 CDB 접속 및 PDB 확인 [oracle@56c517b8f964 ~]$ sqlplus / as sysdba SQL*Plus: Release..
ORACLE PDB(Pluggable DB) characterset 변경ORACLE 12c 부터 CDB 환경을 사용한다면, CDB가 아닌 PDB로 서비스 하고 있을 가능성이 크다. PDB의 characterset을 변경하는 것은 기존 CDB가 아닌 환경에서와 조금 다르며 하기 방법으로 가능하다 ※ 개발용 테스트를 위해 작성하였으며 실 업무에서는 검토가 필요하다 NLS_CHARACTERSET=AL16UTF8 NLS_NCHAR_CHARACTERSET=AL16UTF16 UTF8에서 EUCKR 변경 진행, 데이터 없다는 전재하에 진행 NLS_CHARACTERSET=KO16KSC5601 NLS_NCHAR_CHARACTERSET=AL16UTF16 CDB 접속 및 PDB 확인 [oracle@56c517b8f964 ~]$ sqlplus / as sysdba SQL*Plus: Release..
2022.12.05 -
ORACLE characterset 확인 SQL col name for a30 col value$ for a30 SQL> select name, value$ from sys.props$ where name in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET'); NAME VALUE$ ------------------------------ ------------------------------ NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_CHARACTERSET AL32UTF8
ORACLE 문자셋(characterset) 확인하기ORACLE characterset 확인 SQL col name for a30 col value$ for a30 SQL> select name, value$ from sys.props$ where name in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET'); NAME VALUE$ ------------------------------ ------------------------------ NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_CHARACTERSET AL32UTF8
2022.12.03 -
기존 ORACLE은 1ENGINE에 1INSTANCE 구성으로 데이터베이스를 운영해왔습니다. (경우에 따라 환경 변수를 바꿔 1ENGINE에 여러개의 INSTANCE를 구성할 수 있지만, 권장은 아님) ORACLE 12c 부터 "Multitenant Architecture" 라는 새로운 개념의 Architecture를 출시 했습니다. 12년도에 출시된 버전에서 이미 공개된 구성이지만 뒤 늦게 알게되었네요. Multitenant Architecture 오라클 엔진 위에 CDB(거대한?)를 구성하고 그 안에 컨테이너처럼 PDB를 만들어 사용하고 애플리케이션들은 각각의 PDB를 보고 연결하여 서비스를 할 수 있다. 처음 Multitenant Architecture 구성을 보고 도커와 마치 비슷한 느낌을 받았습..
ORACLE Multitenant Architecture CDB, PDB기존 ORACLE은 1ENGINE에 1INSTANCE 구성으로 데이터베이스를 운영해왔습니다. (경우에 따라 환경 변수를 바꿔 1ENGINE에 여러개의 INSTANCE를 구성할 수 있지만, 권장은 아님) ORACLE 12c 부터 "Multitenant Architecture" 라는 새로운 개념의 Architecture를 출시 했습니다. 12년도에 출시된 버전에서 이미 공개된 구성이지만 뒤 늦게 알게되었네요. Multitenant Architecture 오라클 엔진 위에 CDB(거대한?)를 구성하고 그 안에 컨테이너처럼 PDB를 만들어 사용하고 애플리케이션들은 각각의 PDB를 보고 연결하여 서비스를 할 수 있다. 처음 Multitenant Architecture 구성을 보고 도커와 마치 비슷한 느낌을 받았습..
2022.11.07 -
ORACLE 테스트 중 유저 생성을 하게 되면 ORA-65096 에러를 만나게 되는 경우가 있습니다. SQL> create user test_user1 identified by test; create user test_user1 identified by test * ERROR at line 1: ORA-65096: invalid common user or role name SQL> create user "test_user2" identified by test; create user "test_user2" identified by test * ERROR at line 1: ORA-65096: invalid common user or role name ORACLE 유저 생성 시 12버전 이상 부터 "Mult..
ORACLE USER 생성 오류 (ORA-65096: invalid common user or role name)ORACLE 테스트 중 유저 생성을 하게 되면 ORA-65096 에러를 만나게 되는 경우가 있습니다. SQL> create user test_user1 identified by test; create user test_user1 identified by test * ERROR at line 1: ORA-65096: invalid common user or role name SQL> create user "test_user2" identified by test; create user "test_user2" identified by test * ERROR at line 1: ORA-65096: invalid common user or role name ORACLE 유저 생성 시 12버전 이상 부터 "Mult..
2022.11.04