创建过程ORACLE时的编译错误

时间:2013-11-15 19:25:40

标签: sql oracle stored-procedures

我在创建过程时遇到编译错误。

这是我的procedure.sql

CREATE OR REPLACE PROCEDURE verify IS
  no_of_duplicates NUMBER:=0;
BEGIN
  SELECT COUNT(*) 
    INTO no_of_duplicates
    FROM EMPLOYEE
   WHERE E# = (SELECT E# 
                 FROM DRIVER
                WHERE EXISTS (SELECT E# 
                                FROM MECHANIC
                               WHERE DRIVER.L# = MECHANIC.L#) );
  IF no_of_duplicates=0 THEN 
    dbms_output.put_line('OK');
  ELSE
    SELECT E#, NAME 
      FROM EMPLOYEE
     WHERE E# = (SELECT E# 
                   FROM DRIVER
                  WHERE EXISTS (SELECT E# 
                                  FROM MECHANIC
                                 WHERE DRIVER.L# = MECHANIC.L#) );
  END IF;
END verify;
/

我已经坚持了好几个小时,似乎没有发现任何问题。谁能帮我这个?谢谢!

1 个答案:

答案 0 :(得分:1)

当您收到编译错误时,您还可以使用以下语句更好地了解错误:

select * from user_errors where name = 'VERIFY'

另外,@ Art说的,看起来是因为你没有在你的第二个选择语句中使用INTO。您将需要另外两个变量来保存E#和名称