Sql 创建ORACLE过程时出现编译错误
我在创建过程时遇到编译错误 这是我的procedure.sqlSql 创建ORACLE过程时出现编译错误,sql,oracle,stored-procedures,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 EXIS
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;
/
我已经被这个问题困扰了好几个小时,似乎没有发现任何问题。有人能帮我吗?谢谢 当出现编译错误时,还可以使用以下语句更好地了解错误:
select * from user_errors where name = 'VERIFY'
还有,@Art所说的,看起来是因为您在第二个select语句中没有使用INTO。您还需要两个变量来保存E#和name如果选择IF后没有in。检查您的查询。阅读一本关于游标和异常的书。IF中的条件看起来像一个赋值?编译错误是什么?@LukeWoodward就是这样。我似乎找不到错误的确切位置。当我试图创建过程时,它所说的只是“编译错误”@JoelSeah:in-SQL*Plus type
SHOW Errors procedure verify
,以找出错误是什么。如果该过程是最后输入的内容,则只需键入显示错误
。好的。我已经创建了保存e#和name的变量。那么我如何显示它们呢?在您的过程中添加dbms_输出。将_行(变量)放在if语句之后,然后运行该过程