DB
-
NLS 설정 변경 쿼리DB 2024. 1. 9. 17:55
간혹 AMERICA SESSION으로 설정 되어, DATE가 맞지않은 경우가 있다. KOREA로 변경하는 방법을 알아보자. -- NLS_LANGUAGE, NLS_TERRITORY 변경 ALTER SESSION SET NLS_LANGUAGE = 'KOREAN'; ALTER SESSION SET NLS_TERRITORY = 'KOREA'; -- NLS_CURRENCY, NLS_ISO_CURRENCY 변경 ALTER SESSION SET NLS_CURRENCY = '₩'; ALTER SESSION SET NLS_ISO_CURRENCY = 'KOREA'; -- NLS_NUMERIC_CHARACTERS 변경 ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,'; -- NLS_DAT..
-
Oracle DB에서 Table Indexing이 깨졌을 때 처리 방법DB/Oracle 2023. 10. 6. 16:14
1. Table Indexing이 깨졌는지 확인합니다. SQL SELECT STATUS, TABLE_NAME, INDEX_NAME FROM DBA_INDEXES WHERE TABLE_NAME = 'TABLE_NAME'; 코드를 사용할 때는 주의하시기 바랍니다. 자세히 알아보기 content_copy 위의 SQL을 실행하여 Table Indexing의 상태를 확인합니다. STATUS가 "INVALID"이면 Indexing이 깨진 것입니다. 2. 깨진 Indexing을 재생성합니다. SQL ALTER INDEX INDEX_NAME REBUILD; 코드를 사용할 때는 주의하시기 바랍니다. 자세히 알아보기 content_copy 위의 SQL을 실행하여 깨진 Indexing을 재생성합니다. 3. 재생성된 Inde..
-
SQL - String To SplitDB/SQL 2023. 8. 7. 15:04
문자열과 구분자를 받아서 Split 하는 Function Split 이후 IN 조건으로 활용 -- 변수부터 진행 CREATE OR REPLACE TYPE ESHOP.T_VARCHAR2 AS TABLE OF VARCHAR2(32767); -- FUNC 생성 CREATE OR REPLACE FUNCTION ESHOP.F_STRING_TO_SPLIT ( P_STR IN VARCHAR2, P_SEP IN VARCHAR2 DEFAULT ',' ) RETURN T_VARCHAR2 IS L_RESULT T_VARCHAR2 := T_VARCHAR2(); L_STR_LENGTH PLS_INTEGER; L_SEP_LENGTH PLS_INTEGER; L_SEP_TYPE BOOLEAN; L_START PLS_INTEGER N..
-
DB WrapDB/Oracle 2023. 6. 28. 00:33
* KEY가 변경되는거라면 암호화된 컬럼을 변경 전 KEY로 복호화(DEC) 하고 나서, KEY 변경 후, 전부 암호화(ENC) 처리 해야함 -- 오라클 클라이언트 설치 경로 C:\app\sc\product\11.2.0\client_1\BIN 해당경로의 wrap 유틸 이용 -- 랩핑 작업 wrap iname=pkg_seed_body.sql oname=pkg_seed_body.plb => pkg_seed_body.sql 원본 파일명. oname=pkg_seed_body.plb 랩핑 생성될 파일명. 랩핑하게되면 pkg_seed_body.plb 파일이 생성됨 WRAP 처리된 PLB 파일 내용을 그대로 컴파일 => 랩핑 SQL 파일을 컴파일 => 랩핑 해제 패키지 랩핑시 BODY만 랩핑하는게 맞음 SPEC도 필..
-
오라클 프로시저 , 함수 변경 이력 체크DB/Oracle 2021. 6. 4. 13:47
-- 변경됬는지 체크SELECT OBJECT_TYPE, OBJECT_NAME, STATUS, TO_CHAR (CREATED, 'YYYYMMDD') AS CREATED, TO_CHAR (LAST_DDL_TIME, 'YYYYMMDD') AS LAST_DDL_TIME FROM USER_OBJECTS WHERE OBJECT_TYPE IN ('FUNCTION', 'PROCEDURE') AND TO_CHAR (LAST_DDL_TIME, 'YYYYMMDD') >= '20210501' AND OBJECT_NAME = '프로시저명 or 함수명' ORDER BY OBJECT_TYPE , OBJECT_NAME;-- 변경된 부분 ..
-
[Trigger] Mutating Error 및 해결책DB/Oracle 2021. 5. 13. 16:14
1. MUTATING ERROR란 무엇인가? 어느 TABLE에 DML(INSERT, UPDATE, DELETE 등)이 실행될 때마다 프로그램에 구애받지 않고 특정 작업을 수행하려할 때 database trigger를 사용한다. 예)EMP table에 data insert, update, delete 시 부서별 평균 급여 table에 updating 하는 경우. 이 경우 trigger를 사용하지 않고 같은 작업을 하려면 평균 급여를 구하는 PL/SQL program을 개발하여 EMP 테이블에 action이 발생 시마다 call하여 사용 하든가, 아니면 각 action 발생 후 동일한 routine을 반복 수행시켜야 한다. 이 때 만일 user가 EMP table에 update 시마다 EMP table에 어..