본문 바로가기

DBMS(DataBase Management System)/티베로(Tibero)28

728x90
반응형
[티베로] 'REGEXP_REPLACE' - 정규식으로 문자를 제거하는 함수 티베로에도 정규식으로 문자를 치환할 수 있는 'REGEXP_REPLACE' 함수가 있다. 사용 방법은 아래와 같다. REGEXP_REPLACE({문자열}, {정규식}) 영문과 숫자만 허용하는 정규식은 다음과 같다. '[^[:alpha:]^[:digit:]]' 영문과 숫자만 허용하는 정규식으로 'REGEXP_REPLACE' 함수를 작성하면 아래의 사진처럼 활용할 수 있다. 참고문서 "4.2.122. REGEXP_REPLACE", Chapter 4. Functions, Tibero SQL Reference Guide, Tibero 6. @원문보기 2023. 12. 14.
[티베로] REPLACE - 문자 치환 함수 티베로에서 공백이나 하이픈 같은 문자를 다른 문자로 바꿔야 할 때 사용할 수 있는 함수로 'REPLACE'가 있다. 'REPLACE' 함수를 사용하는 방법은 아래와 같다. REPLACE({문자열}, {치환할 문자}, {치환될 문자}) 참고문서 "4.2.125. REPLACE", Chapter 4. Functions, Tibero SQL Reference Guide, Tibero 6. @원문보기 2023. 12. 13.
[티베로] 메모리 크기 설정 방법 원활한 데이터베이스 사용을 위해서는 적절하게 사용할 메모리 크기를 조정하여야 한다. 티베로에서 메모리 크기를 설정하는 방법은 아래와 같다. 메모리 설정 아래의 명령어를 참고하여 티베로 메모리 설정 파일을 편집하는 화면에 진입한다. vi tibero6/config/tibero.tip 아래의 사진에 나타난 빨간색 네모 박스 안의 메모리 값을 적절하게 수정한다. 티베로 재기동 아래의 명령어를 입력하여 티베로를 재기동한다. tbdown tbboot 메모리 설정 확인 아래의 쿼리(Query)를 티베로에 입력하여 메모리 설정이 잘 적용되었는지 확인한다. 2023. 8. 6.
[티베로] 메모리 설정을 출력하는 쿼리 티베로(Tibero)에서 메모리 설정을 확인할 수 있는 쿼리는 아래와 같다. SELECT * FROM v$sga; 참고문서 "Appendix G. Shared Memory 크기 산정", 티베로 공식 문서. @원문보기 2023. 7. 30.
[티베로] 오토커밋(Autocommit) 설정 확인 명령어 티베로에서 오토커밋(Autocommit) 설정을 확인하는 명령어는 아래와 같다. 이 기능은 기본적으로는 비활성화되어 있다. 필자는 업무할 때 활성화해서 쓴 경험이 없다. show autocommit; 참고문서 "1.3.1. AUTOCOMMIT", Tibero 6 유틸리티 안내서, 2020년 8월 21일. @원문보기 2023. 7. 27.
[티베로] 오류 설명 - 'JDBC-90609:Invalid column index.' 오류의 의미 티맥스 티베로(Tmax Tibero)를 사용하다보면 'JDBC-90609:Invalid column index.' 같은 오류 메시지를 볼 수 있다. 컬럼을 지칭하는 부분이 틀려서 발생한다. 오류 원인과 조치방법 'JDBC-90609'는 컬럼을 지칭하는 부분이 틀려서 발생한다. SQL의 컬럼명칭과 테이블에 있는 컬럼의 명칭이 일치하는지 확인한다. 참고문서 "제31장 90000 ~ 90999", Tibero 에러 참조 안내서, 티베로 6, 티맥스데이터, 2020년. @원문보기 2023. 3. 30.
[티베로] 오류 설명 - 'JDBC-90603:Invalid Operation: disconnected from the server.' 오류의 의미 티맥스 티베로(Tmax Tibero)를 데이터베이스로 활용하는 프로그램을 운영하다보면 'JDBC-90603:Invalid Operation: disconnected from the server.'라는 오류를 볼 수 있다. 이 오류는 티베로 데이터베이스 서버가 세션(연결)을 끊어서 발생한다. 오류 원인 'JDBC-90603'는 세션(연결)이 없어져서 발생한다. 이 오류가 반복적으로 발생하는 경우 세션 관련 설정을 확인한다. 조치 방법 이 오류가 발생하면 데이터베이스 서버가 정상인지를 확인해야 하며 응용 프로그램에게는 적절한 예외처리 기능이 구현되어 있어야 한다. 주로 티베로 데이터베이스 세션을 새로 생성(연결)하는 기능으로 처리한다. 참고문서 "제31장 90000 ~ 90999", Tibero.. 2023. 2. 5.
[티베로] 오류 설명 - 'JDBC-90405:I/O error while reading from the server. - End Of Stream' 오류의 의미 티맥스 티베로(Tmax Tibero) 데이터베이스를 활용하는 프로그램을 개발하다보면 'JDBC-90405:I/O error while reading from the server. - End Of Stream'라는 오류를 볼 수 있다. 이 오류는 티베로 데이터베이스 서버가 통신 중에 연결을 끊어 버려서 발생한다. 오류 원인 'JDBC-90405'의 경우 다양한 원인이 있을 수 있으므로 가장 의심이 되는 것부터 조치하는 것이 좋다. 세션과 메모리, 운영체제, 티베로 버전, 쿼리, 네트워크 설정, 네트워크 하드웨어 상태 등 다양한 원인으로 오류가 발생할 수 있다. 조치 방법 이 오류가 발생하면 데이터베이스 서버가 정상인지를 확인해야 하며 응용 프로그램에게는 적절한 예외처리 기능이 구현되어 있어야 .. 2023. 2. 4.
[티베로] 세션 목록 확인하고 세션 강제 종료하기 세션 목록을 확인하고 강제로 세션을 끊어야 하는 상황이 종종 생긴다. 나의 경우 티맥스 티베로(Tmax Tibero) 또는 데이터베이스 서버의 운영체제나 하드웨어 자체에 문제가 생겨서 백엔드(Back-End) 쪽 프로그램과 연결이 끊어진 경우를 테스트할 때 세션 강제 종료를 한다. 세션 목록 조회 세션 목록을 조회하는 쿼리(Query)는 아래와 같다. 이 쿼리를 실행하면 아래의 사진처럼 결과가 나타난다. SELECT * FROM V$SESSION 세션 강제 종료 아래의 쿼리를 실행하면 특정 세션이 종료된다. 종료할 세션을 특정하기 위한 파라미터로 'SID'와 'SERIAL#'을 받는데 세션 목록에서 확인가능하다. ALTER SYSTEM kill SESSION(SID, SERIAL#); 2023. 2. 3.
[티베로/SQL] UPPER 대문자로 변환, LOWER 소문자로 변환 값을 대문자나 소문자로 변환해야 하는 경우가 있다. 이 경우 티베로에서는 UPPER 함수와 LOWER 함수로 대소문자 변환이 가능하다 대문자로 변환 아래의 쿼리(Query)처럼 UPPER 함수를 사용하면 대문자로 문자열을 변환할 수 있다. UPPER(문자열) SELECT UPPER('aBcDe12345') FROM dual; 소문자로 변환 아래의 쿼리처럼 LOWER 함수를 사용하면 소문자로 문자열을 변환할 수 있다. LOWER(문자열) SELECT LOWER('aBcDe12345') FROM dual; 참고문서 "4.2.182. UPPER", Tibero 6, Tibero SQL 참조 안내서, 티맥스데이터, 2020년 8월 21일. @원문보기 "4.2.80. LOWER", Tibero 6, Tibero .. 2023. 1. 27.
[티베로] SQLGate for Tibero Developer 6개월 사용 후기 티베로를 GUI(Graphical User Interface)로 제어하는 도구가 여러가지 있겠지만 나는 그 중에서 최근에 SQLGate for Tibero를 몇달 써봤다. 무료 라이센스로 사용한거라 제약이 있었지만 꽤 사용하기 편했다. 당장 무료로 사용가능한 도구를 사용해야 했기에 지금까지 써보지 않았던 SQLGate를 써봤는데 쓸만 했다. 웨어밸리 사의 오렌지라는 도구 위주로 썼었던 나에게는 조금 불편한 것도 있었지만 이제 나에게 SQLGate는 다음에 예산이 생겨서 유료 라이센스 구매가 가능할 때 긍정적으로 도입을 검토할 수 있는 도구이다. 2023. 1. 23.
[티베로] LPAD, RPAD - 부족한 문자열 길이를 특정 문자로 채우거나 특정 길이를 넘는 문자열을 자르기 입력된 값을 보고 원하는 형식으로 바꿔줘야 하는 경우가 있다. 특히, 문자열 길이를 맞춰야 하는데 부족한 길이에 해당하는 영역을 특정 문자로 채우는 함수로 티베로에서는 LPAD 함수와 RPAD 함수를 제공한다. 1. RPAD 함수 RPAD 함수를 쓰면 지정한 길이로 문자열을 자르고 부족하면 오른쪽부터 채운다. 문법은 아래와 같다. RPAD(문자열, 길이, 문자) 2. RPAD 함수 예제 아래와 같이 RPAD 함수를 사용할 수 있다. 2-1. 지정한 길이보다 입력값이 긴 경우 SELECT RPAD('20230117010101000', 14, '0') FROM dual 2-2. 지정한 길이보다 입력값이 짧은 경우 SELECT RPAD('20230117', 14, '0') FROM dual 3. LPAD 함수.. 2023. 1. 18.
[티베로] 'TBR-8027: Column name is ambiguous' 해결 방법 오류 발생 이유 쿼리(Query)를 작성하다보면 'TBR-8027: Column name is ambiguous'를 만날 때가 있다. 이 경우는 조인(Join) 등의 이유로 컬럼(Column)의 명칭이 중복되는 경우에 발생한다. 오류 예시 아래의 쿼리 처럼 A 테이블과 B 테이블을 가게명(STORE_NAME)으로 조인할 때 A 테이블의 가게명과 B 테이블의 가게명이 존재하게 되므로 명시적으로 어느 테이블의 가게명을 사용할 것인지를 지정해야 한다. SELECT STORE_NAME, STORE_SALES, PRODUCT_PRICE FROM (SELECT 'APPLE' AS STORE_NAME, '100' AS STORE_SALES FROM dual) A LEFT JOIN (SELECT 'APPLE' AS S.. 2023. 1. 16.
[오라클/티베로] 특정 범위의 숫자 생성 일을 하다보면 SQL 만으로 특정 범위의 숫자를 생성해야 할 때가 있다. 그 경우에 활용 가능한 방법은 아래와 같다. 특정 숫자 이하의 일련의 수를 생성하는 쿼리 먼저 설명하는 방법은 ROWNUM 또는 LEVEL을 활용하는 방법인데 오라클에서 제공하는 CONNECT BY 문을 활용한다. 아래와 같은 형식으로 쿼리(Query, 질의어)를 작성한다. SELECT ROWNUM FROM DUAL CONNECT BY ROWNUM 2023. 1. 4.
[오라클/티베로] "JDBC-10007:UNIQUE constraint violation" SQL(Structured Query Language)을 작성하다보면 아래의 사진처럼 'JDBC-10007:UNIQUE constraint violation" 오류가 나타나는 경우가 있다. 특정 값은 유일해야 하는 유니크 제약조건을 위배했기 때문인데 이 경우는 해당 유니크 제약조건을 살펴서 SQL을 수정하거나 관련 처리 과정을 수정해야 한다. 2022. 11. 1.
오라클, 사이베이스, MS-SQL를 티베로로 마이그레이션 하는 도구 'TbMigrator' 설치 및 실행 TbMigrator란? 오라클(Oracle), 사이베이스(Sybase), MS-SQL에서 티맥스(Timax) 티베로(Tibero)로 DB(DataBase)를 마이그레이션(Migration) 하고 싶다면 티베로가 제공하는 TbMigrator를 사용할 수 있다. TbMigrator 설치 TbMigrator는 아래의 주소에 압축되어 있다. ('%TB_HOME%'은 티베로 설치 경로가 담긴 환경변수이다) %TB_HOME%\client\bin\tbmigrator.zip 아래의 주소로 이동하여 'tbmigrator.zip'가 있는지 확인한 후 압축해제한다. %TB_HOME%\client\bin\ 'tbmigrator.zip'을 압축해제하면 위와 같이 3개의 폴더가 나타나는데 현재 실행한 환경과 대응되는 폴더로 이동.. 2022. 9. 16.
[오라클/티베로] 사용자 정보 및 목록 확인 사용자 목록 확인 아래의 명령어를 입력하면 전체 사용자 목록이 나타난다. SELECT * FROM all_users; 사용자 정보 확인 좀 더 자세한 사용자의 정보를 확인하고 싶다면 아래의 명령어로 확인할 수 있다. SELECT * FROM DBA_USERS; 참고문서 [1] "6.101 DBA_USERS", 1412 of 2693 pp., Oracle Database Online Documentation 12c Release 1 (12.1), Oracle. @원문보기 2022. 9. 14.
[티베로] tbSQL을 사용하여 대용량 SQL 파일 실행하기 tbSQL이란? tbSQL은 티베로(Tibero)에서 제공하는 SQL(Structured Query Language) 처리용 유틸리티이다. 내가 tbSQL을 사용하는 경우 티베로 관리를 GUI(Graphical User Interface)로 쉽게할 수 있는 'TiberoStudio'와 'SQLGate for Tibero Developer' 등을 사용하면 (현재 기준으로는) 단위 시간당 SQL 처리량이 낮아서 대용량 SQL 파일을 처리할 때 부적합했다. 그래서 tbSQL을 사용했는데 비교도 안 될 만큼 빨리 처리되었고 지금은 이런 경우에 나는 tbSQL을 쓴다. tbSQL 사용 방법 명령 프롬프트(Command Prompt, CMD) 또는 터미널(Termnial)을 실행하여 아래와 같은 명령어를 입력하면 .. 2022. 9. 8.
티베로 6를 시작하는 명령어와 중지하는 명령어 티베로 시작 명령어 명령 프롬프트를 관리자 권한으로 실행한 다음 아래의 명령어를 입력하면 아래의 사진처럼 티베로가 시작된다. tbboot 티베로 중지 명령어 티베로를 중지하는 방법도 시작하는 방법과 유사하게 관리자 권한으로 명령 프롬프르틀 실행한 다음 아래의 명령어를 입력하면 아래의 사진처럼 중지된다. 티베로 상태에 따라 중지할 때 옵션이 나타나는데 적당한 것을 선택하면 된다. tbdown 2022. 9. 6.
[티베로] TBR-28012: Index '인덱스명' is in an unusable state. 최근에 티베로(Tibero) 사용 중 인덱스가 사용불가능한 상태라고 경고가 나와서 리빌드(rebuild)를 했었다. 특정 상황에서 인덱스가 사용 불가능한 상태로 넘어가는 경우가 있는데 이 경우 인덱스 리빌드를 통해 해결할 수 있다. 경고 문구 "TBR-28012: Index 'PDMTCS.PK_BASE_CARINFO' is in an unusable state." 인덱스 상태 확인 SELECT index_name, status from dba_indexes WHERE index_name='인덱스명' 인덱스 리빌드 ALTER INDEX '인덱스명' REBUILD 리빌드 후 인덱스 상태 확인 SELECT index_name, status from dba_indexes WHERE index_name='인덱스명' 2022. 9. 5.