본문 바로가기

728x90

Backend/Database

(5)
[Oracle] MERGE INTO 사용법 테이블에 데이터가 이미 있으면 UPDATE 를 실행하고, 없을 경우 값을 INSERT 해줘야 하는 경우에 MERGE INTO 문을 통해 한 쿼리로 간단하게 작성할 수 있다. * 오라클 9i 버전 이상부터 사용 가능 (but 10g이상 사용 추천) 아래와 같이 사용한다. MERGE INTO "테이블 명" USING "테이블 or 뷰 or 서브쿼리" ON ( " 조건절1" AND " 조건절2 " ... )-- 값이 있는지 확인 WHEN MATCHED THEN --있으면 UPDATE SET [COLUMN1] = [VALUE1], [COLUMN2] = [VALUE2], WHEN NOT MATCHED THEN --없으면 INSERT (COLUMN1, COLUMN2, ...) VALUES (VALUE1, VALUE..
[Oracle] 오라클과 JDBC 연결하는 방법 (11g 엔터프라이즈 버전) # JDBC의 구조 - JDBC는 JDBC interface 와 JDBC Driver로 구성되어 있다. - 애플리케이션에서 SQL문을 만들어 JDBC interface를 통해 전송하면 실제 구현 클래스인 JDBC Driver에서 DBMS에 접속하여 SQL문을 전송한다. 그에 따른 결과를 다시 응용프로그램에게 전달한다. - JDBC는 애플리케이션과 DBMS를 연결해주는 다리 역할이라고 보면된다. * 여기서 JDBC Driver은 데이터베이스의 종류마다 다르기 때문에 종류와 버전에 맞는 Driver를 맞게 사용해줘야 한다. Oracle Database 11g Enterprise 버전을 기준으로 JDBC 연결하는 방법에 대해서 알아보겠다. 1. ojdbc6.jar 다운받기. repo1.maven.org/mav..
[Oracle] 오라클의 구조 # 논리적 구성요소 - 데이터 블록(data block) - 익스텐트(extent) - 세그먼트(segment) - 테이블스페이스(tablespace) # 물리적 구성요소 - 데이터파일 - 컨트롤 파일 - redo 로그 파일 - 설정 파일 - alert/trace 로그 파일 - 백업파일 1) 데이터 블록(data block) - 데이터가 저장되는 가장 작은 단위 - 저장해야 할 데이터가 늘어나면 데이터 블록의 배수로 저장 공간을 확보하여 저장한다. - 데이터 블록 크기는 db_block_size라는 설정 값에 저장됨. - 블록 크기 확인 명령 SQL > show parameter db_block_size # 블록 크기를 확인하는 다른 방법 - 설정 정보는 특정 테이블에 저장되는데 그 테이블 이름이 v$p..
[Oracle] SQL plus 에서 계정 등록 및 권한 설정 * 기본 계정 권한 설정 - "hr" 이라는 기본 계정이 존재한다. #hr 계정은 오라클에서 기본적으로 제공해주는 학습용 계정이다 1) 18c 이전 버전 ex) 11g 1. cmd 관리자 권한으로 실행 2. 아래 명령어 실행 SQL> alter user hr account unlock; // 잠겨있는 HR 계정 풀기 SQL> alter user hr identified by hr; // 비밀번호 새로 설정 2) 18c 이후 버전 1. cmd 관리자 권한으로 실행 2. 아래 명령어 실행 SQL> alter user hr account unlock; // 잠겨있는 HR 계정 풀기 SQL> alter user hr identified by hr; // 비밀번호 새로 설정 SQL> grant crate sess..
[Oracle] HTTP Listener Port 변경하기 Oracle 데이터베이스는 HTTP Listener Port 번호가 8080으로 기본으로 되어 있어 Apache tomcat 과 충돌하는 경우가 발생한다. 따라서 포트 번호를 변경해주는게 좋다. 1) sqlplus 접속 2) conn system - system 으로 접속한다. - 설정한 비밀번호 입력 3) exec DBMS_XDB.SETHTTPPORT("원하는 포트 번호"); "PL/SQL 처리가 정상적으로 완료되었습니다." 가 뜨면 정상적으로 포트번호가 바뀐것이다.

728x90