="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
'Study > Oracle' 카테고리의 다른 글
오라클 설치 없이 무료로 쿼리 연습하는 방법 oracle livesql (0) | 2021.09.29 |
---|---|
오라클 Trapping Predefined Oracle Server Errors (0) | 2015.07.08 |
오라클 DBMS_OUTPUT.PUT_LINE (0) | 2015.03.04 |
오라클 중복 row 찾기 (0) | 2015.01.27 |
오라클 커서(CURSOR) 사용 샘플 (0) | 2014.10.27 |