2014-01-23 69 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