[Oracle]Dbeaver에서 테이블 생성 및 데이터 가져오기(import,insert)

반응형
반응형

안녕하세요.
지난번에 로또 데이터를 받아서 아주 간단한 테이블 정의서를 만들어 봤는데요.
오늘은 실제 테이블을 만들고 데이터를 올려보았습니다.

2022.03.24 - [SW교육/DB] - [DB활용]로또 데이터를 이용한 오라클 테이블 만들기
2022.03.23 - [SW교육/DB] - dbeaver 설치 및 Oracle 21c XE 연결


저는 우선 오라클 21 XE 버전인데 SYSTEM 계정으로 로그인을 했습니다.
간단히 아래와 같이 테이블을 만들고 엑셀 데이터를 올리려고 했죠.
참고로 아래 박스처럼 Auto 로 해 놓으면 자동 커밋이 됩니다.

테이블 create

그런데 쿼리문을 실행 시키려고 하니 실행 메뉴가 어디있는지, 디폴트 단축키가 무엇인지 생각이 안나더군요. 그래서 윈도우>설정>User Inteface>키 로 들어가 확인해 보았습니다.
실행이 Ctrl+Enter 이더군요. 바인딩을 수정하면 다른 키로 변경이 가능합니다. ( 예를들어 F5 )
단, 다른 기능과 중복 되지 않는 것이 중요합니다.

dbeaver 키

그리고 나서 select 문을 생행 시켜 보았습니다. 당연히 아무 데이터도 없게 실행이 됩니다.

select

하고 나니 실행 메뉴가 눈에 보이는군요. 아래 그림 왼쪽에 주황색 버튼이 쿼리 실행 버튼입니다.

실행 키

그리고 엑셀 데이터를 해당 테이블에 업로드(import) 하려고 보니 기능을 도저히 못찾겠더군요. 그래서 여기저기 찾아보고 스키마를 생성해야 할것 같다는 생각이 들었습니다.

우선 만든 테이블을 다시 없앴습니다.
DROP TABLE LOTTO_DATE ;

그리고 설정을 변경 하였는데요. 이렇게 하지 않으면 스키마명에 C## 을 붙여야 한다고 하더군요.
ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE ;

다음으로 스키마를 만들고 권한을 부여 하였습니다. 저는 JUNG 으로 만들었습니다. 대소문자는 상관없습니다.
CREATE USER jung IDENTIFIED BY 1234 ;
GRANT CONNECT, RESOURCE , DBA TO JUNG ;

그리고 다시 스키마명을 붙여서 테이블을 만들었죠.
CREATE TABLE JUNG.LOTTO_DATE (
LOTTO_NO DECIMAL(7,0) PRIMARY KEY
, LOTTO_DATE DATE
)

그리고 나니 Dbeaver Database Navigator 에 해당 스키마 하위에 만든 테이블을 찾을수 있었습니다.

그 다음은 테이블명에 커서를 두고 마우스 오른쪽 버튼을 눌러 데이터 가져오기를 선택합니다.
엑셀은 안되고 cvs 형식의 파일이 가능하군요.
아래처럼 첫번째 행에 컬럼명을 동일하게 적고 로또회차.cvs 라는 파일을 만들어 선택하였습니다.

CVS 파일

몇차례 다음>다음 했더니 데이터가 테이블에 잘 import 되었습니다.

데이터 업로드

INSERT 문을 사용해서 데이터를 몇개 더 넣어 보았습니다.

이렇게 데이터를 직접 넣어서 한번 실행
INSERT INTO JUNG.LOTTO_DATE VALUES (1008,'2022-03-26') ;

다음 쿼리로 두번 실행하였는데 pk는 1을 증가시키고 날짜는 일주일을 증가시켰습니다.
INSERT INTO JUNG.LOTTO_DATE ( SELECT MAX(LOTTO_NO) + 1, MAX(LOTTO_DATE) + 7 DAYS
FROM JUNG.LOTTO_DATE )
최종데이터는 어떻게 되었을까요?

추가로 인서트

3건이 잘 들어갔습니다.
이런식으로 테이블 및 데이터 업로드를 몇건 더 하면 간단한 쿼리 실습을 할 수 있겠군요.

반응형

댓글

Designed by JB FACTORY