Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

INSERT ALL with conditions PL/SQL

I'm trying to do is write an INSERT statement with three different conditions.

Here is what I have made so far (but this code gets an ORA-00913 too many values error):

INSERT ALL
   WHEN SALARY > 20000 THEN
     INTO SPECIAL_SAL13(EMPLOYEE_ID,HIRE_DATE,MANAGER_ID,SALARY)
   WHEN SALARY <= 20000 THEN
     INTO SAL_HISTORY13(EMPLOYEE_ID,SALARY)
   WHEN SALARY <= 20000 THEN
     INTO MGR_HISTORY13(EMPLOYEE_ID,MANAGER_ID,SALARY)
SELECT EMPLOYEE_ID,HIRE_DATE,MANAGER_ID,SALARY
FROM EMPLOYEES
WHERE EMPLOYEE_ID < 125
like image 240
Harry89pl Avatar asked Dec 03 '25 18:12

Harry89pl


1 Answers

try

INSERT ALL
   WHEN SALARY > 20000 THEN
     INTO SPECIAL_SAL13(EMPLOYEE_ID,HIRE_DATE,MANAGER_ID,SALARY)
     VALUES(EMPLOYEE_ID,HIRE_DATE,MANAGER_ID,SALARY)
   WHEN SALARY <= 20000 THEN
     INTO SAL_HISTORY13(EMPLOYEE_ID,SALARY)
     VALUES(EMPLOYEE_ID,SALARY)
   WHEN SALARY <= 20000 THEN
     INTO MGR_HISTORY13(EMPLOYEE_ID,MANAGER_ID,SALARY)
     VALUES(EMPLOYEE_ID,MANAGER_ID,SALARY)
SELECT EMPLOYEE_ID,HIRE_DATE,MANAGER_ID,SALARY
FROM EMPLOYEES
WHERE EMPLOYEE_ID < 125

For reference see here.

like image 84
Yahia Avatar answered Dec 06 '25 11:12

Yahia



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!