A simple example demonstrating how you can quickly read a csv file and load data into a table.
I hope this can help you.
Reference: http://nimishgarg.blogspot.in/2013/04/load-csv-file-in-oracle-using-plsql.html
STEP:1 create directory object in DB
create directory EMPDATA as '/home/oracle/EMPDATA';
STEP:2 Create a table to which csv data will be inserted
CREATE TABLE EMP_DEPT
(
EMPNO NUMBER(4),
ENAME VARCHAR2(10),
SAL NUMBER(7,2),
DNAME VARCHAR2(14)
);
STEP:3 Run the below procedure to read data from CSV and insert into table emp_dept
DECLARE
F UTL_FILE.FILE_TYPE;
V_LINE VARCHAR2 (1000);
V_EMPNO NUMBER(4);
V_ENAME VARCHAR2(10);
V_SAL NUMBER(7,2);
V_DNAME VARCHAR2(14);
BEGIN
F := UTL_FILE.FOPEN ('EMPDATA', 'employee.csv', 'R');
IF UTL_FILE.IS_OPEN(F) THEN
LOOP
BEGIN
UTL_FILE.GET_LINE(F, V_LINE, 1000);
IF V_LINE IS NULL THEN
EXIT;
END IF;
V_EMPNO := REGEXP_SUBSTR(V_LINE, '[^,]+', 1, 1);
V_SAL := REGEXP_SUBSTR(V_LINE, '[^,]+', 1, 3);
V_ENAME := REGEXP_SUBSTR(V_LINE, '[^,]+', 1, 2);
V_DNAME := REGEXP_SUBSTR(V_LINE, '[^,]+', 1, 4);
INSERT INTO EMP_DEPT VALUES(V_EMPNO, V_ENAME, V_SAL, V_DNAME);
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
EXIT;
END;
END LOOP;
END IF;
UTL_FILE.FCLOSE(F);
END;
/
STEP:4 Select the table emp_dept and check if csv data are loaded or not
STEP:4 Select the table emp_dept and check if csv data are loaded or not
SQL> Select * from emp_dept;
SQL> select * from emp_dept;
EMPNO ENAME SAL DNAME
---------- ---------- ---------- --------------
1 manoj 1000 IT
2 Santanu 2000 Accounting
3 Manjit 3000 Billing
I hope this can help you.
Reference: http://nimishgarg.blogspot.in/2013/04/load-csv-file-in-oracle-using-plsql.html