본문 바로가기

Study/Oracle

엑셀 insert 쿼리 만들기 오라클 SQL 원리로 쉽게 익혀보자

="insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) 
           values('"&A2&"','"&B2&"','"&C2&"','"&D2&"','"&E2&"','"&F2&"','"&G2&"','"&H2&"');"

엑셀로 인서트문 만드는 방법

오라클 국민테이블인 emp 테이블을 예시로 insert 문을 만들어보자

 

엑셀을 준비하자

아래와 같이 insert문을 만들어서 스크립트로 밀어 넣을 것이기 때문에

insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) 
         values('9000','홍길동','SALESMAN','7698',sysdate,'200',0,'30');

컬럼까지 변수처리를 하고 싶다면 컬럼부분을 아래와 같이 고정값을 주면 된다

="insert into emp("&$A$1&","&$B$1&","&$C$1&","&$D$1&","&$E$1&","&$F$1&","&$G$1&","&$H$1&")
           values('"&A2&"','"&B2&"','"&C2&"','"&D2&"','"&E2&"','"&F2&"','"&G2&"','"&H2&"');"

 

아래 내용을 복붙하면 row별로 insert문이 만들어진다

="insert into emp ("&$A$1&", "&$B$1&", "&$C$1&", "&$D$1&", "&$E$1&", "&$F$1&", "&$G$1&", "&$H$1&") 
           values ('"&A2&"', '"&B2&"', '"&C2&"', '"&D2&"', '"&E2&"', '"&F2&"', '"&G2&"', '"&H2&"');"
insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) 
         values ('9003', '세종대왕', 'SALESMAN', '7698', sysdate, '203', 0, '30');

 

4개 값에 대한 insert문

insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values ('9000', '홍길동', 'SALESMAN', '7698', 'sysdate', '200', '0', '30');

insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values ('9001', '강감찬', 'SALESMAN', '7698', 'sysdate', '201', '0', '30');
insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values ('9002', '신사임당', 'SALESMAN', '7698', 'sysdate', '202', '0', '30');
insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values ('9003', '세종대왕', 'SALESMAN', '7698', 'sysdate', '203', '0', '30');

 

원리는 간단하다

엑셀 수식으로 ="select * from dual;" 을 입력하면 select * from dual; 로 작성되는 것을 볼 수 있다

 

값과 값이 동적으로 변수처리를 해줘야하는 부분은

"&엑셀셀값&" 을 넣어주면 된다 

처음에 헷갈리는 부분 하라는대로 했는데 변수값이 아닌 &A2&가 그대로 나왔다

앞뒤로 "" 쌍따옴표를 붙여줬는지 꼭 확인하자

정상적인 케이스
수식
="select * from emp where empno = "&A2&";"

엑셀값
select * from emp where empno = 9000;



안되는 케이스
수식
="select * from where empno = &A2&;"

엑셀값
select * from emp where empno = &A2&;

 

varchar와 같은 문자열을 다룰때는 외따옴표로 한번 더 묶어주자.

왜냐고? '문자열' 이런식으로 사용되니까 당연히 외따옴표로 묶어주면 된다

쌍따옴표 외따옴표가 연속으로 들어가기 때문에 헷갈릴 수 있지만 원리만 알면 쉽다

'"&엑셀셀값&"'

수식
="select * from emp where ename = '"&B2&"';"

엑셀값
select * from emp where ename = '홍길동';

 

오라클 설치 없이 쿼리 연습하는 방법은 아래 포스트 참조

2021.09.29 - [Study/Oracle] - 오라클 설치 없이 무료로 쿼리 연습하는 방법 oracle livesql

 

오라클 설치 없이 무료로 쿼리 연습하는 방법 oracle livesql

오라클 livesql 접속 및 회원가입 https://livesql.oracle.com/ Oracle Live SQL 931,882 scripts, 4,075 likes, 1,038 public scripts, 9,963 new scripts created in the last 7 days. livesql.oracle.com 1. 오라클 계정 로그인 2. Code Library 메뉴

servertrix.com