DB

· DB/Oracle
- AutoCommit 상태 확인 show autocommit; - AutoCommit 켜기 set autocommit on; - AutoCommit 끄기 set autocommit off;
· DB/Oracle
sqlPlus에서 백스페이스를 누르면 문자가 지워지는 게 아닌 ^H가 나오며 원하는 작동이 되지 않는다. 1. 설정이 유지되는 방법 그런 경우에 사용자 홈 디렉토리로 이동하여 .bashrc or .bash_profile 에 아래의 커맨드를 추가한다. (^H는 키보드에 있는 6 특수문자가 아닌, sqlplus에서 백스페이스 입력 시 나타나는 문자를 복사 및 붙여넣기 해야한다.) stty erase ^H 2. 재접속 시, 유지되지 않는 방법 커맨드 창에 아래의 커맨드를 입력한다. host stty erase ^H
· DB/Oracle
안녕하세요 이번 포스팅에서는 트리거에 대해 작성하려고 합니다. 트리거란 : 특정 이벤트(INSERT/UPDATE/DELETE)가 발생하면 자동적으로 수행되는 PL/SQL 종류 중 하나입니다. 트리거를 이용한다면, 특정 데이터가 조작될 경우 그와 연계된 데이터까지 조작할 수 있는 기능이라고 볼 수 있습니다. 트리거 생성 문법 CREATE [OR REPLACE] TRIGGER 트리거명 BEFORE or AFTER INSERT or UPDATE or DELETE ON 테이블명 [FOR EACH ROW] [WHEN 조건] [DECLARE 변수 선언] BEGIN 트리거 본문 코드 END; [OR REPLACE] : 해당 트리거 명으로 등록된 트리거가 있을 경우, 새로 생성하는 트리거로 대체한다. BEFORE or..
· DB/Oracle
안녕하세요 이번 포스팅은 운영중인 서버에 락이 발생하여 해결한 방법을 토대로 포스팅하겠습니다. 아래의 쿼리들은 락 관련 쿼리들입니다. --Lock Table Select SELECT DO.OBJECT_NAME, DO.OWNER, DO.OBJECT_TYPE, DO.OWNER, VO.XIDUSN, VO.SESSION_ID, VO.LOCKED_MODE FROM V$LOCKED_OBJECT VO, DBA_OBJECTS DO WHERE VO.OBJECT_ID = DO.OBJECT_ID; --Lock Session Select using Object Name SELECT A.SID, A.SERIAL# FROM V$SESSION A, V$LOCK B, DBA_OBJECTS C WHERE A.SID = B.SID AN..
· DB/Oracle
안녕하세요. 이번 포스팅에서는 과거 데이터를 조회하는 방법에 대해 알려드리려고 합니다. 실수로 DELETE COMMIT 까지 진행시켜서 데이터를 다 날렸을 때 침착하게 아래의 방법을 통해 데이터를 복구하시길 바랍니다. SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '1' HOUR) WHERE 조건 위에는 1시간 전의 데이터를 조회하는 쿼리입니다. 과거 데이터를 조회할 때 단위를 수정할 수도 있습니다. 단위 : HOUR(시) / MINUTE(분) / SECOND(초) / DAY(일) SELECT * FROM 테이블 AS OF TIMESTAMP(TO_DATE('20210728123000','YYYYMMDDHH24MISS')); 또한, TO_DATE를 이용..
· DB/Oracle
안녕하세요. 이번에는 Oracle 함수인 DECODE 기능에 대해 사용하는 방법에 대해 포스팅하겠습니다. DECODE는 쉽게 말해서 Java의 IF와 성격이 비슷한 기능이라고 생각하시면 편하겠습니다. DECODE(조건 컬럼, 값1, 값1이 일치 시 출력 내용, 값2, 값2이 일치 시 출력 내용, 앞의 값들과 일치하지 않는 경우) 아래의 쿼리를 통해 익혀보겠습니다. 1. 샘플 데이터 삽입 CREATE TABLE sql_test_a ( RANK_ VARCHAR2(4000 BYTE), FIRST_NAME VARCHAR2(200 BYTE), LAST_NAME VARCHAR2(200 BYTE) ); INSERT INTO sql_test_a (RANK_, FIRST_NAME, LAST_NAME) VALUES ('1..
· DB/Oracle
안녕하세요. 근무 중 특정 기간의 데이터를 조회하는 데, 하나 알게된 사실이 있어서 공유하려고 합니다. 1. 특정 기간 데이터 조회 쿼리 SELECT * FROM SAMPLE_TB WHERE WRITE_DT BETWEEN TO_DATE('2021-06-01') AND TO_DATE('2021-06-30') 2. 만일 WRITE_DT 컬럼에 시간까지 포함되어있는 경우 SELECT * FROM SAMPLE_TB WHERE WRITE_DT BETWEEN TO_DATE('2021-06-01') AND TO_DATE('2021-06-30') + 0.99999; 이렇게 종료 기간에 0.99999를 붙여줘야 합니다. 만약 붙여주지 않는다면 데이터는 2021-06-01 00:00 ~ 2021-06-30 00:00 까지..
· DB/Oracle
안녕하세요. 이번 포스팅에서는 다른 계정에 테이블 권한 부여 방법에 대해 알려드리려고합니다. 다른 계정 테이블 권한 부여 방법 계정 : A계정, B계정 테이블 : T_SAMPLE A계정 : T_SAMPLE 소유계정 B계정 : A계정의 T_SAMPLE 을 조회하고 싶어함 위의 상황에서 B계정으로 A계정의 T_SAMPLE 을 조회하기 위해서는 권한을 줘야합니다. 1. A계정 로그인 2. A계정에서 B계정에게 권한 부여 - GRANT SELECT ON T_SAMPLE TO B; (SELECT 말고 DELECT, INSERT, UPDATE 등 가능) - COMMIT; 3. B계정 로그인 4. A계정의 T_SAMPLE 조회 - SELECT * FROM A.T_SAMPLE 권한 부여와 권한 취소 - GRANT DE..
멍목
'DB' 카테고리의 글 목록 (3 Page)