728x90
반응형
728x170
■ SELECT ~ BULK COLLECT INTO문을 사용해 데이터를 일괄로 추가하는 방법을 보여준다.
▶ 예제 코드 (SQL)
-- 직원 테이블을 생성한다.
CREATE TABLE EMP
(
EMPNO NUMBER(4, 0)
,ENAME VARCHAR2(10)
,SAL NUMBER(7, 2)
,CONSTRAINT PK_EMP PRIMARY KEY (EMPNO)
);
-- 직원 테이블에 데이터를 추가한다.
INSERT INTO EMP VALUES(7369, 'SMITH' , 800);
INSERT INTO EMP VALUES(7499, 'ALLEN' , 1600);
INSERT INTO EMP VALUES(7521, 'WARD' , 1250);
INSERT INTO EMP VALUES(7566, 'JONES' , 2975);
INSERT INTO EMP VALUES(7654, 'MARTIN', 1250);
INSERT INTO EMP VALUES(7698, 'BLAKE' , 2850);
INSERT INTO EMP VALUES(7782, 'CLARK' , 2450);
INSERT INTO EMP VALUES(7788, 'SCOTT' , 3000);
INSERT INTO EMP VALUES(7839, 'KING' , 5000);
INSERT INTO EMP VALUES(7844, 'TURNER', 1500);
INSERT INTO EMP VALUES(7876, 'ADAMS' , 1100);
INSERT INTO EMP VALUES(7900, 'JAMES' , 950 );
INSERT INTO EMP VALUES(7902, 'FORD' , 3000);
INSERT INTO EMP VALUES(7934, 'MILLER', 1300);
COMMIT;
SET SERVEROUTPUT ON;
DECLARE
TYPE NUMBER_TABLE_TYPE IS TABLE OF NUMBER;
V_SAL_NUMBER_TABLE NUMBER_TABLE_TYPE;
BEGIN
SELECT SAL BULK COLLECT INTO V_SAL_NUMBER_TABLE
FROM EMP;
IF SQL%ROWCOUNT > 0
THEN
FOR I IN V_SAL_NUMBER_TABLE.FIRST..V_SAL_NUMBER_TABLE.LAST
LOOP
DBMS_OUTPUT.PUT_LINE(V_SAL_NUMBER_TABLE(I));
END LOOP;
END IF;
END;
728x90
반응형
그리드형(광고전용)
'Database > Oracle' 카테고리의 다른 글
[DATABASE/ORACLE] CREATE TABLESPACE 명령 : 테이블 스페이스 생성하기 (0) | 2020.02.01 |
---|---|
[DATABASE/ORACLE] CREATE USER 명령 : 오라클 계정 생성하기 (0) | 2020.02.01 |
[DATABASE/ORACLE] ALTER USER 명령 : 계정 잠금 해제하기 (0) | 2020.02.01 |
[DATABASE/ORACLE] GRANT 명령 : 계정 권한 부여하기 (0) | 2020.02.01 |
[DATABASE/ORACLE] CONNECT 명령 : 계정 생성 확인하기 (0) | 2020.02.01 |
[DATABASE/ORACLE] 커서 속성 (0) | 2019.11.04 |
[DATABASE/ORACLE] FORALL ~ UPDATE ~ RETURNING ~ BULK COLLECT INTO문 사용하기 (0) | 2019.11.04 |
[DATABASE/ORACLE] FORALL 명령 : 레코드 기반 데이터 추가하기 (0) | 2019.11.04 |
[DATABASE/ORACLE] DML 명령문 : RETURNING 키워드 사용하기 (0) | 2019.11.04 |
[DATABASE/ORACLE] SQL%ROWCOUNT 암시적 커서 속성 사용하기 (0) | 2019.11.04 |
댓글을 달아 주세요