DB
-
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..
-
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' : 한번만 실행 - ..
-
Oracle - PackageDB/Oracle 2019. 1. 8. 16:19
함수나 프로시저를 분류해서 한 묶음으로 묶을 수 있다. 패키지를 정의하고 구현하면 1. 애플리케이션을 좀 더 효율적으로 개발할수 있게 도와준다. 2. 관련된 스키마 오브제그들을 재 컴파일할 필요 없이 수정이 가능하다. 3. 한번에 여러개의 패키지 오브젝트들을 메모리로 로드할 수 있다. 4. 프로시저나 함수들의 오버로딩이 가능하다. - 패키지 내에 정의된 함수나 프로시저에서만 오버로딩이 가능하고 개별 선언된 함수나 프로시저는 오버로딩할 수 없다. 5. 패키지 내의 모든 타입, 항목, 서브 프로그램들을 public이나 private으로 사용할 수 있다. - private으로 선언되면 패키지 내에서만 사용 가능하다. 패키지란 - 프로시저, 함수 뿐만 아니라 변수, 상수, 커서, 예외 들을 하나로 묶은 캡슐화 ..
-
Create ProcedureDB/Oracle 2019. 1. 8. 15:29
프로시저는 함수와 달리 특정 처리를 수행한다. 데이터를 조회함을 넘어서 조작을 할 수 있다. 신입사원 등록시저를 통한 프로시저 생성 예 ) PL/SQL에서는 마지막에 /을 입력 해서 생성한다. 성, 이름, 이메일, 직원번호를 입력받으면 테이블에 insert시키는 작업을 수행하는 프로시저이다. 프로시저를 수행할 때는 exec나 execute 프로시저명 ( 파라미터.. ); 로 사용할 수 있다. 프로시저 수행 후 select를 통해 데이터가 들어갔는지 확인할 수 있다. begin에서 프로시저 본문처리를 통해, insert가 아닌 update-set이나 select문도 가능하다. begin 처리문에서 commit, rollback의 트랜잭션 처리를 잘해야한다.