oracle 33

PL/SQL 에서 사용하는 않는 CURSOR 는 수행 된다 ? 안된다 ?

-- PL/SQL 에서 사용하는 않는 CURSOR 는 수행 된다 ? 안된다 ? 주석 처리 하기 전에 확인 -- ( 결과 ) CURSOR 를 선언만 하고, 사용하지 않아도, CURSOR 관련 SQL(일)을 수행 하게 된다. -- 사용하지 않는 커서는 제거 혹은 주석 처리라도하자. -- grant select on sys.DBA_OBJECTS to scott ; -- run by sys CREATE OR REPLACE PROCEDURE UPDATE_SAL2 /* IN Parameter */ (v_empno IN NUMBER) IS V_OBJECT_NAME VARCHAR2(100); C_LIST SYS_REFCURSOR; BEGIN OPEN C_LIST FOR SELECT /*+ UNUSED_CURSOR */..

Oracle/Oh Oracle 2023.04.01

불친절한 SQL 프로그래밍

불친절한 SQL 프로그래밍 넓고 넓은 ORACLE SQL 의 다룬 책, 야금야금 3달 정도 본 책이다. 저자분 지식이 넓고 깊다, 이 많은 걸 하는 생각이 드는 책이다.감사합니다. (__)(--)(__) SQL 공부를 시작 하시고 싶은 분, 이 참에 SQL 전반적으로 정리 하고 싶은 분, 나의 SQL 지식을 갱신하고 싶은 분들에게 적극 추천 합니다. ++ 2023/03/10 불친절한 PL/SQL 프로그래밍 요이땅 !!! http://www.yes24.com/Product/Goods/64391533

기술서적정리 2023.03.11

TX-LOCK 이나 Library Cache Lock/Pin 발생 시, 빠르게 파악 및 해소하고 싶습니다.

질문 : TX-LOCK 이나 Library Cache Lock/Pin 발생 시, 빠르게 파악 및 해소하고 싶습니다. 답변 : GV$SESSION.FINAL_BLOCKING_SESSION_STATUS='VALID' 시, GV$SESSION.FINAL_BLOCKING_INSTANCE 와 GV$SESSION.FINAL_BLOCKING_SESSION 통해서 빠르게 파악 해보자 Hang Manager Trace 를 통한 파악 ( 지난 시간 이력 파악 시, 실시간이 파악은 SQL 을 통해서 ) 2022.11.19 - [Oracle/Oh Oracle ] - Hang Manager(HM) https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/V-SES..

Oracle/Oh Oracle 2022.12.31

Oracle, Rename Sequence

Oracle, Rename Sequence 업무 요건 : 시퀀스 RENAME 되나요 ? 채번은요 ? 결론 : 시퀀스 Rename 지원 되구요, RENAME 시점에 CACHE 만큼 SEQUENCE 값이 증가 합니다. EX) 현재 LAST_NUMBER 가 100021 이고, CACHE 20 이면 , RENAME 시점에 LAST_NUMBER 가 100041 로 변경됨 RENAME : Use the RENAME statement to rename a table, view, sequence, or private synonym. https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/RENAME.html#GUID-573347CE-3EB8-42E5-B..

Oracle/Oh Oracle 2022.12.23

PL/SQL 상세 에러 저장 하기

문의 : PL/SQL 에러 출력시, DEPTH 있는 에러 코드를 찍고 싶다. 일반 ) SQLERRM 를 통해서 에러 로그 출력 혹은 저장 상세 ) DBMS_UTILITY.FORMAT_ERROR_BACKTRACE 를 통해서 에러 상세 로그 출력 혹은 저장 비고 ) 아래 출처와 조금 다르게, log_prc 라고 상세 로그 저장을 위한 별도 PROCEDURE 를 생성함 참고 출처 : https://hrjeong.tistory.com/48 -- 에러관리를 위한 LOG_PRC 생성 -- 우선 일반적인 SQLERRM 만 저장하도록 컴파일 CREATE OR REPLACE PROCEDURE LOG_PRC IS V_ERROR VARCHAR2(1000); PRAGMA AUTONOMOUS_TRANSACTION ; -- 호출..

Oracle/Oh Oracle 2022.12.21

Function Execute 권한은 부여 하고, Function Source 는 조회 못하게 하고 싶다. ( feature wrap )

상황 : Function Execute 권한은 부여 하고, Function Source 는 조회 못하게 하고 싶다. > 1. Function Execute 권한을 부여 받은 유저는 Execute 권한은 물론, Function Source 조회 가능 ( Procedure 도 마찬가지 ) 2. Package Execute 권한을 부여 받은 유저는 Execute 권한을 갖고, Package 선언부만 조회 가능하고, Pakcage Body 는 조회 불가 3. (1) Function Execute 권한 부여 + Source 조회 불가를 구현하기 위해서는 wrap 기능 필요 wrap 결과로, 소스 조회는 되지만, wrap 된 소스가 조회됨 %% wrap : 포장하다, 감싸다, 감추가 더보기 > Execute the..

Oracle/Oh Oracle 2022.12.19

LNNVL 함수

-- LNNVL 함수는 condition 이 FALSE 나 UNKNOWN 이면 TRUE, TRUE 이면 FLASE를 반환한다. -- 출처 : 불친절한 SQL 프로그래밍 P161 SELECT ENAME, COMM FROM EMP WHERE LNNVL ( COMM 0 ) ; -- NULL 0 -> UNKNOWN -> TRUE -- 0 0 -> FALSE -> TRUE -- 1 0 -> TRUE -> FALSE -- 결국 아래와 같은 의미 SELECT ENAME, COMM FROM EMP WHERE ( COMM IS NULL OR COMM = 0 ) ; -- P 335 -- UNION, INTERSECT, MINUS 연산자는 중복 값을 제거하기위해 데이터 집합을 정렬한다. -- 대량 데이터의 소트가 발생하면 ..

Oracle/Oh Oracle 2022.12.14

데이타의 급격한 증가 시 확인 방법 FROM AWR

데이타의 급격한 증가 시 확인 방법 FROM AWR 출처 : How To Get Table Growth History Information? (문서 ID 1395195.1) > 2018.11.05 - [Oracle/Oracle Script] - > -- 기잔별 증가가 높은 SEGMENT 뽑기 select obj.owner, obj.object_name, to_char(sn.BEGIN_INTERVAL_TIME,'YYYY/MM/DD') start_day, ROUND(sum(a.SPACE_USED_DELTA)/1024/1024) block_increase_MB from dba_hist_seg_stat a, dba_hist_snapshot sn, dba_objects obj where sn.snap_id = a..

Oracle/Oh Oracle 2022.12.07