300x250
반응형

DB 48

[Oracle] 오라클 Procedure 생성 및 실행

프로시저란? 오라클에서의 프로시저는 PL/SQL을 통해 만들어집니다. 자주 사용하는 SQL을 프로시저로 만든 뒤 필요 할때마다 호출,사용하여 작업 효율을 늘릴 수 있습니다. 함수는 특정 연산을 수행한 뒤 결과 값을 반환하지만 프로시저는 특정한 로직을 처리하기만 하고 결과 값은 반환하지 않는 서브 프로그램입니다. 프로시저 생성 CREATE OR REPLACE PROCEDURE EX_PROC ( P_DEPARTMENT IN VARCHAR2, P_STUDENT_CNT IN NUMBER ) IS P_UNIVERSITY VARCHAR2(100) := '서울대학교'; BEGIN INSERT INTO UNIVERSITY1 (UNIVERSITY, DEPARTMENT, STUDENT_CNT) VALUES (P_UNIVE..

DB/그 외 2023.06.28

[Oracle] ORACLE JOB 조회, 등록, 삭제, 실행, 변경

-- JOB 조회 select * from user_jobs; -- JOB 조회, dba_jobs 테이블에서 정보 확인 select job, what, failures, total_time, last_date, last_sec, next_date, next_sec, interval from dba_jobs order by next_date; -- JOB 조회 dba_jobs 테블에서 확인 select job, what, last_date, next_date, interval from dba_jobs order by next_date; -- JOB 등록 EXECUTE dbms_job.submit( JOBNO, 'USER_NAME.PROCEDURE_NAME;', TRUNC(SYSDATE)+23/24, 'TR..

DB/그 외 2023.06.28

[Oracle] sysdate에서 시간 데이터 추출하기

sysdate는 오라클에서 현재 날짜를 다룰때 사용하는 명령어 입니다. 날짜 뿐만 아니라 시분초의 데이터 즉, 시스템의 모든 날짜시간 관련 정보를 담고 있습니다. 날짜 데이터는 확인을 했었고 시간 데이터를 추출하는 방법을 살펴보도록 하겠습니다. 보통은 to_char함수를 이용해서 추출할 수 있는데 우리 to_char는 변환함수라는거 기억나시죠? to_char(날짜데이터 or 컬럼, '패턴') 패턴은 날짜데이터를 어떤 형식으로 출력할 것인지 형식을 지정하는 기호입니다. 패턴은 다음과 같습니다. 오라클은 대소문자 구분하지 않습니다. 패턴 형식 YYYY-MM-DD 년월일을 추출한다. YYYY : 년도 MM : 월 DD : 일 [출력형태] 2019-06-25 HH:MI:SS 시분초를 12시 기준으로 출력한다. ..

DB/그 외 2023.06.23

[Redis] 클러스터 마스터노드 구성방법, 마스터 노드, 복제 노드 추가 방법

클러스터 노드 구성 방법 redis-cli 혹은 redis-trib 의 create 옵션을 사용하여 클러스터를 구성하는 방법 https://mozi.tistory.com/381 포스팅을 참고해 주세요 매뉴얼을 사용하여 개별 구성하는 방법 마스터/복제노드를 사용자가 설정할 수 있습니다. 마스터와 복제노드를 사용자가 원하는 만큼 개별적으로 설정할 수 있습니다. 클러스터 매뉴얼대로 개별 구성 방법 마스터 노드 한 개로 클러스터 구성하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $ redis-server 7000/redis_7000.conf $ redis-cli -c -p 7000 127.0.0.1:7000> cluster info cluster_state:fa..

DB/그 외 2023.06.23

[Oracle] 오라클 limit 사용하는 방법 (페이징, rownum)

MySql이나 postgreSQL에서 사용하는 LIMIT절을 오라클에서 사용하고 싶을 때가 있다. 그러나 아쉽게도 오라클에서는 LIMIT를 사용할수 없다. 오라클에서 LIMIT 대신 ROWNUM을 사용하면 된다고 하는데, LIMIT와 ROWNUM은 사용법과 용도가 전혀 다르다는것을 알고 사용해야 한다. LIMIT는 쿼리가 ORDER BY 절까지 모두 실행 후 해당 결과에서 원하는 행의 데이터를 가져오는 것이며, ROWNUM은 쿼리가 완전히 수행되지 않은 원 데이터의 정렬순서대로 번호를 매기기 때문에 전혀 다른 결과가 출력된다. ※ ROWNUM은

DB/그 외 2023.06.23

[데이터베이스] MSSQL과 오라클의 차이점 정리

일반적으로 우리가 쉽게 접할 수 있는 데이터 베이스는 MSSQL, Oracle, MySQL 등이 있습니다. 실무적으로 접근했을 경우 대기업 또는 큰 프로젝트인 경우 오라클을 선호하고, 돈이 적거나 중소기업들은 대체로 MySQL을 선호합니다. 간혹 서버를 윈도우로 두는 회사는 MSSQL을 사용합니다. 이중 대용량 데이터베이스로 적합한 것은 MSSQL과 Oracle입니다. 물론 대용량 데이터베이스는 이외에도 DB2와 싸이베이스가 있지만 쉽게 접할 수 없다는 단점이 있습니다. MSSQL과 Oracle의 차이 데이터베이스의 생성 Oracle: 하나의 서버에 하나의 데이터베이스 생성 MSSQL: 하나의 서버에 여러 개의 데이터베이스(멀티 데이터베이스) 생성 데이터 타입 정의의 차이 데이터 타입 정의의 차이 일반적..

DB/그 외 2023.06.23

[Oracle] trunc(SYSDATE)로 시분초가 0인 날짜만 가져오기

0시인 현재날짜의 시간을 가져오기 위해 어떻게 사용하시나요? 저는 이제껏 아래와 같은 방법으로 사용을 했었는데요. TO_CHAR(trunc(SYSDATE), ‘yyyyMMddHH24miSS‘) TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, ‘yyyyMMdd’), ‘yyyyMMdd’), ‘yyyyMMddHH24miSS‘) TO_CHAR(SYSDATE, ‘yyyyMMdd‘) ||’000000‘ trunc() 함수를 사용하면 간편하게 날짜만 가져올수가 있습니다. TO_CHAR(trunc(SYSDATE), ‘yyyyMMddHH24miSS’) SELECT TO_CHAR(SYSDATE, 'yyyyMMddHH24miSS'), TO_CHAR(trunc(SYSDATE), 'yyyyMMddHH24miSS'),..

DB/그 외 2023.06.23

[Redis] redis.conf 의 파라미터 의미 파악하기

INCLUDES include include 에 기입된 conf 파일을 읽습니다. 파라미터가 중복될 경우 마지막 파라미터를 적용하기 때문에 주의해야 합니다. 공통으로 사용해야 하는 파라미터의 경우 유용하게 사용할 수 있습니다. 1 # include /path/to/local.conf cs MODULES loadmodule 서버가 시작할 때 기입된 모듈을 로드합니다. 모듈을 로드할 수 없으면 서버 구동은 실패합니다. 1 # loadmodule /path/to/other_module.so cs NETWORK bind 지정한 IP로만 레디스 서버에 접속할 수 있습니다. 1 bind 127.0.0.1 cs protected_mode 활성화되어 있고 bind 나 password 가 설정되어 있지 않으면 로컬 접속..

DB/그 외 2023.06.23

[Redis] 백그라운드에서 실행 및 로그 내용을 파일로 기록방법

Redis 실행 시 문제점 Redis 를 실행하는 경우 foreground 에서 동작합니다. 즉 실행한 세션을 종료하거나 'Ctrl + C' 키를 입력하는 경우 Redis 데몬이 죽게됩니다. 이 문제를 방지하기 위해 background 로 동작하도록 옵션을 설정할 수 있습니다. 이 때는 logfile 을 꼭 지정해야 합니다. 지정하지 않으면 로그가 날아갑니다. Redis 백그라운드 실행 방법 1. redis.conf 파일의 deamonize 옵션을 yes 로 변경합니다. 2. redis.conf 파일의 logfile 에 절대경로와 파일명을 입력합니다. 1 2 3 4 5 $ grep "daemonize" redis.conf daemonize yes $ grep "logfile" redis.conf logf..

DB/그 외 2023.06.23

[Oracle] SUM()함수에서 NULL값의 처리

SUM()함수에서 NULL값의 처리 컬럼값이 NULL인 경우 사칙연산을 할 경우 결과값은 모두 NULL이 되게 된다. 이런 결과로, SUM()함수에서 NULL값의 공포로 인해 우리가 함부로 NVL()함수를 사용하면 비효율이 발생한다. 예를 들어 아래의 경우를 살펴보자. SUM(NVL(COL1,0)) 여기서 COL1 컬럼은 SUM()함수에 의하여 연산이 된다. 연산중 NULL값이 있어 전체 결과가 NULL값이 될까 두려워 이렇게 사용했다면 이것은 잘못된 생각이다. SUM()함수에서 단일 컬럼이 연산이 될 때에는 NULL값은 연산의 대상에서 제외된다. NULL값이 연산을 하지 않았으므로 결과는 절대 NULL값이 되지 않는다. 위 처럼 NVL()함수를 사용하여 NULL값을 가진 경우 '0'으로 바꾸어도 결과는..

DB/그 외 2023.03.22
300x250
반응형