Plsql 警告:创建的过程存在编译错误

Plsql 警告:创建的过程存在编译错误,plsql,procedure,Plsql,Procedure,我不会编译。我不知道是什么问题。请帮忙 CREATE OR REPLACE PROCEDURE VERIFY IS LNO DRIVER.L#%TYPE; BEGIN SELECT L# INTO LNO FROM ADMIN JOIN DRIVER ON ADMIN.E# = DRIVER.E#(+); IF LNO != NULL THEN DBMS_OUTPUT.PU

我不会编译。我不知道是什么问题。请帮忙

    CREATE OR REPLACE PROCEDURE VERIFY

    IS 
    LNO DRIVER.L#%TYPE;

    BEGIN
       SELECT L# INTO LNO
       FROM ADMIN JOIN DRIVER 
       ON ADMIN.E# = DRIVER.E#(+);

       IF LNO != NULL THEN
             DBMS_OUTPUT.PUT_LINE("NOT NULL");
       END IF;

    COMMIT;

    END VERIFY;
试试这个:

DBMS_OUTPUT.PUT_LINE('NOT NULL');
而不是

DBMS_OUTPUT.PUT_LINE("NOT NULL");
(即单引号)

(+)
不能在
部分中使用

中使用它,其中
部分:

SELECT L# 
INTO LNO
FROM ADMIN, 
     DRIVER 
WHERE ADMIN.E# = DRIVER.E#(+);
或使用左[外]联接

SELECT L# 
INTO LNO
FROM ADMIN
LEFT JOIN DRIVER ON ADMIN.E# = DRIVER.E#;

此处的更多信息:

LINE/COL错误-----------------------------------------------------------------------------1/82 PLS-00103:在预期以下情况之一时遇到符号“DRIVER”:、;对于具有intersect减去order start union的组,其中用于程序验证的connectErrors为:LINE/COL ERROR---------------------------------------------------------------------1/21 PLS-00103:在预期以下情况之一时遇到符号“LNO”:(;使用已编译的包装外部确定性并行_启用流水线结果_缓存符号“(”替换为“LNO”继续。1/39 PLS-00103:遇到符号“;”时,应使用以下选项之一::=),默认字符供将来参考:
显示错误
顺便说一句,LNO!=NULL条件将永远不会满足。您应该执行的检查是
LNO不为NULL