2017-05-30 56 views
0

我正在編寫ELSE IF條件,但它不起作用。否則如果PL SQL中的條件不起作用

IF P_TYPE='College' THEN  
    INSERT INTO SAPID_INPUTDATA_WIFI(BOCID,BUILDING_RJID,LOCATION_TYPE,TYPE)VALUES 
    (P_BOCID,P_BUILDINGRJID,P_LOCATIONTYPE,P_TYPE) RETURNING ID INTO P_FLAG; 
    END IF; 

ELSE IF P_TYPE='Public WiFi' AND P_LOCATIONTYPE ='Node BLDG' THEN 

    INSERT INTO 
    SAPID_INPUTDATA_WIFI(BUILDING_RJID,LOCATION_TYPE,TYPE)VALUES(P_BOCID, 
    P_BUILDINGRJID,P_LOCATIONTYPE,P_TYPE) RETURNING ID INTO P_FLAG; 

END IF; 
+1

它在pl/sql中被稱爲'elsif'。 – SomeJavaGuy

+0

@SomeJavaGuy:嘗試過,但仍然不起作用 – BNN

+0

然後'P_TYPE'或'P_LOCATIONTYPE'與你比較的值有一些區別,但沒有正確的語法,因爲'elsif'不應該編譯/工作開始。什麼不在這裏工作? – SomeJavaGuy

回答

0

主要問題是語法。試試這個:

IF P_TYPE='College' THEN  
    INSERT INTO SAPID_INPUTDATA_WIFI(
    BOCID, 
    BUILDING_RJID, 
    LOCATION_TYPE, 
    TYPE) 
    VALUES(
    P_BOCID, 
    P_BUILDINGRJID, 
    P_LOCATIONTYPE, 
    P_TYPE) 
    RETURNING ID INTO P_FLAG; 

ELSIF P_TYPE='Public WiFi' AND P_LOCATIONTYPE ='Node BLDG' THEN 
    INSERT INTO SAPID_INPUTDATA_WIFI(
    BUILDING_RJID, 
    LOCATION_TYPE, 
    TYPE) 
    VALUES(
    P_BOCID, 
    P_BUILDINGRJID, 
    P_LOCATIONTYPE, 
    P_TYPE) 
    RETURNING ID INTO P_FLAG; 

END IF;