简体   繁体   中英

Multi-table insert

Please guide me whats wrong

    SQL> INSERT ALL
      2  WHEN SAL <= 950 THEN INTO scott.e VALUES (E.Empno, E.Ename, E.sal)
      3  WHEN SAL > 950 THEN INTO scott.j VALUES (J.Empno, J.Sal)
      4  SELECT Emp.Empno, Emp.Ename, Emp.Sal FROM scott.emp;
    WHEN SAL > 950 THEN INTO scott.j VALUES (J.Empno, J.Sal)
                                                      *
    ERROR at line 3:
    ORA-00904: "J"."SAL": invalid identifier


   SQL> DESC j
    Name                                                                    Null?           Type
    ----------------------------------------------------------------------- --------  ------------------------------------------------
    EMPNO                                                                            NUMBER(4)
    SAL                                                                              NUMBER(7,2)

Kindly requested to provide guideline to rectify code, as best of me code is proper but still generating error. Many thanks.

Try like this,

INSERT ALL
     WHEN SAL <= 950 THEN 
          INTO scott.e VALUES (Empno, Ename, sal)
     WHEN SAL > 950 THEN 
          INTO scott.j VALUES (Empno, Sal)
     SELECT Empno, Ename, Sal FROM scott.emp;
INSERT ALL
WHEN SAL <= 950 THEN INTO scott.e VALUES (t.Empno, t.Ename, t.sal)
WHEN SAL > 950 THEN INTO scott.j VALUES (t.Empno, t.Sal)
SELECT Emp.Empno, Emp.Ename, Emp.Sal 
FROM scott.emp t;

or just

INSERT ALL
WHEN SAL <= 950 THEN INTO scott.e VALUES (Empno, Ename, sal)
WHEN SAL > 950 THEN INTO scott.j VALUES (Empno, Sal)
SELECT Emp.Empno, Emp.Ename, Emp.Sal 
FROM scott.emp ;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM