2014-01-23 70 views
0

请指导我什么是错多表插入

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) 

恳请提供指引,整顿代码,因为我最好的代码是正确的,但仍然产生错误。非常感谢。

回答

0
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; 

或只是

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 ; 
1

尝试这样,

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; 
+0

SQL>插入所有 2 WHEN SAL <= 950 THEN 3 INTO scott.e VALUES(EMPNO,ENAME, SAL) 4 WHEN SAL> 950 THEN 5 INTO scott.j VALUES(EMPNO,SAL) 6 SELECT EMPNO,ENAME,萨尔FROM SCOTT.EMP; INTO scott.e VALUES(EMPNO,ENAME,SAL)在3线 * ERROR: ORA-00913:值过多 – user3134198

+0

它给错误ORA-00913的值太多 – user3134198

+0

@ user3134198'ORA-00913太多values'错误是因为您试图插入的表中有更多的列。 – Dba