Oracle
-
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의 트랜잭션 처리를 잘해야한다.
-
Caused by: java.sql.SQLException: ORA-12899: value too large for columnDB/Oracle 2018. 10. 4. 11:48
Caused by: java.sql.SQLException: ORA-12899: value too large for column "SAFEPAY"."PRODUCT"."FILE_NAME" (actual: 36, maximum: 20) alter table SAFEPAY.PRODUCT modify (FILE_NAME varchar2(36)); 로 actual 만큼 size 변경
-
docker oracle11g 재시작시 데이터 저장시키기Mac 2018. 10. 2. 01:15
— 삭제 되는 현상 방지 - 호스트 볼륨에 데이터 저장 docker run --name oracle11g -d -p 39160:22 -p 39161:1521 -p 39163:8080 -v /oracle11g-data/:/u01/app/oracle/oradata/oracle11g-data/ -e ORACLE_ALLOW_REMOTE=true --restart=always wnameless/oracle-xe-11g — 같은 이름으로 되있는 컨테이너 이름 remove하거나 rename으로 안 마주치게하기 컨테이너를 안겹치게하고 명령어 실행 뒤 이용하면 재시작해도 데이터가 지워지지 않고 남아있다.