How to Generate INSERT statements from the SELECT query
Generate INSERT statements from the SELECT query
-- Set the output file path and name SPOOL /path/to/output_file.sql -- Generate INSERT statements from the SELECT query SET PAGESIZE 0 SET HEADING OFF SET FEEDBACK OFF -- You can customize the column list and WHERE condition as needed SELECT 'INSERT INTO target_table (col1, col2, col3) VALUES (' || CHR(39) || col1 || CHR(39) || ', ' || CHR(39) || col2 || CHR(39) || ', ' || CHR(39) || col3 || CHR(39) || ');' FROM source_table -- WHERE some_condition; -- Turn off SPOOL SPOOL OFF
SQL> SELECT * FROM EMP WHERE JOB='CLERK'; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7934 MILLER CLERK 7782 23-JAN-82 1300 10 SQL> [oracle@br8dba01 ~]$ cat 1.sql SET PAGESIZE 0 SET HEADING OFF SET FEEDBACK OFF SPOOL output_file.sql SELECT 'INSERT INTO EMP (EMPNO, ENAME, JOB,MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (' || CHR(39) || EMPNO || CHR(39) || ', ' || CHR(39) || ENAME || CHR(39) || ', ' || CHR(39) || JOB || CHR(39) || ', ' || CHR(39) || MGR || CHR(39) || ', ' || CHR(39) || HIREDATE || CHR(39) || ', ' || CHR(39) || SAL || CHR(39) || ', ' || CHR(39) || COMM || CHR(39) || ', ' || CHR(39) || DEPTNO || CHR(39) || ');' FROM EMP WHERE JOB='CLERK'; SPOOL OFF [oracle@br8dba01 ~]$ SQL> @1.sql INSERT INTO EMP (EMPNO, ENAME, JOB,MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES ('73 69', 'SMITH', 'CLERK', '7902', '17-DEC-80', '800', '', '20'); INSERT INTO EMP (EMPNO, ENAME, JOB,MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES ('78 76', 'ADAMS', 'CLERK', '7788', '23-MAY-87', '1100', '', '20'); INSERT INTO EMP (EMPNO, ENAME, JOB,MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES ('79 00', 'JAMES', 'CLERK', '7698', '03-DEC-81', '950', '', '30'); INSERT INTO EMP (EMPNO, ENAME, JOB,MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES ('79 34', 'MILLER', 'CLERK', '7782', '23-JAN-82', '1300', '', '10'); SQL> [oracle@br8dba01 ~]$ cat output_file.sql INSERT INTO EMP (EMPNO, ENAME, JOB,MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES ('73 69', 'SMITH', 'CLERK', '7902', '17-DEC-80', '800', '', '20'); INSERT INTO EMP (EMPNO, ENAME, JOB,MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES ('78 76', 'ADAMS', 'CLERK', '7788', '23-MAY-87', '1100', '', '20'); INSERT INTO EMP (EMPNO, ENAME, JOB,MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES ('79 00', 'JAMES', 'CLERK', '7698', '03-DEC-81', '950', '', '30'); INSERT INTO EMP (EMPNO, ENAME, JOB,MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES ('79 34', 'MILLER', 'CLERK', '7782', '23-JAN-82', '1300', '', '10'); [oracle@br8dba01 ~]$
Caution: Your use of any information or materials on this website is entirely at your own risk. It is provided for educational purposes only. It has been tested internally, however, we do not guarantee that it will work for you. Ensure that you run it in your test environment before using.
Thank you,
Rajasekhar Amudala
Email: br8dba@gmail.com
Linkedin: https://www.linkedin.com/in/rajasekhar-amudala/