DB
-
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..
-
ORA-01481: 숫자 형식 모델이 부적합합니다DB/Oracle 2019. 11. 4. 12:31
우선 to_char 함수 자체에 대해서 이해를 하셔야 할 것 같습니다. to_char 다음에 인수 두개가 있는데, 첫 번째 인수에는 number 타입이나 date 타입이 들어가고, 두 번째 인수에는 해당 타입을 어떤 char 타입으로 바꾸냐를 결정하는 것입니다. 두 번째 인수에 들어가는 타입은 메뉴얼을 통해 자세하게 알아보시길 바랍니다. 위 구문을 그대로 수행하면 다음과 같이 나올것입니다. ------------------------------------------------------------------ SQL> select to_char('200707081232','yyyy-mm-dd') from dual; select to_char('200707081232','yyyy-mm-dd') from du..
-
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..
-
Oracle - DBMS_JOB 패키지 + DBMS_SCHEDULERDB/Oracle 2019. 1. 8. 17:30
오라클에서는 DBMS_JOB라는 패키지를 제공하고 있다. 특정 시간에 특정 작업을 할수 있도록 이용하는 프로시저이다. * SUBMIT 프로시저 - 일정 시간에 실행될 작업을 등록한다. - 프로시저를 수행하면 작업 큐에 등록되어 지정된 시간에 작업이 실행된다. * RUN 프로시저 - 스케줄에 상관없이 특정 작업을 실행시킨다. * REMOVE 프로시저 - 작업 큐에 등록된 작업들을 제거한다. * INTERVAL 프로시저 - 작업이 수행되는 시간간격을 조정한다. - interval 프로시저 파라미터에는 날짜와 같은 스케줄 파라미터가 올 수 있다. - 'sysdate+7' : 일주일에 한번 실행, 'next_day(sysdate, "TUESDAY") : 화요일마다 한번씩 실행, 'null' : 한번만 실행 - ..