2011-02-09 38 views
0

我得到錯誤:綁定變量「一個」未聲明在SQL合併語法如何通過用戶參數

MERGE INTO EMP E1 
USING (SELECT E2.EMPNO,E2.SAL FROM EMP2 E2 WHERE E2.EMPNO=:a) 
ON 
(E1.EMPNO=E2.EMPNO) 
WHEN MATCHED THEN 
UPDATE SET 
E1.SAL=E2.SAL 
WHEN NOT MATCHED THEN 
INSERT VALUES(E2.EMPNO,E2.ENAME,E2.JOB,E2.MGR,E2.HIREDATE,E2.SAL,E2.COMM,E2.DEPTNO); 
+1

你怎麼想運行這個? – 2011-02-09 06:00:51

回答

1

如果你在SQL * Plus(我從給出的錯誤信息懷疑),然後做一個

variable a number 
exec :a := 5 

在嘗試運行merge語句之前。

在另一方面,如果你在PL/SQL運行的聲明,那麼就沒有必要使用冒號,相反,只需將變量名改爲:

procedure do_the_merge(a in number) is 
begin 
    merge.... 
     .... 
     where e2.empno = a 
     ....; 
end do_the_merge;