일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Windows
- putty
- VPN
- YCSB
- GUI 또는 CLI전환
- 딜라이브플러스h3
- 컨테이너 백업
- 컨테이너 복원
- #Oracle
- cmd로msi파일설치
- 웹영상배속
- docker
- OTT셋톱박스
- ventoy 사용법
- 시스템예약종료
- CentOS7
- 영상배속
- 인강배속
- cmd인스톨러설치
- Dell Venue 8 Pro
- MySQL
- 무기력디톡스
- docker container restore
- Oracle
- CentOS
- ipvlan
- 파이썬 스톱워치
- Linux
- cubrid
- docker container backup
- Today
- Total
목록DBMS (21)
일단은 프로그래머 나부랭이
GRANT CREATE PROCEDURE TO '계정명' --프로시져 GRANT CREATE VIEW TO '계정명' --뷰 GRANT CREATE TABLE TO '계정명' -- 테이블 GRANT CREATE DATABASE LINK TO '계정명' --DB링크 GRANT CREATE SYNONYM TO '계정명' --뭐지? GRANT CREATE SEQUENCE TO '계정명' --시퀀스 GRANT UNLIMITED TABLESPACE TO '계정명' --테이블 스페이스 GRANT CREATE TRIGGER TO '계정명' --트리거 오라클 계정 생성이후 이런저런 권한을 줘서 사용할 수 있다. 위의 권한들 말고도 더 있을텐데, 차후 추가 예정 p.s : 물론 권한 회수는 REVOKE 명령을 쓰면 된다.
-- 자신의 계정만 SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OBJECT_NAME = '테이블명' -- 전체 SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OBJECT_NAME = '테이블명' p.s : object_type을 table이 아닌 procedure등으로 바꾸면 그 오브젝트들의 생성일자등을 확인할 수 있다.
SELECT file_id, file_name, tablespace_name FROM dba_data_files; 이 쿼리를 실행하면 DB의 데이터 파일이 저장된 경로를 알 수 있다. 경로상의 모든 파일을 복사하는 것도 백업의 한 방법이 아닐까 싶다. p.s : 경로를 확인한 이후, 당연히 오라클은 종료하고, 백업을 진행한다. p.s2 : 이러한 방식을 Whole-Backup 혹은 Cold-Backup이라고 한다.
SELECT B.SPID, A.* FROM V$SESSION A, V$PROCESS B WHERE A.PADDR = B.ADDR --AND A.USERNAME = '오라클 계정명' --AND A.STATUS = 'ACTIVE || INACTIVE' 위의 쿼리는 오라클의 세션을 찾을때 쓰면 된다.주석중에 USERNAME은 ORACLE 계정명을, STATUS는 해당 세션의 활성화 여부를 찾을 때 쓰면 된다.그리고 위에서 찾은 세션은 아래의 쿼리로 KILL이 가능하다. ALTER SYSTEM KILL SESSION 'SID,SERIAL' 위의 쿼리로 찾은 SID와 SERIAL을 입력해서 실행하면 된다. killalter system kill session 'SID, Serial' ;ex) alter syste..
BEGIN -- 잡의 중지 DBMS_JOB.BROKEN('잡이름', TRUE); COMMIT; END; job은 한번 실행되면 중지하기가 여간 어렵다.조심해서 사용하도록 하자.
아래의 오류는 DB 접속시 발생하는 오류 메세지이다. ORA-12519, TNS:no appropriate service handler foundDB에 접속중인 프로세서가 많으면 발생하는 오류라고 한다. SYS 계정에 접속하여, 아래의 쿼리를 돌린다. 이때 숫자는 적당히 큰 값을 써주면 된다.(예를들어, 혼자서 사용할 DB라면 값을 100보다 낮게 줘도 괜찮을것이다.) ALTER system SET processes=100 scope=spfile; 그러면 프로세스가 증가해서 접속이 잘 된다. p.s : 사무실에 인원이 3명인데 저게 왜 뜨는지 모르겠다.
아래는 정규식을 이용해서 Oracle에서 문자열을 특정 기호별로 분할하는 기능을 하는 퀴리이다.Oracle 10g 이상에서만 사용이 가능할것이며, 이를 이용하면 쿼리를 통해 자바의 Split와 같은 기능을 구현할 수 있다. (ex : 1/2/3/4 ->1234로 나눠줌) ________________________________________________________ SELECT regexp_substr(A.TXT, '[^기호]+', 1, LEVEL) TXT FROM (SELECT '대상 문자열' TXT FROM dual) A CONNECT BY INSTR(A.TXT, '기호', 1, LEVEL-1) > 0_____________________________________________________..
먼저 PL/SQL에 대하여 간단하게 집고 넘어가겠다.PL/SQL이란, SQL로 처리하기 복잡한 데이터의 삽입, 삭제등을 보다 편리하게 하기 위하여 고안된것으로, 기본적으로 SQL을 이용하나, 전체적인 문법은 기존의 프로그래밍 언어와 유사하다고 한다.(Ada라는 언어를 본따서 만들었다고 한다 - 위키백과 인용) Procedure와 Function은 이래저래 실무에서 많이 이용된다.둘다 PL/SQL을 이용하여 만들기 때문에 문법에 차이가 없다. 다만 명칭이 다른만큼 엄연히 차이가 있기에 그것에 대해 글을 써보려한다. 1. Procedure는 Return값이 없어도 되지만, Function은 Return값이 반드시 존재한다. (정확하게 말해서 Procedure는 Return값이 없거나 2개이상일수도 있지만, ..
가끔 쿼리를 돌리다보면 A테이블의 값들중에 B테이블에 없는 값을 찾아야할 때가 있다.예를들면 이런 경우다 A테이블1 2 3 B테이블 1 2 이렇게 A, B테이블이 있다고 할 때 A테이블에서 B테이블에 없는 값만 찾기 위해서는'SELECT * FROM A MINUS (SELECT * FROM B)'라고 쓰면 된다. (결과는 당연히 3이 나온다) 물론 A나 B 테이블에 WHERE절을 넣을수 있음은 당연하다. p.s: 이걸 몰라서 where절에 '!='걸 넣는 시도를 해본바로서 말하는데 '!='로 불일치를 찾으려하지말자, 엄청 오래걸린다...
1)쿼리를 짜다보면 간혹 가다가, 여러행의 데이터를 1행에 보여줘야 할 경우가 있다.무슨말이냐면.. 이름 보유 이메일 이거원네이버 이거원다음 위와 같은 내용을이름보유 이메일이거원네이버,다음 이런식으로 보여줘야 할 때가 있다. 이때는 listagg또는 wm_concat등의 함수를 쓰면 된다.위의 두함수는 자신이 사용하는 2)오라클 버젼에 맞춰서 사용하면 된다. 10g일 경우 : wm_concat11g일 경우 : listagg 를 사용하는데, 함수명칭이 다른만큼, 사용방법이 다르다(만일 서버의 오라클 버전이라도 바뀌는 경우엔... 일일이 찾아서 고쳐줘야 하는 불편함이 있다) wm_concat의 경우wm_concat(컬럼명) 이라고 쓰면 되지만 listagg의 경우listagg(컬럼명, 구분기호) within..