Oracle
-
오라클 프로시저 , 함수 변경 이력 체크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; -- 변경된 부분 찾을 때 SELECT TYPE, NAME, LINE, TEXT FROM USER_SOURCE ..
-
Oracle - 값 중간에 빈부분 채워넣는 쿼리DB/Oracle 2020. 5. 18. 09:39
SELECT CASE WHEN c 1 AND c 0 THEN 1 -- min값이 1이 아니면 1로 처리 WHEN nullVal = 99 THEN 1 -- 해당 값이 null이면 1로 처리 ELSE Test END AS seqVal FROM (SELECT NVL (a + 1, 1) AS Test, c, nullVal -- 값이 null일때 99로 반환되는 값 FROM (SELECT a, NVL (a + 1, 1) AS Test, c, nullVal FROM (SELECT a, NVL (LEAD (A) OVER (ORDER BY A), 0) AS b, 0 AS c, 0 AS nullVal FROM (SELECT seq AS a FROM 테이블 WHERE 첫번째 키 = 값 AND 두번째 키 = 값 AND 세번..
-
ORA-01476 - 제수가 0 입니다DB/Oracle 2020. 2. 26. 11:05
에러 발생원인 제수(분모)의 값이 0이어서 분자를 나눌수 없어서 발생하는 오류로 제수(분모)를 NULL로 치환해서 계산합니다. 예) SELECT 100 / 0 FROM DUAL 결과 : ORA-01476: divisor is equal to zero SELECT 100 / NULL FROM DUAL 결과 : (NULL) 해결방법 DECODE를 이용해서 분모의 값을 NULL로 변경하면 최종 값이 NULL로 반환되며 NVL롤 NULL값일 때 0으로 처리합니다. SELECT NVL(분자 / DECODE(분모, 0, null, 분모), 0) FROM 테이블명
-
Toad for Oracle - Toad(토드) 단축키DB 2020. 2. 26. 00:05
1. 쿼리 작성 후 자동 포맷팅 사용 시 상단의 주석이 출력되지 않게 하기 위한 방법 자동 포맷팅 (쿼리 정렬: Ctrl + Shift + F) 메뉴의 View > Formatting Options > Formatter Options > General Layout > Header 에서 우측 Tagline을 Disable로 설정하면 된다. 2. 쿼리 실행 후 Grid에서 null값을 노란색 및 {null}로 표시하는 방법 메뉴의 View > Toad Options > Data Grids > Visual 에서 Null columns를 Yellow 또는 {null}을 선택하면 된다. 토드 옵션에 따라 Null columns에 색상이 아닌 텍스트를 입력하는 경우가 있다. 이 경우 styles에 Active St..
-
Update Query시 두 테이블 간 1:1 대칭 후 값 Set 시키기 - Merge IntoDB/SQL 2019. 3. 28. 12:12
Update Query시 두 테이블 간 1:1 대칭 후 값 Set 시키기 MERGE INTO 값을넣을테이블 T -- 값을 넣을 테이블 USING ( -- 참조 테이블의 조회 조건 SELECT s.sabun -- 참조할 테이블의 컬럼 , s.erum , s.buser_code FROM 참조할테이블 s -- 참조할 테이블 WHERE s.toisa_day is null -- 조건 and erum in ( select erum -- 서브쿼리 이용 가능 from insa.vsabun where toisa_day is null and buser_name not in ( select buser_name from insa.vsabun where buser_name like '%판매%' and toisa_day is n..
-
Oracle - ObecjtDB/Oracle 2019. 1. 9. 09:52
Oracle Obecjt 타입은 객체지향에서 사용되는 클래스 개념과 같다. 구조체의 특성을 그대로 물려받고 함수까지 사용할 수 있다. - Object 생성 단순한 데이터 타입 뿐만 아니라 멤버함수까지 선언할 수 있다. 함수를 선언하긴 했는데, 이를 실제로 수행하는 로직을 구현해야 한다. CREATE OR REPLACE TYPE BODY 구문을 통해 생성할 수 있다. - ( 패키지의 BOD와 같은 개념이라고 이해할 수 있다. ) - Function 구현부 - dept_typ를 사용하는 테이블을 생성한다. * 오라클에서는 Object 타입 선언시 생성자를 굳이 명시하지 않더라도 타입 객체가 생성되면 오라클 내부에 생성자가 저장딘다. 그리고 생성자 함수의 명칭은 다른 객체지향 언어들에서처럼 클래스 이름, 즉 ..
-
Oracle - Materialized ViewDB/Oracle 2019. 1. 8. 18:50
구체화된 뷰라고도 불리며 실제 테이블에 있는 데이터를 조회한 결과를 스키마 오브젝트에 저장하여 이를 참조 가능하게 하는 뷰이다. MView는 대용량의 데이터를 집계하고 요약한 정보를 추출하는 정보의 시스템 과부하를 주지 않으면서 원하는 데이터를 빨리 추출하게 도와주는 역할을 한다. 사용자가 일일히 입력을 하지 앉아도 오라클이 알아서 MView에 자동으로 다시 새로운 데이터를 집계하고 값을 넣는다. 사용자 입장에서는 전혀 신경 쓰지 않고 MView를 다른 테이블이나 뷰처럼 사용하면 된다. sql*plus에서 효과적인 DB 탐색 경과 시간을 보기 위해 set timing on; 을 입력한다. Materialized View를 생성하려면 사전에 준비가 필요하다. * 생성 권한 - CREATE MATERIALI..