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