Q:

ORA-00933: SQL command not properly ended with insert all

I cannot seem to find any problem:
INSERT ALL
   INTO DEPT_PART PARTITION(part1) (EMPNO, ENAME, SAL, DEPTNO) 
   SELECT EMPNO,ENAME,SAL,DEPTNO FROM emp WHERE DEPTNO=10

   INTO DEPT_PART PARTITION(part2) (EMPNO, ENAME, SAL, DEPTNO) 
   SELECT EMPNO,ENAME,SAL,DEPTNO FROM emp WHERE DEPTNO=20

   INTO DEPT_PART PARTITION(part3) (EMPNO, ENAME, SAL, DEPTNO) 
   SELECT EMPNO,ENAME,SAL,DEPTNO FROM emp WHERE DEPTNO=30

SELECT * FROM DUAL;

A:

You need to try INSERT FIRST like following:
INSERT FIRST
   WHEN DEPTNO = 10 THEN
   INTO DEPT_PART PARTITION(part1) (EMPNO, ENAME, SAL, DEPTNO) 
   WHEN DEPTNO = 20 THEN
   INTO DEPT_PART PARTITION(part2) (EMPNO, ENAME, SAL, DEPTNO) 
   WHEN DEPTNO = 30 THEN
   INTO DEPT_PART PARTITION(part3) (EMPNO, ENAME, SAL, DEPTNO) 
SELECT EMPNO,ENAME,SAL,DEPTNO FROM emp WHERE DEPTNO IN (10,20,30)

Cheers!!

