-2

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

    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;
4

2 回答 2

3

(+)ON部分不能使用JOIN

在部分中使用它WHERE

SELECT L# 
INTO LNO
FROM ADMIN, 
     DRIVER 
WHERE ADMIN.E# = DRIVER.E#(+);

或使用LEFT [OUTER] JOIN

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

更多信息在这里:http ://docs.oracle.com/cd/B19306_01/server.102/b14200/queries006.htm#sthref3175

于 2013-05-29T11:31:27.810 回答
1

尝试这个:

DBMS_OUTPUT.PUT_LINE('NOT NULL');

代替

DBMS_OUTPUT.PUT_LINE("NOT NULL");

(即单引号)

于 2013-05-29T09:40:22.267 回答